forked from val-lop20/Pagina-de-Asistencia-MAC
5.9 KiB
5.9 KiB
Estructura del Proyecto
Este documento describe la organización de carpetas y archivos del Sistema de Asistencia MAC.
Estructura de Directorios
pagina-mac-og/
├── backend/ # Aplicación Django (Backend)
│ ├── attendance/ # App de gestión de asistencias
│ ├── authentication/ # App de autenticación y usuarios
│ ├── events/ # App de gestión de eventos
│ ├── mac_attendance/ # Configuración principal de Django
│ ├── scripts/ # Scripts de utilidad y pruebas
│ ├── static/ # Archivos estáticos (CSS, JS)
│ ├── templates/ # Plantillas HTML
│ ├── db/ # Base de datos SQLite
│ ├── logs/ # Logs de la aplicación
│ ├── media/ # Archivos multimedia subidos
│ └── manage.py # CLI de Django
│
├── frontend/ # Aplicación React (Frontend)
│ ├── src/ # Código fuente
│ │ ├── components/ # Componentes React
│ │ ├── contexts/ # Contextos (Auth, etc.)
│ │ ├── services/ # Servicios (API calls)
│ │ └── styles/ # Estilos CSS
│ ├── public/ # Archivos públicos
│ └── package.json # Dependencias de Node.js
│
├── docker/ # Configuración Docker
│ ├── Dockerfile.backend # Dockerfile para Django
│ ├── Dockerfile.frontend # Dockerfile para React + Nginx
│ └── nginx.conf # Configuración de Nginx
│
├── docs/ # Documentación
│ ├── ACCESO_ADMIN.md # Guía de acceso al admin
│ ├── API_DOCUMENTATION.md # Documentación de API
│ ├── DOCKER_SETUP.md # Configuración de Docker
│ ├── GUIA_COMPARTIR_DOCKER.md # Guía para compartir
│ ├── INSTRUCCIONES_GITHUB.md # Instrucciones de Git
│ ├── ESTRUCTURA_PROYECTO.md # Este archivo
│ └── postman_collection.json # Colección de Postman
│
├── docker-compose.yml # Orquestación de contenedores
├── .dockerignore # Archivos ignorados por Docker
├── .env.example # Ejemplo de variables de entorno
├── .gitignore # Archivos ignorados por Git
├── install.sh # Script de instalación (Linux/Mac)
├── install.bat # Script de instalación (Windows)
├── create_superuser.sh # Script para crear superusuario
├── README.md # Documentación principal
└── LICENSE # Licencia del proyecto
Descripción de Componentes
Backend (Django)
Aplicaciones Django:
- attendance: Gestión de asistencias y estadísticas
- authentication: Sistema de autenticación, usuarios, perfiles
- events: Gestión de eventos del MAC
- mac_attendance: Configuración principal del proyecto Django
Archivos importantes:
manage.py: CLI de Django para ejecutar comandosrequirements.txt: Dependencias de Pythondb.sqlite3: Base de datos SQLite (desarrollo)
Frontend (React)
Estructura:
src/components/: Componentes React organizados por rol (admin, student, attendance)src/contexts/: Contextos de React (AuthContext para autenticación)src/services/: Servicios para llamadas a la APIsrc/styles/: Archivos CSS
Docker
Archivos:
Dockerfile.backend: Imagen de Docker para el backend DjangoDockerfile.frontend: Imagen de Docker para el frontend React + Nginxnginx.conf: Configuración del servidor Nginx como proxy reverso
Documentación
Toda la documentación técnica, guías de uso y configuración se encuentra en la carpeta docs/.
Flujo de Trabajo
Desarrollo
- Backend: Modificar código en
backend/ - Frontend: Modificar código en
frontend/src/ - Docker: Los cambios se reflejan automáticamente con volúmenes
Despliegue
- Construir imágenes:
docker-compose build - Iniciar servicios:
docker-compose up -d - Verificar logs:
docker-compose logs -f
Scripts Útiles
Backend (desde backend/)
python manage.py migrate # Aplicar migraciones
python manage.py createsuperuser # Crear superusuario
python manage.py collectstatic # Recopilar archivos estáticos
python scripts/create_test_data.py # Crear datos de prueba
Docker
docker-compose up -d # Iniciar servicios
docker-compose down # Detener servicios
docker-compose logs backend # Ver logs del backend
docker-compose restart backend # Reiniciar backend
Variables de Entorno
Copia .env.example a .env y configura las variables según tu entorno:
cp .env.example .env
# Editar .env con tus valores
Puertos
- Frontend (Nginx): http://localhost (puerto 80)
- Backend (Django): http://localhost:8000 (interno, proxy via Nginx)
- Admin Django: http://localhost/admin
Notas Importantes
- Base de datos: SQLite por defecto en desarrollo. Para producción, usar PostgreSQL.
- Archivos estáticos: Servidos por Nginx en producción
- CORS: Configurado para permitir localhost en desarrollo
- Logs: Disponibles en
backend/logs/y viadocker-compose logs
Convenciones
- Backend: Seguir guía de estilo PEP 8 para Python
- Frontend: Seguir guía de estilo de Airbnb para JavaScript/React
- Commits: Mensajes descriptivos en español
- Branches:
mainpara producción, crear feature branches para desarrollo
Soporte
Para más información, consulta:
- README.md - Guía general del proyecto
- API_DOCUMENTATION.md - Documentación de la API
- DOCKER_SETUP.md - Configuración detallada de Docker