Proyecto Django para la gestión integral de instituciones educativas CENS (Buenos Aires).
En el archivo Explicacion_del_proyecto.txt se detalla cómo y dónde se aplicaron los conceptos aprendidos en la diplomatura:
- Patrones de diseño (Factory, Strategy) en la lógica de Cooperadora.
- Uso de herencia, polimorfismo, encapsulamiento y buenas prácticas de POO.
- Separación de lógica de negocio en servicios.
- Implementación de roles, permisos y context processors.
Revisa ese archivo para entender la arquitectura y las decisiones técnicas del proyecto.
- Dockerización completa: el proyecto incluye
Dockerfileydocker-compose.ymlpara despliegue en contenedores con Postgres, Gunicorn y Nginx. Ver sección "Dockerización" abajo. - Reportes PDF mensuales/anuales: exportación profesional idéntica al modelo oficial, con logo en el pie derecho, formato A4 horizontal, totales y área de firmas.
- Cooperadora:
- Migraciones para categorías y subcategorías de ingresos/egresos.
- Lógica de cierre mensual con patrones Factory y Strategy (
services.py). - ABM de transacciones con categorías.
- Cursos:
- Campos nuevos: preceptor, dicyt, especialidad.
- Migración para especialidades por defecto.
- Subjects, Students, Teachers:
- Nuevos campos: dirección, localidad, teléfonos, etc. (ver migraciones).
- UI y permisos:
- Roles y permisos en context processors (
core/context_processors.py). - Sidebar y navegación con checks de permisos.
- Cache-busting en CSS para desarrollo.
- Roles y permisos en context processors (
- Scripts útiles:
scripts/add_dummy_transactions.pypara carga masiva de datos de prueba.
- Configuración para producción:
- Variables de entorno para Postgres, secretos y modo debug.
- Gunicorn + Nginx para servir la app y archivos estáticos.
El proyecto puede ejecutarse en contenedores usando Docker y docker-compose:
Dockerfile: construye la imagen con Python 3.11, instala dependencias, ejecutacollectstaticy arranca Gunicorn.docker-compose.yml: define servicios para Django (web), Nginx (reverse proxy) y Postgres (base de datos).nginx/nginx.conf: configuración para servir estáticos y proxy reverso a Gunicorn.
-
Crear archivo
.envcon variables de entorno (opcional, para producción):DATABASE_NAME=impulsa_db DATABASE_USER=impulsa_user DATABASE_PASSWORD=impulsa_pass DATABASE_HOST=db DATABASE_PORT=5432 DJANGO_SECRET=tu_clave_secreta DEBUG=False ALLOWED_HOSTS=localhost,127.0.0.1
-
Construir y levantar los servicios:
docker-compose build docker-compose up
-
Acceder a la app en http://localhost
-
Para crear el superusuario dentro del contenedor:
docker-compose exec web py manage.py createsuperuser
- Crear y activar un virtualenv (PowerShell):
python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt
- Aplicar migraciones y arrancar:
py manage.py migrate py manage.py createsuperuser py manage.py runserver
- core: configuración y modelos compartidos
- students: gestión de alumnos ABM
- courses: gestión de cursos ABM (niveles, divisiones, especialidades, preceptor/dicyt)
- teachers: gestión de docentes ABM
- projects: proyectos multidisciplinarios ABM
- cooperadora: gestión de la cooperadora (ingresos/egresos, categorías, reportes PDF)
- subjects: gestión de asignaturas AMB
manage.py— utilidades Djangoimpulsa/— configuración principal (settings.py,urls.py)core/— modelos y utilidades compartidasstudents/,teachers/,subjects/,cooperadora/,projects/,courses/— apps principalestemplates/— plantillas globales y por appstatic/— archivos estáticos (CSS/JS)graphics/— logos y assets gráficosnginx/— configuración de Nginx para producciónscripts/— utilidades y carga masiva
Desarrollado por Bytenco — https://www.bytenco.com.ar
Copia los logos proporcionados por Bytenco a la carpeta graphics/ del proyecto. Ejemplo:
# En Windows PowerShell, copia el logo desde tu carpeta de intercambio
Copy-Item "Z:\Personal intercambio\Bytenco\Bytenco.png" -Destination .\graphics\Bytenco.png