🎖️ Sistema de Orden de Mérito - Ejército Bolivariano
📌 Descripción del Proyecto
El Sistema de Orden de Mérito es una aplicación de escritorio moderna y segura desarrollada bajo la tecnología Electron. Su principal función es gestionar, evaluar y procesar la clasificación del personal militar del Ejército Bolivariano.
El sistema permite importar listados de profesionales en formato Excel (.xlsx, .xls), procesar los datos de manera estructurada, generar rankings en tiempo real, visualizar el Top 10 de manera gráfica, listar al personal no recomendado y exportar los resultados automatizados en reportes PDF adaptados a los estándares de la institución.
📖 Biografía / Propósito
Este proyecto fue concebido y desarrollado con la misión de automatizar y dar total transparencia al proceso de evaluación y clasificación del personal militar activo. Al sistematizar la Orden de Mérito, la institución asegura que se reconozca el esfuerzo, la constancia y el desempeño del profesional, agilizando procesos administrativos que tradicionalmente requerían la revisión manual de amplios archivos. Este sistema representa un salto cualitativo hacia la modernización tecnológica y la eficiencia organizacional dentro del Ejército Bolivariano.
🎨 Arquitectura del Sistema (Gráfico)
graph TD
A[Usuario / Administrador] -->|Interactúa| B(Interfaz de Usuario HTML/CSS/JS)
B -->|Context Bridge / IPC| C{Main Process - main.js}
C -->|Importar| D[excelProcessor.js]
D -->|Archivos .xlsx / .xls| E[(Sistema de Archivos)]
C -->|Consultas y Guardado| F[database.js]
F -->|better-sqlite3| G[(Base de Datos SQLite)]
C -->|Generar Reporte| H[pdfGenerator.js]
H -->|PDFKit| I[Archivo .pdf Final]
B -->|Gráficas| J[Chart.js]
🛠️ Tecnologías (Stack)
El proyecto utiliza un conjunto sólido de herramientas modernas de JavaScript:
- Core de la Aplicación: Electron + Node.js
- Base de Datos: SQLite usando
better-sqlite3para máxima rápidez y confiabilidad. - Procesamiento de Archivos:
exceljspara la lectura y parseo de plantillas de Excel. - Generación de Reportes:
pdfkitpara la creación nativa y diseño de PDFs. - Visualización de Datos:
chart.jspara los gráficos estadísticos e indicadores visuales. - Empaquetado:
electron-forgeyelectron-builderpara la compilación de ejecutables portables.
📋 Requerimientos Previos
Para ejecutar o contribuir a este entorno de desarrollo, asegúrese de cumplir con los siguientes requisitos en su sistema local:
- Node.js: Versión 16.x o superior.
- npm: Administrador de paquetes (incluido con Node.js).
- Sistema Operativo: Windows (x64 / ia32). Las arquitecturas se pueden expandir según sea necesario.
- Git: Opcional, pero recomendado para el control de versiones.
🚀 Instalación y Uso Local
- Clonar o descargar este repositorio en su entorno local.
- Abrir una terminal en el directorio del proyecto y ejecutar el siguiente comando para instalar las dependencias:
npm install - (Opcional) Si en Windows
better-sqlite3requiere re-compilar los binarios nativos después de la instalación inicial:npm run postinstall - Ejecutar en modo de desarrollo:
npm start
📦 Compilación (Build)
Para empaquetar el proyecto en un archivo ejecutable (Windows Installer / Portable), use los comandos preconfigurados:
- Empaquetar usando Electron Builder:
npm run build - Empaquetar usando Electron Forge:
Los archivos resultantes se encontrarán dentro de la carpetanpm run makedist/oout/.
📁 Estructura del Proyecto
📦 ProyectosElectron2
┣ 📂 assets # Íconos, imágenes e identidad visual corporativa
┣ 📂 data # Almacenamiento local de la DB SQLite y estado
┣ 📂 src # Archivos frontend: UI (Vistas), CSS, JS nativo y Audios
┣ 📜 main.js # Proceso principal de Electron y manejo IPC
┣ 📜 preload.js # Puente seguro (Context Isolation)
┣ 📜 database.js # Lógica de operaciones CRUD en SQLite
┣ 📜 excelProcessor.js # Algoritmos para leer e interpretar las plantillas Excel
┣ 📜 pdfGenerator.js # Lógica de renderizado y maquetado de los reportes PDF
┣ 📜 forge.config.js # Configuración para la empaquetación mediante Forge
┣ 📜 package.json # Dependencias y scripts
┗ 📜 README.md # Documentación principal
Copyright © 2024 Ejército Bolivariano.
Sistema diseñado exclusivamente para la clasificación por orden de mérito.