Alentapp es una plataforma moderna para la gestión de socios y administración de clubes. Está construida como un monorepo utilizando Typescript, React (Vite + Chakra UI) en el frontend, y Fastify con Prisma (PostgreSQL) en el backend, siguiendo los principios de la Arquitectura Hexagonal.
Para conocer en detalle las decisiones de arquitectura del proyecto, puedes consultar la Documentación de Arquitectura.
- Node.js (v18 o superior recomendado)
- npm (gestor de paquetes)
- Docker y Docker Compose
La forma más rápida y recomendada de levantar el entorno de desarrollo es utilizando Docker Compose. Este método configurará la base de datos PostgreSQL, ejecutará las migraciones de Prisma, y levantará tanto el frontend como el backend automáticamente con hot-reloading.
- Clonar el repositorio:
git clone <url-del-repositorio> cd alentapp
- Levantar los servicios:
¡Eso es todo! Docker se encargará de instalar las dependencias, aplicar la base de datos y correr los entornos.
docker compose up --build
- La API estará disponible en
http://localhost:3000 - El Frontend estará disponible en
http://localhost:5173
- La API estará disponible en
(Nota: Si deseas detener los contenedores, simplemente presiona Ctrl+C y ejecuta docker compose down).
Si necesitas visualizar la base de datos gráficamente a través del navegador, puedes usar Prisma Studio:
cd packages/api
npx prisma studioEl proyecto cuenta con una suite completa de tests (Unitarios, Integración y E2E Full-Stack). Para aprender a ejecutarlos y ver los diferentes modos disponibles (UI, Headed, Docker), consulta la Guía de Testing.
Si deseas colaborar con el proyecto, por favor lee primero nuestra Guía de Contribución para entender el flujo de trabajo con feature branches y los estándares de código.
En la carpeta /docs encontrarás información detallada sobre:
- Arquitectura: Decisiones técnicas y estructura del monorepo.
- Testing: Todo sobre la infraestructura de pruebas.
- Contribución: Cómo empezar a desarrollar en el proyecto.
- TDDs: Diseños técnicos y pruebas de cada funcionalidad implementada.