Skip to content

wigsdev/POMODORO-APP

Repository files navigation

Pomodoro App

Estado Licencia Version
Node.js Express TypeScript PostgreSQL Prisma React Vite Tailwind CSS

Índice

Descripción

Una aplicación Pomodoro full-stack simple para ayudarte a gestionar tu tiempo y mantener la concentración.

Estado

🚧 Proyecto en desarrollo. Versión actual: v1.0.0.

Funcionalidades

  • 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.

Demostración

(Aquí puedes agregar capturas de pantalla o GIFs de tu aplicación)

Instalación y uso

Prerrequisitos

  • Node.js (v18 o superior)
  • npm
  • Git
  • PostgreSQL: Puedes instalarlo localmente o usar Docker.

Pasos

  1. Clonar el repositorio

    # Reemplaza [YOUR_USERNAME] con tu usuario de GitHub
    git clone https://github.com/[YOUR_USERNAME]/pomodoro-app.git
    cd pomodoro-app
  2. Instalar dependencias

    # Instalar dependencias del root, backend y frontend
    npm install
    cd backend && npm install
    cd ../frontend && npm install
    cd .. 
  3. Configurar la Base de Datos (Backend)

    • Navega a la carpeta backend.
    • Crea un archivo .env en la raíz de la carpeta backend.
    • Modifica la variable DATABASE_URL en el archivo .env con 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.
  4. Aplicar las migraciones de la Base de Datos Asegúrate de estar en el directorio backend.

    npx prisma migrate dev
  5. 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

Calidad del Código

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.

Scripts disponibles:

  • npm run lint: Ejecuta ESLint para identificar problemas de código.
  • npm run format: Formatea automáticamente el código usando Prettier.

Hooks de Git (Husky + lint-staged)

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.

Pruebas (Vitest)

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

Tecnologías utilizadas

  • Backend: Node.js, Express, TypeScript, PostgreSQL, Prisma
  • Frontend: React, Vite, TypeScript, Tailwind CSS

Autoría

Este proyecto fue creado por mysterio-wil.

Licencia

Este proyecto está bajo la licencia MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published