Sistema de base de datos relacional diseñado para optimizar la operativa de la Organización No Gubernamental "Ayuda en Acción". Centraliza la gestión de donors, la trazabilidad de fondos, la asignación de recursos a proyectos y la automatización de reportes de impacto, garantizando transparencia y eficiencia en la ayuda humanitaria.
Este proyecto resuelve la dispersión de información común en ONGs —hojas de cálculo dispersas, registros manuales, archivos inconexos— que dificulta la toma de decisiones y la rendición de cuentas. El sistema implementa un modelo de datos normalizado en Tercera Forma Normal (3FN) que permite:
- 🔗 Trazabilidad Total: Seguimiento desde la recepción de la donación hasta su ejecución en terreno.
- 💳 Gestión Multicanal: Soporte para donaciones monetarias (tarjeta, transferencia, pago móvil) y donaciones en especie.
- 🔍 Transparencia: Vistas automatizadas para calcular el impacto financiero real de cada proyecto.
- 📧 Comunicación CRM: Gestión de interacciones para mantener informados a los donors sobre el destino de sus aportes.
| Componente | Versión / Detalle | Descripción |
|---|---|---|
| PostgreSQL | 17+ |
Motor de base de datos relacional de objetos |
| SQL | Estándar |
Lenguaje de consulta (DDL, DML, DQL) para estructura y datos |
| psql / pg_dump | 17+ |
Herramientas nativas de línea de comandos para restauración y backup |
| Git / GitHub | Latest |
Control de versiones y alojamiento del repositorio |
sql_ong_ayuda_accion/
├── docs/ # Documentación de negocio y especificaciones
├── diagrams/ # Diagramas Entidad-Relación (lógico y físico)
├── sql/
│ ├── 00_restore_completo.sql # Backup completo de la base de datos
│ ├── 01_schema.sql # DDL: tablas, constraints, índices
│ ├── 02_data.sql # DML: datos de prueba
│ └── 03_queries_example.sql # DQL: consultas de análisis y reportes
└── README.md # Este archivo
- PostgreSQL 14 o superior (recomendado: v17)
- Acceso a terminal o cliente SQL (psql, pgAdmin, DBeaver)
-
Clonar el repositorio
git clone https://github.com/darwinjcn/sql_ong_ayuda_accion.git cd sql_ong_ayuda_accion -
Crear la base de datos
createdb ong_ayuda_accion
-
Cargar el esquema y datos — elige una opción:
Opción A: Restauración completa (recomendado)
Ejecuta el backup completo en un solo paso:
psql -U tu_usuario -d ong_ayuda_accion -f sql/00_restore_completo.sql
Opción B: Ejecución modular
psql -U tu_usuario -d ong_ayuda_accion -f sql/01_schema.sql psql -U tu_usuario -d ong_ayuda_accion -f sql/02_data.sql psql -U tu_usuario -d ong_ayuda_accion -f sql/03_queries_example.sql
El modelo está estructurado en Tercera Forma Normal (3FN) para eliminar redundancias y garantizar la consistencia de los datos.
| Tabla | Descripción |
|---|---|
donante |
Información de donors individuales y empresas |
proyecto |
Iniciativas y frentes de ayuda |
donacioneconomica |
Donaciones monetarias registradas |
donacionespecie |
Donaciones en especie (bienes materiales) |
usofondos |
Asignación y ejecución de fondos |
voluntario |
Registro de talento humano |
Integridad referencial:
- Claves foráneas (
FK) con políticas de borrado/actualización para evitar registros huérfanos - Restricciones
CHECKpara validar dominios (estados válidos, montos positivos, tipos de pago)
Vistas estratégicas para simplificar el reporting y la toma de decisiones:
vw_donaciones_totales_por_donante— Agrega y totaliza las donaciones por donorvw_impacto_proyectos— Calcula el balance financiero en tiempo real (Ingresos − Gastos) por proyectovw_comunicaciones_pendientes— Filtra tareas CRM pendientes de envíovw_voluntarios_por_proyecto— Listado consolidado del personal asignado a cada frente de ayuda
Índices en columnas críticas para garantizar tiempos de respuesta óptimos:
- Índices únicos sobre correos electrónicos (
donantes) - Índices de rango sobre fechas de donaciones y asignación de fondos
- Índices B-Tree en columnas de estado para agilizar filtrados
| Archivo | Descripción |
|---|---|
📦 00_restore_completo.sql |
Backup completo con estructura y datos (Restore total de la BD) |
🏗️ 01_schema.sql |
Creación del esquema: tablas, índices, restricciones y relaciones |
💾 02_data.sql |
Inserción masiva de datos (donantes, beneficiarios, proyectos, etc.) |
🔍 03_queries_example.sql |
Consultas de ejemplo: reportes, JOINs, agregaciones y vistas |
💡 Tip: Haz clic en cualquier archivo para ver el código fuente directamente en GitHub o usa el botón "Raw" / "Copy" para copiarlo a tu entorno local.
- 📋 Caso de Estudio — Análisis del caso de negocio
- 📋 Reporte Completo ONG — Especificaciones funcionales y diccionario de datos
Desarrollado por Darwin Colmenares
Especialista en Datos y Desarrollador Backend
¿Necesitas ayuda con el proyecto o quieres conectar?
🌐 LinkedIn | 📧 colmenaresdarwin06@gmail.com | 💼 Portafolio

