Sistema de gestión para equipos de fútbol amateur con arquitectura multi-tenant.
- Multi-Tenant: Múltiples equipos/organizaciones con aislamiento completo de datos
- Gestión de Jugadores: Roster con posiciones, estadísticas, fotos y contacto
- Partidos: Programación, resultados, asistencia y alineaciones
- Pagos: Control de cuotas mensuales, pagos de campeonatos y otros pagos
- Importación Liga Hesperides: Análisis de capturas de pantalla con IA para importar datos
- Panel de Administración: Gestión de organizaciones, usuarios y base de datos
- Frontend: React, TypeScript, Tailwind CSS, shadcn/ui
- Backend: Node.js, Express, TypeScript
- Base de Datos: PostgreSQL con Drizzle ORM
- Autenticación: Email/password con sesiones seguras
- Almacenamiento: Object Storage compatible con S3
- Node.js 20+
- PostgreSQL 14+
- (Opcional) S3-compatible storage para archivos
# Clonar repositorio
git clone https://github.com/tu-usuario/golmanager.git
cd golmanager
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tus valores
# Ejecutar migraciones
npm run db:push
# Iniciar servidor de desarrollo
npm run devVer DEPLOY.md para instrucciones completas de despliegue con Docker.
├── client/ # Frontend React
│ ├── src/
│ │ ├── components/ # Componentes reutilizables
│ │ ├── pages/ # Páginas de la aplicación
│ │ ├── hooks/ # Custom hooks
│ │ └── lib/ # Utilidades
├── server/ # Backend Express
│ ├── routes.ts # API endpoints
│ ├── storage.ts # Capa de acceso a datos
│ └── auth.ts # Autenticación
├── shared/ # Código compartido
│ └── schema.ts # Esquema de base de datos y tipos
└── docker-compose.yml # Configuración Docker
POST /api/auth/login- Iniciar sesiónPOST /api/auth/register- Registrar usuarioPOST /api/auth/logout- Cerrar sesiónGET /api/auth/me- Usuario actual
GET /api/players- Listar jugadoresPOST /api/players- Crear jugadorPATCH /api/players/:id- Actualizar jugadorDELETE /api/players/:id- Eliminar jugador
GET /api/matches- Listar partidosPOST /api/matches- Crear partidoPATCH /api/matches/:id- Actualizar partidoDELETE /api/matches/:id- Eliminar partido
GET /api/monthly-payments- Pagos mensualesGET /api/championship-payments- Pagos de campeonatosGET /api/other-payments- Otros pagos
GET /api/admin/organizations- Listar organizacionesGET /api/admin/database/stats- Estadísticas de BDGET /api/admin/database/export- Exportar backup
| Variable | Descripción |
|---|---|
DATABASE_URL |
URL de conexión PostgreSQL |
SESSION_SECRET |
Secreto para sesiones (generar con openssl rand -hex 32) |
S3_ENDPOINT |
Endpoint de almacenamiento S3 |
S3_ACCESS_KEY |
Clave de acceso S3 |
S3_SECRET_KEY |
Clave secreta S3 |
S3_BUCKET |
Nombre del bucket |
- Fork del repositorio
- Crear rama feature (
git checkout -b feature/nueva-funcionalidad) - Commit cambios (
git commit -am 'Añadir nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Crear Pull Request
MIT - Ver LICENSE