- Descripción
- Estado
- Funcionalidades
- Demostración
- Instalación y uso
- Calidad del Código
- Tecnologías
- Autoría
- Licencia
Una aplicación Pomodoro full-stack simple para ayudarte a gestionar tu tiempo y mantener la concentración.
🚧 Proyecto en desarrollo. Versión actual: v1.0.0.
- Backend API: Servidor base con Express y TypeScript.
- API de Tareas: CRUD completo para la gestión de tareas.
GET /api/tasks: Lista todas las tareas.GET /api/tasks/:id: Obtiene una tarea específica por su ID.POST /api/tasks: Crea una nueva tarea.PATCH /api/tasks/:id: Actualiza una tarea existente.DELETE /api/tasks/:id: Elimina una tarea.
- API de Sesiones: Endpoints para iniciar y finalizar sesiones Pomodoro.
POST /api/sessions/start: Inicia una nueva sesión.POST /api/sessions/:id/end: Finaliza una sesión existente y actualiza estadísticas.GET /api/sessions: Lista las sesiones de un usuario.
- Base de Datos: Configuración con PostgreSQL y Prisma ORM.
- Frontend App: Aplicación base con React, Vite y Tailwind CSS.
- Conexión: Health check entre frontend y backend.
(Aquí puedes agregar capturas de pantalla o GIFs de tu aplicación)
- Node.js (v18 o superior)
- npm
- Git
- PostgreSQL: Puedes instalarlo localmente o usar Docker.
-
Clonar el repositorio
# Reemplaza [YOUR_USERNAME] con tu usuario de GitHub git clone https://github.com/[YOUR_USERNAME]/pomodoro-app.git cd pomodoro-app
-
Instalar dependencias
# Instalar dependencias del root, backend y frontend npm install cd backend && npm install cd ../frontend && npm install cd ..
-
Configurar la Base de Datos (Backend)
- Navega a la carpeta
backend. - Crea un archivo
.enven la raíz de la carpetabackend. - Modifica la variable
DATABASE_URLen el archivo.envcon tus credenciales de PostgreSQL.DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/pomodoro?schema=public" - Si usas Docker, puedes iniciar un contenedor de Postgres con el comando que se proveyó en la guía de desarrollo.
- Navega a la carpeta
-
Aplicar las migraciones de la Base de Datos Asegúrate de estar en el directorio
backend.npx prisma migrate dev
-
Ejecutar la aplicación Necesitarás dos terminales para ejecutar el backend y el frontend simultáneamente.
# Terminal 1: Iniciar el backend (desde la raíz del proyecto) npm run dev --prefix backend # Terminal 2: Iniciar el frontend (desde la raíz del proyecto) npm run dev --prefix frontend
Este proyecto utiliza ESLint (configurado en eslint.config.js) para el linting y Prettier para el formateo del código, asegurando la consistencia y calidad.
npm run lint: Ejecuta ESLint para identificar problemas de código.npm run format: Formatea automáticamente el código usando Prettier.
Para asegurar la calidad del código antes de cada commit, este proyecto utiliza Husky y lint-staged.
- Husky: Configurado para ejecutar scripts en los hooks de Git.
lint-staged: Ejecuta automáticamente ESLint (--fix) y Prettier (--write) en los archivos que están en el área de preparación (staged files) antes de cada commit. Esto garantiza que solo el código formateado y sin errores de linting sea confirmado.
Este proyecto utiliza Vitest para las pruebas unitarias y de integración en el frontend.
- Vitest: Configurado para ejecutar pruebas en un entorno de navegador simulado (JSDOM).
- React Testing Library: Utilizada para escribir pruebas que interactúan con los componentes de React de manera similar a como lo haría un usuario.
Para ejecutar las pruebas, usa el siguiente comando desde el directorio frontend:
npm run test- Backend: Node.js, Express, TypeScript, PostgreSQL, Prisma
- Frontend: React, Vite, TypeScript, Tailwind CSS
Este proyecto fue creado por mysterio-wil.
Este proyecto está bajo la licencia MIT.