ReservaFit es una aplicación completa para la gestión y reserva de clases deportivas y recreativas. Cuenta con un backend robusto con Node.js, Express y Prisma (PostgreSQL), y un frontend moderno desarrollado con React Native (Expo) y NativeWind.
Para levantar el proyecto en tu entorno de desarrollo, sigue los siguientes pasos:
- Node.js (v18 o superior recomendado)
- Docker y Docker Compose
- Expo Go (opcional, si deseas probar en dispositivos móviles físicos)
Levanta una instancia local de PostgreSQL utilizando el archivo docker-compose.yml provisto en la raíz:
docker compose up -dEsto creará y ejecutará un contenedor de PostgreSQL en el puerto 5432 con las credenciales:
- Usuario:
postgres - Contraseña:
postgres - Base de Datos:
reservafit
- Navega a la carpeta del backend:
cd backend - Crea tu archivo de entorno a partir de la plantilla
.env.example:cp .env.example .env
- Instala las dependencias necesarias:
(Esto generará automáticamente el cliente de Prisma)
npm install
- Aplica las migraciones a tu base de datos local de Docker:
npx prisma db push
- Inicia el servidor backend en modo desarrollo:
El backend estará escuchando en
npm run dev
http://localhost:3000.
Durante el desarrollo local o pruebas de control de calidad, puedes utilizar el código de verificación permanente 000000 para activar cualquier cuenta de usuario registrada al instante. Esto te permite registrarte y validar cuentas sin esperar el correo del servicio de Resend.
- Navega a la carpeta del frontend:
cd ../frontend - Instala las dependencias de Expo y React Native:
npm install
- Inicia la aplicación en el navegador o emulador:
- Para iniciar en la Web:
npm run web
- Para iniciar con Expo Start (código QR para móviles):
npm run start
- Para iniciar en la Web:
El proyecto utiliza una rama principal única: main.
Cuando ejecutas un comando de Git Push:
git add .
git commit -m "feat: descripción de tus cambios"
git push origin mainEsto activa de forma automatizada los flujos de Integración y Despliegue Continuo (CI/CD):
- Rama enlazada:
main - Puerto configurado:
10000 - ¿Qué pasa al hacer push?
- Railway detecta el cambio en la rama
mainy descarga la actualización. - Ejecuta
npm install(instalando dependencias y autogenerando Prisma client). - Ejecuta
npm run buildpara compilar TypeScript. - Levanta el servidor productivo corriendo
npm run starten el puerto10000. - Se conecta de manera segura a la base de datos PostgreSQL alojada en Supabase a través de la variable
DATABASE_URL.
- Railway detecta el cambio en la rama
- Rama enlazada:
main - ¿Qué pasa al hacer push?
- Vercel detecta la actualización en
main. - Genera la compilación optimizada para la Web (
expo export -p web/npm run build). - Despliega la nueva versión estática y la expone en la URL pública.
- Se comunica con el backend desplegado en Railway para consumir los endpoints de la API.
- Vercel detecta la actualización en