Para probar, puedes acceder con: eve.holt@reqres.in | cityslicka
Su objetivo es permitir la autenticación de usuarios y la gestión de tareas mediante un sistema de tablero estilo Trello, con funcionalidad de arrastrar y soltar, persistencia de datos.
-
Autenticación Segura
-
Permitir el inicio de sesión utilizando la API de ReqRes.
-
Persistencia de sesión incluso después de cerrar la página.
-
Redirección automática a la pantalla de tareas tras autenticación.
-
Implementar un método de verificación en la autenticación que utilice una clave dinámica generada por el frontend y que deba validarse en el backend (simulado).
-
El token de autenticación debe ser encriptado antes de ser almacenado en localStorage.
-
La autenticación debe incluir un retardo aleatorio de respuesta para simular latencia y detectar código que dependa de tiempos fijos.
-
Gestión de Tareas
-
Implementar un tablero de tareas con drag and drop (arrastrar y soltar) para gestionar tareas.
-
Múltiples columnas con estados configurables (Ejemplo: "Pendiente", "En progreso", "Completado").
-
Agregar, editar y eliminar tareas.
-
Evitar la duplicación de nombres de tareas.
-
Confirmación de eliminación antes de borrar una tarea.
-
Persistencia de tareas por usuario, incluso después de cerrar sesión.
-
Cada tarea debe contar con un identificador único generado manualmente en base a una combinación de fecha, usuario y un hash encriptado.
-
Las tareas deben almacenarse en un formato de datos no convencional (ejemplo: árbol de nodos en lugar de un simple array).
-
Manejo de datos avanzado
-
Implementación de un sistema de favoritos para marcar tareas como destacadas.
-
Persistencia de tareas y favoritos específicos por usuario.
-
Implementar una caché personalizada en memoria para evitar accesos repetidos al estado global. [x] Los datos de las tareas deben ser serializados y comprimidos antes de ser almacenados en localStorage o enviarse al backend.
- Framework Frontend: Next.js
- Lenguaje: TypeScript
- Gestión de Estado: Redux Toolkit
- Estilos: Styled Components
- Manejo de Formularios: React Hook Form + Yup
- Arrastrar y Soltar: DnD Kit
- Encriptación: CryptoJS
- Compresión: LZ-String
- Node.js (v18 o superior)
- npm o yarn
- Git
-
Clonar el repositorio
git clone https://github.com/yourusername/.git cd task-manager -
Instalar dependencias
npm install # o yarn install -
Ejecutar el servidor de desarrollo
npm run dev # o yarn dev -
Abrir el navegador Visitar http://localhost:3000
El proyecto mantiene un mínimo de 50% de cobertura de código.
npm run build
# o
yarn buildpublic/ # Recursos estáticos
src/
├── app/ # Router de Next.js
├── features/ # Caracteristicas especificas de la app
│ └── .../ # Nombre de la caracteristica
│ └── components/ # Componentes de la caracteristica
│ └── store/ # Redux store
├── shared/ # Código reutilizable y compartido
├── services/ # Integraciones de API y servicios
├── ui/ # Estilos globales y temas
│ └── components/ # Componentes reutilizables
│ └── icons/ # Iconos pasados a componentes
└── utils/ # Funciones y utilidades
- Almacenamiento local encriptado
- Validación y sanitización de entradas
- Rutas API protegidas
La aplicación utiliza una estructura de datos basada en árbol para la gestión de tareas, proporcionando:
- Organización eficiente de tareas
- Acceso rápido a tareas anidadas
- Actualizaciones de estado optimizadas
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.

