Skip to content

BARRETO019/impulsa-cee-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Impulsa CEE

Aplicación para la gestión de visitas técnicas, recogida de datos de vivienda, envolvente térmica, huecos, instalaciones, documentación y exportación de certificados energéticos.


📌 Estado actual del proyecto

El proyecto está en proceso de refactor a arquitectura modular por capas, separando la lógica en:

  • application → casos de uso
  • infrastructure → acceso a datos / servicios externos
  • presentation → controladores y rutas

Actualmente el backend ya está migrado parcialmente a esta estructura en los módulos principales.


🏗️ Arquitectura

El backend sigue una arquitectura modular por capas.

Estructura general

src/
├── assets/
├── config/
├── middleware/
├── modules/
│   ├── auth/
│   ├── visits/
│   ├── buildings/
│   ├── envelope/
│   ├── windows/
│   ├── installations/
│   └── documents/
├── routes/
├── services/
└── app.js

Ejemplo de módulo

modules/auth/
├── application/
│   └── use-cases/
├── infrastructure/
│   ├── auth/
│   └── repositories/
└── presentation/
    ├── controllers/
    └── routes/

Capas

application

Contiene los casos de uso de negocio.

Ejemplo:

  • login de usuario
  • registro de usuario
  • crear visita
  • guardar envolvente

infrastructure

Contiene la implementación técnica:

  • acceso a base de datos
  • repositorios
  • servicios externos
  • utilidades técnicas

presentation

Contiene la entrada/salida HTTP:

  • controladores
  • rutas
  • validación de requests

⚙️ Tecnologías

Backend

  • Node.js
  • Express
  • PostgreSQL
  • JWT
  • Multer
  • bcrypt
  • Google Drive API
  • Airtable API

Frontend

  • React
  • Vite

🚀 Instalación

1. Clonar repositorio

git clone <URL_DEL_REPO>
cd backend

2. Instalar dependencias

Backend

npm install

Frontend

cd ../frontend
npm install

🔐 Variables de entorno

Backend (backend/.env)

Ejemplo:

DB_HOST=localhost
DB_USER=postgres
DB_PASSWORD=tu_password
DB_NAME=cee_app
DB_PORT=5432

JWT_SECRET=impulsa_clave_super_segura_2026
FRONTEND_URL=http://localhost:5173

⚠️ En producción se utilizan variables diferentes (Render / Neon / servicios externos).


▶️ Ejecución en local

Backend

Desde la carpeta backend:

npm run dev

Servidor por defecto en:

http://localhost:4000

Frontend

Desde la carpeta frontend:

npm run dev

Aplicación por defecto en:

http://localhost:5173

📡 API principal

Auth

Login

POST /api/auth/login

Register

POST /api/auth/register

Visits

Crear visita

POST /api/visits

Obtener visitas del usuario

GET /api/visits

Eliminar visita

DELETE /api/visits/:id

Building

Guardar datos de vivienda / fachada

PUT /api/visits/:id/building

Envelope

Añadir elemento de envolvente

POST /api/visits/:id/envelope

Obtener envolvente

GET /api/visits/:id/envelope

Eliminar elemento

DELETE /api/visits/:id/envelope/:elementoId

Windows

Añadir hueco

POST /api/visits/:id/windows

Obtener huecos

GET /api/visits/:id/windows

Eliminar hueco

DELETE /api/visits/:id/windows/:windowId

Installations

Añadir instalación

POST /api/visits/:id/installations

Obtener instalaciones

GET /api/visits/:id/installations

Documents

Exportar PDF

GET /api/visits/:id/export-pdf

Exportar XML

GET /api/visits/:id/export-xml

Finalizar visita

POST /api/visits/:id/finalize

🧪 Estado de pruebas

Actualmente se están validando manualmente los endpoints principales mediante:

  • Postman / Thunder Client
  • pruebas locales con PostgreSQL
  • despliegue en Render

Endpoints ya comprobados manualmente

  • POST /api/auth/register
  • POST /api/auth/login
  • GET /api/visits
  • POST /api/visits

🛠️ Pendiente / próximos pasos

  • Completar refactor de todos los módulos
  • Homogeneizar esquema local y producción (PostgreSQL / Neon)
  • Añadir tests automáticos con Jest + Supertest
  • Mejorar validaciones de entrada
  • Documentar mejor flujos de archivos y fotos
  • Añadir migraciones de base de datos

📂 Repositorios

Frontend

impulsa-cee-frontend

Backend

impulsa-cee-backend


👨‍💻 Autor

Proyecto desarrollado para la gestión técnica de certificados energéticos y visitas de campo.

About

API REST profesional desarrollada en Node.js para la gestión de certificaciones energéticas. Integra PostgreSQL (Neon), Google Drive API (2TB) y Airtable.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors