docs: README actualizado con stack completo y endpoints
This commit is contained in:
48
README.md
48
README.md
@@ -12,16 +12,15 @@ App móvil que notifica la hora aproximada de llegada del camión **sin exponer
|
|||||||
|
|
||||||
## 🏗️ Arquitectura
|
## 🏗️ Arquitectura
|
||||||
Frontend (React Native / Expo)
|
Frontend (React Native / Expo)
|
||||||
↓ JWT + HTTPS
|
↓ JWT + HTTPS + WebSocket
|
||||||
API Gateway + Auth (FastAPI)
|
API Gateway + Auth (FastAPI)
|
||||||
↓ RBAC por domicilio
|
↓ RBAC por domicilio
|
||||||
┌─────────────────────────────┐
|
┌──────────────────────────────────────┐
|
||||||
│ ETA Service │ Simulator │
|
│ ETA Service │ Simulator │ WS │
|
||||||
│ (cálculo) │ (cron job) │
|
│ (cálculo) │ (cron job) │ Server│
|
||||||
└─────────────────────────────┘
|
└──────────────────────────────────────┘
|
||||||
↓
|
↓
|
||||||
PostgreSQL — Usuario → Domicilio → Zona → Ruta
|
PostgreSQL — Usuario → Domicilio → Zona → Ruta
|
||||||
|
|
||||||
## 🔒 Privacidad por Diseño
|
## 🔒 Privacidad por Diseño
|
||||||
|
|
||||||
- El usuario **solo ve** la ventana de llegada de su ruta asignada
|
- El usuario **solo ve** la ventana de llegada de su ruta asignada
|
||||||
@@ -31,15 +30,20 @@ PostgreSQL — Usuario → Domicilio → Zona → Ruta
|
|||||||
|
|
||||||
## 📱 Funcionalidades MVP
|
## 📱 Funcionalidades MVP
|
||||||
|
|
||||||
- [x] Registro e inicio de sesión con JWT
|
- [x] Registro e inicio de sesión con JWT (email o teléfono)
|
||||||
- [x] Alta de domicilio con validación de colonia
|
- [x] Múltiples domicilios por usuario (casa y trabajo)
|
||||||
|
- [x] Alta de domicilio con combobox de colonias y código postal
|
||||||
- [x] ETA con ventana de llegada (±7 min)
|
- [x] ETA con ventana de llegada (±7 min)
|
||||||
- [x] Simulador de rutas (cron job cada 2 min)
|
- [x] Simulador de rutas — cron job cada 2 min avanza 15 rutas
|
||||||
|
- [x] WebSockets para ETA en tiempo real (fallback a polling cada 2 min)
|
||||||
- [x] 3 eventos de notificación: ROUTE_START, TRUCK_PROXIMITY, ROUTE_COMPLETED
|
- [x] 3 eventos de notificación: ROUTE_START, TRUCK_PROXIMITY, ROUTE_COMPLETED
|
||||||
|
- [x] Notificaciones configurables por tipo
|
||||||
|
- [x] Alertas operativas — retrasos y fallas mecánicas en tiempo real
|
||||||
- [x] Guía de separación de residuos (funciona offline)
|
- [x] Guía de separación de residuos (funciona offline)
|
||||||
- [x] RBAC — cada usuario solo consulta su ruta
|
- [x] RBAC — cada usuario solo consulta su ruta
|
||||||
- [X] Buzón de reportes (en desarrollo)
|
- [x] Buzón de reportes con 4 categorías
|
||||||
- [x] Notificaciones push locales (expo-notifications)
|
- [x] Persistencia de sesión con AsyncStorage
|
||||||
|
- [x] Pull to refresh y auto-refresh
|
||||||
- [x] APK nativo compilado con EAS Build
|
- [x] APK nativo compilado con EAS Build
|
||||||
|
|
||||||
## 🛠️ Stack Tecnológico
|
## 🛠️ Stack Tecnológico
|
||||||
@@ -48,9 +52,11 @@ PostgreSQL — Usuario → Domicilio → Zona → Ruta
|
|||||||
|------|-----------|
|
|------|-----------|
|
||||||
| Frontend | React Native + Expo SDK 54 |
|
| Frontend | React Native + Expo SDK 54 |
|
||||||
| Backend | Python 3.12 + FastAPI |
|
| Backend | Python 3.12 + FastAPI |
|
||||||
|
| Tiempo real | WebSockets (FastAPI) |
|
||||||
| Auth | JWT (python-jose + passlib) |
|
| Auth | JWT (python-jose + passlib) |
|
||||||
| Base de datos | PostgreSQL + SQLAlchemy |
|
| Base de datos | PostgreSQL + SQLAlchemy |
|
||||||
| Simulador | APScheduler (cron job) |
|
| Simulador | APScheduler (cron job cada 2 min) |
|
||||||
|
| Build nativo | EAS Build (Expo) |
|
||||||
| Control de versiones | Gitea (git.onlinces.net) |
|
| Control de versiones | Gitea (git.onlinces.net) |
|
||||||
|
|
||||||
## 🚀 Cómo correr el proyecto
|
## 🚀 Cómo correr el proyecto
|
||||||
@@ -77,9 +83,23 @@ Disponible en `http://localhost:8000/docs` (Swagger UI)
|
|||||||
## 📊 Datasets utilizados
|
## 📊 Datasets utilizados
|
||||||
|
|
||||||
- `data/rutas.json` — 15 rutas con 8 posiciones GPS cada una
|
- `data/rutas.json` — 15 rutas con 8 posiciones GPS cada una
|
||||||
- `data/colonias-rutas.json` — mapeo colonia → ruta + horario estimado
|
- `data/colonias-rutas.json` — mapeo colonia → ruta + horario estimado
|
||||||
- `data/notificaciones.json` — 3 eventos de notificación push
|
- `data/notificaciones.json` — 3 eventos de notificación push
|
||||||
|
|
||||||
|
## 🔌 Endpoints principales
|
||||||
|
|
||||||
|
| Método | Endpoint | Descripción |
|
||||||
|
|--------|----------|-------------|
|
||||||
|
| POST | `/auth/register` | Registro con email o teléfono |
|
||||||
|
| POST | `/auth/login` | Login con JWT |
|
||||||
|
| POST | `/domicilios` | Alta de domicilio |
|
||||||
|
| GET | `/domicilios` | Listar domicilios del usuario |
|
||||||
|
| GET | `/eta/{domicilio_id}` | Ventana de llegada ETA |
|
||||||
|
| POST | `/reportes` | Buzón de retroalimentación |
|
||||||
|
| POST | `/alertas/operativa` | Crear alerta de retraso/falla |
|
||||||
|
| GET | `/alertas/operativa/activa` | Consultar alerta activa |
|
||||||
|
| WS | `/ws/eta/{domicilio_id}` | ETA en tiempo real vía WebSocket |
|
||||||
|
|
||||||
## 👤 Equipo
|
## 👤 Equipo
|
||||||
|
|
||||||
- **hack_21031301_c761d3** — HackOnLinces 2026
|
- **hack_21031301_c761d3** — HackOnLinces 2026
|
||||||
Reference in New Issue
Block a user