--- Manual de instalación y ejecución del proyecto --- Este manual contiene TODOS los pasos necesarios para ejecutar el proyecto desde cero, en cualquier computadora. --- Requisitos previos (instalar antes de empezar) --- Software necesario: - Node.js - MySQL - WampServer64 (u otro entorno de desarrollo) --- Luego de descomprimir el proyecto, la estructura debe verse de la siguiente manera: --- SIRVIT/ ├── Backend/ ├── comisaria-service/ ├── gateway-service/ ├── medidas-service/ ├── node_modules/ ├── roles-service/ ├── shared_models/ ├── usuarios-service/ ├── victimarios-service/ ├── victimas-service/ ├── associations.js ├── sync-database.js ├── package-lock.json ├── package.json └── sync-database.js ├── Frontend/ ├── CSS/ ├── HTML/ ├── Images/ ├── JS/ └── PDF/ --- 2. Verificar que la base de datos ya existe --- NOTA: La base de datos tiene el nombre de 'sirevif' ya que este era el nombre inicial que se le asignaría a la página web. Este nombre cambió a SIRVIT tiempo después, pero la base de datos permaneció como sirevif. Para comprobar si la base de datos ya existe: SHOW DATABASES; Si aparece 'sirevif' en la lista, NO necesitas crearla. En caso de que la base de datos no exista, puede crearla de la siguiente manera: 1. Abrir terminal (CMD, PowerShell o Git Bash) 2. Conectarse a MySQL: mysql -u root -p 3. Ingresar la contraseña (si no tiene, presionar Enter) 4. Crear la base de datos (solo si no existe): CREATE DATABASE IF NOT EXISTS sirevif; 5. Verificar que se creó o que ya existe: SHOW DATABASES; 6. Salir: EXIT; --- 3. Configurar las variables de entorno (.env) (Solamente en caso de no estar configuradas) --- Lista de archivos .env: - Backend/comisaria-service/.env - Backend/usuarios-service/.env - Backend/medidas-service/.env - Backend/roles-service/.env - Backend/victimas-service/.env - Backend/victimarios-service/.env - Backend/gateway-service/.env --- Contenido de cada archivo .env:--- - Backend/gateway-service/.env PORT=8080 USUARIOS_SERVICE=http://localhost:3005 MEDIDAS_SERVICE=http://localhost:3002 COMISARIAS_SERVICE=http://localhost:3001 ROLES_SERVICE=http://localhost:3003 VICTIMARIOS_SERVICE=http://localhost:3006 VICTIMAS_SERVICE=http://localhost:3007 JWT_SECRET=usersirevifsecretkey - Backend/comisaria-service/.env PORT=3001 DB_NAME=sirevif DB_USER=alcaldia DB_PASS=sirevif2.02026 DB_HOST=localhost DB_PORT=3306 - Backend/usuarios-service/.env PORT=3005 JWT_SECRET=usersirevifsecretkey DB_NAME=sirevif DB_USER=alcaldia DB_PASS=sirevif2.02026 DB_HOST=localhost DB_PORT=3306 - Backend/medidas-service/.env PORT=3002 JWT_SECRET=usersirevifsecretkey DB_NAME=sirevif DB_USER=alcaldia DB_PASS=sirevif2.02026 DB_HOST=localhost DB_PORT=3306 - Backend/roles-service/.env PORT=3003 DB_NAME=sirevif DB_USER=alcaldia DB_PASS=sirevif2.02026 DB_HOST=localhost DB_PORT=3306 - Backend/victimas-service/.env PORT=3007 DB_NAME=sirevif DB_USER=alcaldia DB_PASS=sirevif2.02026 DB_HOST=localhost DB_PORT=3306 - Backend/victimarios-service/.env PORT=3006 DB_NAME=sirevif DB_USER=alcaldia DB_PASS=sirevif2.02026 DB_HOST=localhost DB_PORT=3306 NOTAS IMPORTANTES: - La JWT_SECRET debe ser la MISMA en usuarios-service, medidas-service y gateway-service - Los puertos deben ser diferentes y no estar ocupados por otros programas; si algún puerto está ocupado, modifícalo en "PORT" en el .env del servidor y en **********=http://localhost:**** en el .env del gateway. --- 4. Instalar dependencias (npm install) --- Abrir una terminal y ejecutar los siguientes comandos UNO POR UNO: cd C:\proyecto-martin\Backend npm install cd comisaria-service npm install cd .. cd gateway-service npm install cd .. cd medidas-service npm install cd .. cd roles-service npm install cd .. cd usuarios-service npm install cd .. cd victimarios-service npm install cd .. cd victimas-service npm install cd .. NOTA: Si ves advertencias (warnings), no te preocupes, solo importa que no haya errores. --- 5. Sincronizar la base de datos (crear tablas) --- Ejecutar desde la carpeta Backend: cd C:\SIRVIT\Backend node sync-database.js Resultado esperado: ----------------------------------------- 🔄 Actualizando índice único en tabla medidas_de_proteccion... ✅ Conectado a MySQL ✅ Nuevo índice creado exitosamente 🎉 ¡Actualización completada! ----------------------------------------- NOTA: Si la base de datos ya tiene tablas, este comando actualizará la estructura sin borrar los datos existentes (solo agrega lo que falta). --- 6. Verificar que todo está listo --- Antes de continuar, asegúrate de: [ ] MySQL está corriendo (Wamp o servicio de MySQL) [ ] La base de datos sirevif existe (o se creó en el paso 2) [ ] Todos los archivos .env están creados y configurados [ ] Se ejecutó sync-database.js sin errores [ ] Todas las dependencias se instalaron sin errores --- 7. Ejecutar el proyecto --- Ingresa a la raiz de la carpeta Backend y ejecuta este comando: cd C:\SIRVIT\Backend npm run mains Este comando ejecutará especificamente los servicios de Gateway, Usuarios y Medidas, los cuales son suficientes para que todo el programa funcione correctamenre. --- El resultado esperado debe ser como el siguiente: --- > sirevif-backend@1.0.0 mains > concurrently "npm:gateway" "npm:usuarios" "npm:medidas" (node:38840) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead. (Use `node --trace-deprecation ...` to show where the warning was created) [usuarios] [usuarios] > sirevif-backend@1.0.0 usuarios [usuarios] > cd usuarios-service && npm start [usuarios] [gateway] [gateway] > sirevif-backend@1.0.0 gateway [gateway] > cd gateway-service && npm start [gateway] [medidas] [medidas] > sirevif-backend@1.0.0 medidas [medidas] > cd medidas-service && npm start [medidas] [usuarios] [usuarios] > usuarios-service@1.0.0 start [usuarios] > node server.js [usuarios] [medidas] [medidas] > comisarias-martin@1.0.0 start [medidas] > node server.js [medidas] [gateway] [gateway] > gateway-service@1.0.0 start [gateway] > node src/server.js [gateway] [gateway] [gateway] ======================================== [gateway] ✅ GATEWAY INICIADO [gateway] ======================================== [gateway] 🌐 Servicio funcionando correctamente [gateway] ======================================== [gateway] [medidas] [dotenv@17.2.3] injecting env (7) from .env -- tip: 🔑 add access controls to secrets: https://dotenvx.com/ops [usuarios] ✅ Conectado a MySQL [medidas] [dotenv@17.2.3] injecting env (0) from .env -- tip: 👥 sync secrets across teammates & machines: https://dotenvx.com/ops [usuarios] 🗄 Modelos sincronizados [usuarios] [usuarios] ======================================== [usuarios] ✅ USUARIOS SERVICE INICIADO - Puerto 3005 [usuarios] ======================================== [usuarios] 🌐 Servicio funcionando correctamente [usuarios] ======================================== [usuarios] [medidas] [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ write to custom object with { processEnv: myObject } [medidas] [dotenv@17.2.3] injecting env (0) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops [medidas] [dotenv@17.2.3] injecting env (0) from .env -- tip: ⚙️ enable debug logging with { debug: true } [medidas] ✅ Conectado a MySQL [medidas] 🗄 Modelos sincronizados [medidas] [medidas] ======================================== [medidas] ✅ MEDIDAS SERVICE INICIADO [medidas] ======================================== [medidas] 🌐 Servicio funcionando correctamente [medidas] ======================================== [medidas] --- 8. Verificar que el Gateway funciona --- Abrir el navegador y probar las siguientes URLs: URL 1 - Estado del Gateway: http://localhost:8080/health Resultado esperado: {"success":true,"service":"gateway-service","timestamp":"...","port":8080} --- 9. Abrir el Frontend --- El Frontend es estático, no necesita servidor adicional. Opción A: Abrir directamente el archivo HTML ----------------------------------------- 1. Navegar a la carpeta Frontend/HTML/ 2. Hacer doble clic en login.HTML 3. Se abrirá en el navegador Opción B: Usar Live Server (Visual Studio Code) ----------------------------------------- 1. En VS Code, instalar la extensión "Live Server" 2. Abrir la carpeta Frontend/HTML/ en VS Code 3. Hacer clic en la parte inferior de la pantalla que dice "Go Live", se abrirá automáticamente en el navegador con vista en vivo --- 10. Iniciar sesión en el sistema --- 1. En el navegador, debería ver la pantalla de login 2. Si ya existen usuarios en la base de datos, usar esas credenciales: Número de documento: 1010101010 Contraseña: AdministradorUnoSIRVIT.2026 3. Si no hay usuarios, primero debes insertar un usuario administrador: Para crear un usuario administrador en la base de datos: ----------------------------------------- INSERT INTO usuarios (documento, nombre, email, password, rolId, comisariaId, activo) VALUES ('admin', 'Administrador', 'admin@ejemplo.com', 'contraseña_encriptada', 1, 1, 1); NOTA: La contraseña debe estar encriptada con bcrypt. Para probar, puedes crear un usuario desde el propio sistema si el registro está habilitado. ========================================== Si todo esto se ejecutó correctamente, ya tienes acceso al programa, donde podrás gestionar todos los apartados de la página libremente como administrador. Para saber cómo funciona la interfaz de la página, dirígete a los manuales de usuario en la carpeta Frontend. ├── Frontend/ ├── CSS/ ├── HTML/ ├── Images/ ├── JS/ └── PDF/ <------- Manuales de Usuario ==========================================