Files
Exteban08 da976b9003 Update all documentation for 3-level roles, organismos, and Histórico
Reflect current project state across all 8 docs: ADMIN/ORGANISMO_OPERADOR/OPERATOR
role hierarchy, scope filtering, organismos_operadores table, Histórico de Tomas
page, new SQL migrations, and updated API endpoints with auth requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:44:16 +00:00
..
2026-02-03 11:27:51 +00:00

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