Files
GRH/docs/README.md
Exteban08 71623d667f Add complete project documentation
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>
2026-02-03 11:27:51 +00:00

7.2 KiB

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