Visión general¶
SmartAid es una aplicación Django servida con ASGI. Tiene portal público, panel administrativo, WebSocket para notificaciones y persistencia principal en PostgreSQL.
Componentes¶
flowchart LR
Portal[Portal público /portal] --> Django[Django + Daphne]
Panel[Panel /panel] --> Django
Django --> Postgres[(PostgreSQL)]
Django --> Redis[(Redis Channels)]
Django --> Media[Media local o storage configurado]
Redis --> WS[WebSocket notificaciones]
| Carpeta | Responsabilidad |
|---|---|
config/ |
Settings, URLs raíz, ASGI/WSGI. |
apps/core |
Tenant, auditoría, seguridad, búsqueda, docs y utilidades. |
apps/usuarios |
Login, usuarios, dashboard y métricas. |
apps/convocatorias |
Convocatorias, reglas y preguntas adicionales. |
apps/solicitantes |
Portal público, solicitantes, expedientes y documentos. |
apps/evaluacion |
Scoring y dictámenes. |
apps/padron |
Padrón versionado y beneficiarios. |
apps/pagos |
Programación, conciliación y reportes de pagos. |
apps/notificaciones |
Bandeja, preferencias, WebSocket y Web Push. |
Entradas principales¶
| Ruta | Uso |
|---|---|
/ |
Landing pública. |
/portal/ |
Registro y consulta de solicitudes. |
/panel/ |
Dashboard administrativo. |
/docs/ |
Sitio MkDocs compilado desde docs_site. |
/django-admin/ |
Administración Django. |
/ws/notificaciones/ |
Canal WebSocket autenticado. |
Procesamiento¶
La aplicación ejecuta scoring, consolidación de padrón y creación de
notificaciones dentro del proceso web. Las notificaciones se emiten con
transaction.on_commit para no publicar eventos de transacciones revertidas.