“Alcanza la calma y la productividad, una tarea a la vez.”
TaskZenith es una aplicación web de gestión de tareas y productividad, diseñada para ofrecer una experiencia de usuario tranquila y enfocada. Construida con un stack tecnológico moderno que incluye Next.js, React y Firebase, la aplicación integra inteligencia artificial a través de Genkit (Gemini) para ofrecer funcionalidades avanzadas como la generación de tareas a partir de descripciones y la creación de tareas mediante comandos de voz.
El objetivo es fusionar un diseño minimalista y elegante con herramientas potentes de organización, como listas de tareas categorizadas, un tablero Kanban y un historial de actividad.
- Crear un gestor de tareas robusto que vaya más allá de las funcionalidades básicas.
- Implementar una interfaz de usuario limpia, inspirada en colores lavanda y acentos suaves para promover la concentración.
- Integrar IA para asistir al usuario, haciendo la creación y gestión de tareas más rápida e intuitiva.
- Asegurar la persistencia de datos en tiempo real utilizando Firestore.
- Integración de IA Contextual: Lograr que la IA (Genkit) no solo genere tareas genéricas, sino que entienda el contexto de los proyectos del usuario (descripciones, tareas existentes) para ofrecer sugerencias verdaderamente relevantes.
- Gestión de Estado Compleja: Manejar un estado global reactivo para tareas, proyectos y configuraciones de usuario a través de toda la aplicación, sincronizándolo de manera eficiente con Firestore.
- Comandos de Voz: Implementar la funcionalidad de voz a texto de manera fiable, procesando el lenguaje natural para extraer entidades (títulos, prioridades, categorías) y convertirlas en datos estructurados.
- Stack Next.js + TypeScript: Para un rendimiento optimizado (renderizado en servidor), tipado estricto y una base de código escalable.
- Tailwind CSS + ShadCN UI: Para un desarrollo rápido de componentes UI modernos, personalizables y accesibles, manteniendo la consistencia visual.
- Firebase (Firestore): Como base de datos NoSQL en tiempo real para garantizar que los datos estén siempre sincronizados entre dispositivos.
- Genkit (Google AI): Para orquestar los flujos de inteligencia artificial, conectando la lógica de la aplicación con los modelos de Gemini de forma estructurada y mantenible.
- React Context API: Para una gestión de estado centralizada (
TaskContext), proveyendo los datos y las funciones de manipulación a todos los componentes que los necesiten sin "prop-drilling".
TaskZenith/
├── public/
│ └── logo.png
├── src/
│ ├── app/
│ │ ├── (rutas)/
│ │ │ └── page.tsx
│ │ ├── globals.css
│ │ └── layout.tsx
│ ├── components/
│ │ ├── layout/
│ │ ├── tasks/
│ │ └── ui/ (ShadCN)
│ ├── contexts/
│ │ └── task-context.tsx
│ ├── hooks/
│ │ └── use-toast.ts
│ ├── lib/
│ │ ├── actions.ts (Server Actions)
│ │ ├── firebase.ts
│ │ ├── types.ts
│ │ └── utils.ts
│ └── ai/
│ ├── flows/
│ │ ├── generate-tasks.ts
│ │ └── process-voice-command.ts
│ └── genkit.ts
├── package.json
├── tailwind.config.ts
└── tsconfig.json
- Autenticación y Carga: Al iniciar, la aplicación carga los datos del usuario (tareas y proyectos) desde Firestore.
- Gestión de Tareas: El usuario puede añadir, completar, eliminar y editar tareas. Todos los cambios se reflejan inmediatamente en la UI a través del
TaskContexty se envían a Firestore para su persistencia. - Generación con IA:
- Basada en Texto: El usuario describe una actividad. La descripción, junto con el contexto del proyecto seleccionado (si aplica), se envía a un
flowde Genkit. La IA analiza el contexto y devuelve una lista de subtareas sugeridas. - Basada en Voz: El usuario activa el micrófono. La
Web Speech APIdel navegador transcribe la voz a texto. Este texto se envía a unflowde Genkit especializado que interpreta el lenguaje natural, extrae las tareas con sus atributos (prioridad, categoría) y las devuelve como datos estructurados.
- Basada en Texto: El usuario describe una actividad. La descripción, junto con el contexto del proyecto seleccionado (si aplica), se envía a un
- Organización Kanban: Las tareas asignadas a proyectos pueden ser visualizadas y gestionadas en un tablero Kanban con estados personalizables (Pendiente, En Progreso, etc.).
git clone https://github.com/sjaquer/TaskZenith.git
cd TaskZenithnpm installAsegúrate de que las credenciales de tu proyecto de Firebase en src/lib/firebase.ts sean correctas.
npm run devAbre tu navegador en http://localhost:9002 o el puerto que tengas configurado.
npm run build- Estilos: Modifica la paleta de colores y las fuentes en
src/app/globals.cssytailwind.config.ts. - Lógica de IA: Ajusta los
promptsen los archivos dentro desrc/ai/flows/para cambiar el comportamiento del asistente de IA. - Datos: La gestión de datos se centraliza en
src/contexts/task-context.tsx, que interactúa directamente con Firestore.
- Optimistic UI Updates: Para una experiencia de usuario fluida, las acciones como añadir o completar una tarea actualizan la UI instantáneamente, mientras la petición a la base de datos se resuelve en segundo plano.
- Server Actions de Next.js: Se utilizan para comunicar el cliente con los flujos de Genkit de forma segura y eficiente.
- Componentes Reutilizables: La arquitectura se basa en componentes modulares (principalmente de ShadCN) para facilitar el mantenimiento y la escalabilidad.
Distribuido bajo la Licencia MIT. Consulta LICENSE para más información.
Desarrollado por Sebastián Jaque
