Skip to content

Latest commit

 

History

History
135 lines (105 loc) · 4.51 KB

File metadata and controls

135 lines (105 loc) · 4.51 KB

impulsa_gestion

Proyecto Django para la gestión integral de instituciones educativas CENS (Buenos Aires).


Documentación de conceptos y patrones

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.


Novedades y mejoras recientes

  • Dockerización completa: el proyecto incluye Dockerfile y docker-compose.yml para 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.
  • Scripts útiles:
    • scripts/add_dummy_transactions.py para 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.

Dockerización

El proyecto puede ejecutarse en contenedores usando Docker y docker-compose:

Archivos principales

  • Dockerfile: construye la imagen con Python 3.11, instala dependencias, ejecuta collectstatic y 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.

Ejemplo de uso

  1. Crear archivo .env con 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
  2. Construir y levantar los servicios:

    docker-compose build
    docker-compose up
  3. Acceder a la app en http://localhost

  4. Para crear el superusuario dentro del contenedor:

    docker-compose exec web py manage.py createsuperuser

Instalación rápida (sin Docker)

  1. Crear y activar un virtualenv (PowerShell):
    python -m venv .venv
    .\.venv\Scripts\Activate.ps1
    pip install -r requirements.txt
  2. Aplicar migraciones y arrancar:
    py manage.py migrate
    py manage.py createsuperuser
    py manage.py runserver

Apps incluidas

  • 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

Estructura relevante del proyecto

  • manage.py — utilidades Django
  • impulsa/ — configuración principal (settings.py, urls.py)
  • core/ — modelos y utilidades compartidas
  • students/, teachers/, subjects/, cooperadora/, projects/, courses/ — apps principales
  • templates/ — plantillas globales y por app
  • static/ — archivos estáticos (CSS/JS)
  • graphics/ — logos y assets gráficos
  • nginx/ — configuración de Nginx para producción
  • scripts/ — utilidades y carga masiva

Créditos

Desarrollado por Bytenco — https://www.bytenco.com.ar


Logos

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