Documentation includes: - README.md: Project overview and architecture - API.md: Complete API reference with endpoints - MANUAL_USUARIO.md: User manual in Spanish - INSTALACION.md: Installation and deployment guide - ARQUITECTURA.md: Architecture and database schema - UPLOAD_PANEL.md: CSV upload panel documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
127 lines
7.2 KiB
Markdown
127 lines
7.2 KiB
Markdown
# Sistema de Gestion de Recursos Hidricos (GRH)
|
|
|
|
## Descripcion General
|
|
|
|
Sistema web para la gestion y monitoreo de medidores de agua, integrando dispositivos LoRaWAN a traves de The Things Stack (TTS). Permite el seguimiento de consumo, deteccion de anomalias y gestion de proyectos de medicion.
|
|
|
|
## Arquitectura del Sistema
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ FRONTEND │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ App Principal (React) │ Panel de Carga (React) │
|
|
│ Puerto: 5173 │ Puerto: 5174 │
|
|
│ - Dashboard │ - Carga CSV Medidores │
|
|
│ - Gestion Medidores │ - Carga CSV Lecturas │
|
|
│ - Gestion Proyectos │ │
|
|
│ - Consumo/Lecturas │ │
|
|
│ - Usuarios/Roles │ │
|
|
│ - Auditoria │ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ BACKEND API │
|
|
│ Puerto: 3000 │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ Express.js + TypeScript │
|
|
│ - Autenticacion JWT │
|
|
│ - Control de Acceso por Roles │
|
|
│ - Webhooks TTS (LoRaWAN) │
|
|
│ - Jobs Programados (Cron) │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ BASE DE DATOS │
|
|
│ PostgreSQL │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ - users, roles │
|
|
│ - projects, concentrators, gateways │
|
|
│ - meters, meter_readings, devices │
|
|
│ - notifications, audit_logs │
|
|
│ - tts_uplink_logs │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ SERVICIOS EXTERNOS │
|
|
├─────────────────────────────────────────────────────────────────┤
|
|
│ The Things Stack (TTS) │
|
|
│ - Recepcion de datos LoRaWAN │
|
|
│ - Gestion de dispositivos IoT │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Estructura del Proyecto
|
|
|
|
```
|
|
water-project/
|
|
├── src/ # Frontend principal (React + Vite)
|
|
│ ├── api/ # Clientes API
|
|
│ ├── components/ # Componentes React
|
|
│ ├── hooks/ # Custom hooks
|
|
│ ├── pages/ # Paginas de la aplicacion
|
|
│ └── types/ # Tipos TypeScript
|
|
│
|
|
├── water-api/ # Backend API (Express + TypeScript)
|
|
│ ├── src/
|
|
│ │ ├── config/ # Configuracion (DB, etc.)
|
|
│ │ ├── controllers/ # Controladores HTTP
|
|
│ │ ├── middleware/ # Middlewares (auth, audit)
|
|
│ │ ├── routes/ # Definicion de rutas
|
|
│ │ ├── services/ # Logica de negocio
|
|
│ │ ├── validators/ # Validacion de datos
|
|
│ │ ├── jobs/ # Tareas programadas
|
|
│ │ └── utils/ # Utilidades
|
|
│ └── sql/ # Scripts SQL
|
|
│
|
|
├── upload-panel/ # Panel de carga CSV (React + Vite)
|
|
│ └── src/
|
|
│ ├── api/ # Cliente API
|
|
│ └── components/ # Componentes de carga
|
|
│
|
|
└── docs/ # Documentacion
|
|
```
|
|
|
|
## Tecnologias Utilizadas
|
|
|
|
### Frontend
|
|
- **React 18** - Framework UI
|
|
- **Vite 5** - Build tool
|
|
- **TypeScript** - Tipado estatico
|
|
- **Tailwind CSS 4** - Estilos
|
|
- **Material UI** - Componentes UI
|
|
- **Recharts** - Graficos
|
|
- **Lucide React** - Iconos
|
|
|
|
### Backend
|
|
- **Node.js** - Runtime
|
|
- **Express 4** - Framework web
|
|
- **TypeScript** - Tipado estatico
|
|
- **PostgreSQL** - Base de datos
|
|
- **JWT** - Autenticacion
|
|
- **Multer** - Upload de archivos
|
|
- **node-cron** - Tareas programadas
|
|
- **Zod** - Validacion de schemas
|
|
|
|
### Servicios Externos
|
|
- **The Things Stack (TTS)** - Integracion LoRaWAN
|
|
|
|
## URLs de Produccion
|
|
|
|
| Servicio | URL |
|
|
|----------|-----|
|
|
| App Principal | https://sistema.gestionrecursoshidricos.com |
|
|
| Panel de Carga | https://panel.gestionrecursoshidricos.com |
|
|
| API | https://api.gestionrecursoshidricos.com |
|
|
|
|
## Documentacion Detallada
|
|
|
|
- [Manual de Usuario](./MANUAL_USUARIO.md)
|
|
- [Documentacion API](./API.md)
|
|
- [Guia de Instalacion](./INSTALACION.md)
|
|
- [Panel de Carga CSV](./UPLOAD_PANEL.md)
|
|
- [Arquitectura y Base de Datos](./ARQUITECTURA.md)
|