forked from val-lop20/Pagina-de-Asistencia-MAC
248 lines
6.4 KiB
Markdown
248 lines
6.4 KiB
Markdown
# Guía de Configuración para Colaboradores
|
|
|
|
Esta guía te ayudará a configurar el proyecto en tu máquina local con todos los datos necesarios ya precargados.
|
|
|
|
## 🚀 Inicio Rápido (5 minutos)
|
|
|
|
### Prerrequisitos
|
|
- Docker y Docker Compose instalados
|
|
- Git instalado
|
|
|
|
### Paso 1: Clonar el Repositorio
|
|
|
|
```bash
|
|
git clone https://github.com/val20-11/Pagina-de-Asistencia-MAC.git
|
|
cd Pagina-de-Asistencia-MAC
|
|
```
|
|
|
|
### Paso 2: Configurar Variables de Entorno
|
|
|
|
```bash
|
|
# Copiar el archivo de ejemplo
|
|
cp .env.development.example .env.development
|
|
|
|
# (Opcional) Puedes editar .env.development si necesitas cambiar algo
|
|
# Por defecto viene configurado y listo para usar
|
|
```
|
|
|
|
### Paso 3: Iniciar el Proyecto
|
|
|
|
```bash
|
|
# Iniciar todos los contenedores
|
|
docker-compose -f docker-compose.dev.yml up --build -d
|
|
|
|
# Ver los logs (CTRL+C para salir)
|
|
docker-compose -f docker-compose.dev.yml logs -f
|
|
```
|
|
|
|
### Paso 4: Acceder al Sistema
|
|
|
|
**¡Listo!** El sistema estará disponible en:
|
|
|
|
- **Aplicación:** http://localhost
|
|
- **Panel Admin:** http://localhost/admin
|
|
|
|
## 👤 Usuarios Precargados
|
|
|
|
El sistema viene con usuarios ya creados que puedes usar inmediatamente:
|
|
|
|
### Superusuario (Admin)
|
|
- **Usuario:** `Admin`
|
|
- **Contraseña:** (la contraseña del usuario Admin original)
|
|
- **Acceso:** Panel de administración completo
|
|
|
|
### Asistentes
|
|
- **Usuario:** `asst_11111111`
|
|
- **Contraseña:** `11111111` (mismo que el número de cuenta)
|
|
- **Acceso:** Panel de asistentes
|
|
|
|
*Nota: Todos los usuarios y datos están en `backend/fixtures/initial_data.json`*
|
|
|
|
## 🔄 Cómo Funciona la Inicialización Automática
|
|
|
|
Cuando inicias el proyecto por primera vez:
|
|
|
|
1. **Docker Compose** ejecuta las migraciones de Django
|
|
2. **Script `init_db.py`** detecta si la base de datos está vacía
|
|
3. Si está vacía, carga automáticamente los **fixtures** desde `backend/fixtures/`
|
|
4. Los fixtures incluyen:
|
|
- Usuarios (superusuarios y asistentes)
|
|
- Perfiles de usuario
|
|
- Eventos (si existen)
|
|
- Asistencias (si existen)
|
|
|
|
**No necesitas hacer nada manualmente** - todo se configura automáticamente.
|
|
|
|
## 🔧 Comandos Útiles
|
|
|
|
### Ver logs en tiempo real
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml logs -f
|
|
```
|
|
|
|
### Reiniciar contenedores
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml restart
|
|
```
|
|
|
|
### Detener el proyecto
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml down
|
|
```
|
|
|
|
### Resetear la base de datos completamente
|
|
```bash
|
|
# Esto elimina todos los datos y volúmenes
|
|
docker-compose -f docker-compose.dev.yml down -v
|
|
|
|
# Luego volver a iniciar (se recargarán los fixtures automáticamente)
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
```
|
|
|
|
### Crear un nuevo superusuario (opcional)
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml exec backend python manage.py createsuperuser
|
|
```
|
|
|
|
### Acceder a la consola de Django
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml exec backend python manage.py shell
|
|
```
|
|
|
|
### Ejecutar tests
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml exec backend pytest
|
|
```
|
|
|
|
## 📊 Actualizar con Nuevos Datos
|
|
|
|
Si el equipo comparte nuevos datos:
|
|
|
|
### Opción 1: Actualizar desde Git (Recomendado)
|
|
|
|
```bash
|
|
# Obtener los últimos cambios
|
|
git pull origin main
|
|
|
|
# Reiniciar los contenedores para cargar los nuevos fixtures
|
|
docker-compose -f docker-compose.dev.yml down -v
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
```
|
|
|
|
### Opción 2: Cargar fixtures manualmente
|
|
|
|
```bash
|
|
# Si solo quieres cargar fixtures específicos sin borrar todo
|
|
docker-compose -f docker-compose.dev.yml exec backend python manage.py loaddata backend/fixtures/initial_data.json
|
|
```
|
|
|
|
## 🎯 Compartir tus Cambios
|
|
|
|
Si quieres que otros colaboradores tengan tus datos:
|
|
|
|
### 1. Exportar los datos actuales
|
|
|
|
Usa el script de exportación:
|
|
|
|
```bash
|
|
# En Windows PowerShell
|
|
python export_fixtures.py
|
|
|
|
# En Linux/Mac
|
|
python3 export_fixtures.py
|
|
```
|
|
|
|
Esto creará/actualizará archivos en `backend/fixtures/`:
|
|
- `initial_users.json` - Usuarios y perfiles
|
|
- `initial_events.json` - Eventos y asistencias (si existen)
|
|
|
|
### 2. Subir a GitHub
|
|
|
|
```bash
|
|
git add backend/fixtures/
|
|
git commit -m "Actualizar fixtures con nuevos datos"
|
|
git push origin main
|
|
```
|
|
|
|
### 3. Notificar al equipo
|
|
|
|
Avisa a tu equipo que ejecuten:
|
|
```bash
|
|
git pull origin main
|
|
docker-compose -f docker-compose.dev.yml down -v
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
```
|
|
|
|
## ❓ Problemas Comunes
|
|
|
|
### "El contenedor backend no inicia"
|
|
```bash
|
|
# Ver logs del backend
|
|
docker-compose -f docker-compose.dev.yml logs backend
|
|
|
|
# Reintentar con build limpio
|
|
docker-compose -f docker-compose.dev.yml up --build
|
|
```
|
|
|
|
### "No puedo acceder a http://localhost"
|
|
1. Verifica que los contenedores estén corriendo:
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml ps
|
|
```
|
|
2. Verifica que el puerto 80 no esté ocupado
|
|
3. Prueba con `http://127.0.0.1`
|
|
|
|
### "La base de datos no tiene datos"
|
|
```bash
|
|
# Verificar que los fixtures existan
|
|
ls -la backend/fixtures/
|
|
|
|
# Cargar manualmente si es necesario
|
|
docker-compose -f docker-compose.dev.yml exec backend python init_db.py
|
|
```
|
|
|
|
### "Error al cargar fixtures"
|
|
```bash
|
|
# Verificar que los archivos JSON sean válidos
|
|
cat backend/fixtures/initial_data.json | python -m json.tool
|
|
|
|
# Ver logs detallados
|
|
docker-compose -f docker-compose.dev.yml exec backend python manage.py loaddata backend/fixtures/initial_data.json --verbosity 2
|
|
```
|
|
|
|
## 📁 Estructura de Archivos Importantes
|
|
|
|
```
|
|
Pagina-de-Asistencia-MAC/
|
|
├── .env.development # Variables de entorno (NO en Git)
|
|
├── .env.development.example # Plantilla de variables de entorno
|
|
├── docker-compose.dev.yml # Configuración Docker para desarrollo
|
|
├── export_fixtures.py # Script para exportar datos
|
|
├── backend/
|
|
│ ├── init_db.py # Script de inicialización automática
|
|
│ └── fixtures/ # Datos iniciales (fixtures)
|
|
│ ├── initial_data.json # Usuarios y perfiles
|
|
│ └── initial_events.json # Eventos (si existen)
|
|
└── SETUP_COLABORADORES.md # Esta guía
|
|
```
|
|
|
|
## 🔐 Seguridad
|
|
|
|
- **NO subas archivos `.env`** a GitHub (ya están en `.gitignore`)
|
|
- Los fixtures pueden contener **contraseñas hasheadas** (seguras)
|
|
- Si compartes fixtures, asegúrate de que no contengan **datos sensibles reales**
|
|
- En producción, siempre cambia las contraseñas por defecto
|
|
|
|
## 📞 Soporte
|
|
|
|
Si tienes problemas:
|
|
|
|
1. Revisa esta guía
|
|
2. Verifica los logs: `docker-compose -f docker-compose.dev.yml logs`
|
|
3. Consulta el README principal del proyecto
|
|
4. Pregunta al equipo de desarrollo
|
|
|
|
---
|
|
|
|
**¡Bienvenido al equipo de desarrollo! 🎉**
|