Skip to content

Latest commit

 

History

76 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FocusFlow

Gestor personal de tiempo con IA — local, instantáneo y bonito

FocusFlow es una aplicación de escritorio para Windows diseñada para organizar, planificar y gestionar tu tiempo de forma inteligente.

Combina calendario, gestión de tareas, notificaciones y un asistente de IA para convertir lenguaje natural y correos electrónicos en un horario organizado, manteniendo tus datos localmente en tu equipo.

FocusFlow está actualmente en Demo / Beta.


Demo

FocusFlow Demo


Características

  • Calendario inteligente — Vistas de mes, semana y día con drag & drop, validación de conflictos, tareas multi-día y tareas de todo el día.
  • Gestión de tareas — Crea, edita, mueve, duplica, fusiona y completa tareas con categorías, prioridades, etiquetas, notas y enlaces.
  • QuickAddCtrl+Shift+Espacio desde cualquier aplicación para crear tareas mediante lenguaje natural.
  • Procesamiento local — Si la IA tarda, no está disponible o no hay API configurada, un parser local basado en reglas permite procesar las entradas inmediatamente.
  • Asistente IA — Consulta tu agenda y tareas utilizando lenguaje natural.
  • Priorización determinista — Clasifica las tareas como URGENTE, IMPORTANTE o NORMAL sin permitir que la IA invente datos.
  • Planificación inteligente — Genera propuestas de horario teniendo en cuenta tareas, prioridades, disponibilidad y conflictos.
  • Procesamiento de correo — Analiza correos mediante IMAP para detectar tareas, exámenes y reuniones.
  • Sugerencias de correo — Las actividades detectadas pueden aceptarse, editarse, rechazarse o fusionarse con tareas existentes.
  • Notificaciones nativas — Recordatorios de Windows con identidad propia, horario silencioso y configuración personalizada.
  • Widget de escritorio — Ventana transparente, sin marco y siempre visible para consultar rápidamente la agenda.
  • Diseño Neumorphism — Interfaz consistente con soporte para modo claro y oscuro.
  • Reporte de errores — Sistema integrado para enviar reportes junto con los logs de la aplicación.
  • Privacidad local-first — Las credenciales se almacenan de forma segura y los datos principales permanecen en el dispositivo.

Cómo funciona

             Usuario
                │
                ▼
     ┌────────────────────┐
     │ QuickAdd / Correo  │
     │ Lenguaje natural   │
     └──────────┬─────────┘
                │
                ▼
       ┌────────────────┐
       │ Procesamiento  │
       │ IA / Local     │
       └───────┬────────┘
               │
               ▼
     ┌────────────────────┐
     │ Motor de           │
     │ planificación      │
     │                    │
     │ Huecos disponibles │
     │ Prioridades        │
     │ Conflictos         │
     └──────────┬─────────┘
                │
                ▼
       ┌────────────────┐
       │    SQLite      │
       │     Local      │
       └───────┬────────┘
               │
               ▼
        Notificaciones

La meta es pasar de gestionar manualmente un calendario a tener un asistente que ayude activamente a organizar el tiempo.


Stack tecnológico

Frontend

  • Svelte 5
  • TypeScript
  • Vite
  • CSS personalizado
  • Diseño Neumorphism

Desktop y Backend

  • Tauri 2
  • Rust
  • Tokio
  • IPC
  • rusqlite
  • native-tls
  • keyring

Inteligencia Artificial

  • APIs compatibles con OpenAI Chat Completions
  • Groq
  • openai/gpt-oss-120b
  • Parser local basado en reglas como fallback

Correo

  • IMAP
  • SMTP
  • TLS
  • Sistema de checkpoints y reintentos
  • Detección y deduplicación de sugerencias

Base de datos

  • SQLite
  • rusqlite
  • Base de datos local y embebida

Calidad

  • 210 tests de Rust
  • 36 tests de frontend
  • Vitest
  • Cargo Test

Arquitectura

FocusFlow
│
├── Svelte 5
│   ├── Calendario
│   ├── Agenda
│   ├── Asistente
│   ├── Sugerencias
│   └── Ajustes
│
├── Tauri 2
│   └── Rust
│       ├── Comandos IPC
│       ├── Planning Engine
│       ├── AI
│       ├── Email / Sync
│       ├── Notifications
│       └── Error Reporting
│
└── SQLite
    ├── Tareas
    ├── Sugerencias
    ├── Ajustes
    └── Historial de sincronización

Instalación

Opción A — Instalador

La forma recomendada de probar FocusFlow es descargar el instalador .msi disponible en la sección Releases.

La aplicación se instala como una aplicación de Windows independiente.

Opción B — Desde el código fuente

Requisitos

  • Windows 10/11
  • Node.js
  • npm
  • Rust
  • Cargo
  • Git
  • Tauri CLI

Clonar el repositorio

git clone https://github.com/MarcozVD/focusflow.git
cd focusflow/spike/frontend

Instalar dependencias

npm install

Ejecutar en desarrollo

cd ../src-tauri
cargo tauri dev

Generar el instalador MSI

Desde la raíz del repositorio:

build-focusflow.bat

Antes de compilar, exporta AI_API_KEY o crea spike/src-tauri/.env con AI_API_KEY=tu-clave. La clave se incrusta en el binario en tiempo de compilación y nunca se commitea al repo (.env está en .gitignore). Sin AI_API_KEY el build falla con un mensaje claro.

Para el login con Google y la sincronización de Gmail (OAuth2) crea también GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET en el mismo .env (mira spike/src-tauri/.env.example). Sin ellos la app compila, pero el login de Google queda deshabilitado.


Tests

Rust

cd spike/src-tauri
cargo test --lib

Actualmente existen 216 tests para el motor de planificación, parsers, sincronización, notificaciones y lógica interna.

Frontend

cd ../frontend
npx vitest run

Actualmente existen 36 tests para el frontend.


Configuración

La configuración se realiza directamente desde la aplicación mediante la sección Ajustes.

Asistente IA

Puedes configurar cualquier proveedor compatible con OpenAI Chat Completions.

Se recomienda Groq por su velocidad y disponibilidad de modelos gratuitos.

La clave de API va incrustada en la app (tiempo de compilación, vía AI_API_KEY en spike/src-tauri/.env): el usuario final no configura nada. La aplicación permite probar la conexión directamente desde los ajustes.

Correo electrónico (Gmail)

La sincronización de correo usa tu cuenta de Google (IMAP con OAuth2): inicia sesión desde Ajustes → Cuenta de Google. No se necesitan servidores ni contraseñas de aplicación.

FocusFlow analiza los mensajes para detectar posibles tareas, eventos, exámenes y reuniones.

Las sugerencias siempre requieren confirmación del usuario antes de modificar el calendario.

Seguridad

La clave de IA se incrusta en el binario en build-time (no está en el repo). Los tokens de Google (refresh_token) se guardan en la base de datos local del usuario (SQLite), no en el repositorio.

Nunca subas API keys, contraseñas o credenciales al repositorio.


Descarga

La versión más reciente de FocusFlow estará disponible en la sección Releases.

Plataformas

  • Windows 10/11 x64 — Disponible
  • Linux — Planeado
  • macOS — Planeado

Roadmap

Actual

  • Calendario de mes, semana y día
  • Drag & drop
  • Validación de conflictos
  • Gestión completa de tareas
  • QuickAdd
  • Asistente IA
  • Parser local
  • Planificación inteligente
  • Sugerencias desde correo
  • Detección de duplicados
  • Widget de escritorio
  • Modo claro y oscuro
  • Diseño Neumorphism
  • Notificaciones nativas de Windows
  • Reporte de errores integrado

Siguiente

  • Planificación avanzada con más restricciones
  • Sincronización con calendarios externos
  • Priorización automática mejorada
  • Mejor procesamiento contextual de correos
  • Soporte para Linux
  • Soporte para macOS

Futuro

  • Sincronización en la nube opcional
  • Soporte multidispositivo
  • Aplicación móvil complementaria
  • Analítica de productividad
  • Integraciones adicionales con servicios externos

Privacidad

FocusFlow sigue un enfoque local-first.

Tus tareas, calendario, ajustes y demás información principal se almacenan en una base de datos SQLite local.

No necesitas crear una cuenta ni utilizar una suscripción para utilizar las funciones principales de la aplicación.

Las funciones de IA requieren comunicación con el proveedor seleccionado. En estos casos, FocusFlow envía únicamente el contexto necesario para procesar la solicitud.

El procesamiento de correo también minimiza la información antes de enviarla a servicios externos.

La privacidad de los datos enviados a servicios de IA también depende de las políticas del proveedor que hayas configurado.


Visión

La mayoría de las aplicaciones de productividad requieren que el usuario organice constantemente su propio horario.

FocusFlow busca cambiar ese modelo.

En lugar de limitarse a mostrar un calendario, FocusFlow utiliza el contexto de tus tareas, prioridades y disponibilidad para ayudarte a decidir:

qué hacer, cuándo hacerlo y cómo organizar tu tiempo.


Licencia

Este proyecto está bajo la licencia MIT.

Consulta el archivo LICENSE para conocer los términos completos.


Autor

Marcos

Estudiante de Ingeniería de Sistemas · Full Stack Developer

  • Full Stack Development
  • Inteligencia Artificial
  • Linux
  • Bases de datos
  • Desarrollo Desktop y Mobile

FocusFlow — AI Personal Time Manager

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages