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>
This commit is contained in:
126
docs/README.md
Normal file
126
docs/README.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user