144 lines
4.5 KiB
Markdown
144 lines
4.5 KiB
Markdown
# 🚛 EcoTrack Celaya
|
|
### Sistema de Notificación Inteligente y Privada de Recolección de Residuos
|
|
|
|
**Equipo BioCode** · Instituto Tecnológico de Celaya / TecNM
|
|
Hackathon Municipal de Innovación Tecnológica 2026
|
|
|
|
---
|
|
|
|
## ¿Qué es EcoTrack Celaya?
|
|
|
|
App web progresiva (PWA) que avisa al ciudadano el tiempo estimado de llegada del camión recolector a su colonia — sin mostrar mapas ni exponer rutas de otros vecinos.
|
|
|
|
**Principio central:** Privacidad por Diseño — el usuario recibe solo la información que necesita.
|
|
|
|
---
|
|
|
|
## 🚀 Instalación rápida (primera vez)
|
|
|
|
### Requisitos previos
|
|
- [Node.js v18+](https://nodejs.org)
|
|
- [Python 3.11+](https://python.org)
|
|
- Git
|
|
|
|
### Pasos
|
|
|
|
**1. Clona el repositorio**
|
|
```bash
|
|
git clone https://git.onlinces.net/onlinces/hackathon-biocode-17bf223ba206451da7389a2ef30662b4.git ecotrack-celaya
|
|
cd ecotrack-celaya
|
|
```
|
|
|
|
**2. Ejecuta el instalador automático**
|
|
Haz doble clic en `install.bat`
|
|
_(instala todas las dependencias del frontend y backend automáticamente)_
|
|
|
|
**3. Arranca el sistema**
|
|
Haz doble clic en `start.bat`
|
|
_(abre el simulador y el frontend en dos terminales)_
|
|
|
|
**4. Abre la app en el navegador**
|
|
```
|
|
http://localhost:5174
|
|
```
|
|
|
|
---
|
|
|
|
## 📱 Cómo usar la app
|
|
|
|
1. **Regístrate** con cualquier correo y contraseña
|
|
2. **Selecciona tu colonia** al registrarte (Zona Centro, Las Arboledas, Trojes, etc.)
|
|
3. **Ve el Dashboard** — el ETA se actualiza cada 10 segundos en modo demo
|
|
4. **Observa el simulador** — en la terminal verás cómo el camión avanza nodo a nodo
|
|
5. **Envía un reporte** desde la pestaña Reportes — se guarda en Firebase en tiempo real
|
|
|
|
---
|
|
|
|
## 🏗️ Arquitectura
|
|
|
|
```
|
|
Servidor Municipal Backend Simulador Frontend PWA
|
|
td.celaya.biz:8018 → FastAPI + Python → React + Vite
|
|
rutas.json Avanza positionId Dashboard ETA
|
|
colonias.json cada 10 seg (demo) Guía offline
|
|
notificaciones.json puerto 8000 Reportes
|
|
puerto 5174
|
|
↓
|
|
Firebase
|
|
Auth + Firestore
|
|
Login + Reportes BD
|
|
```
|
|
|
|
---
|
|
|
|
## 📁 Estructura del proyecto
|
|
|
|
```
|
|
proyecto/
|
|
├── ecotrack/ ← Frontend React + Vite
|
|
│ ├── src/
|
|
│ │ ├── api/ ← etaService.js (llama al simulador)
|
|
│ │ ├── context/ ← ETAContext.jsx (estado global)
|
|
│ │ ├── screens/ ← Dashboard, SeparationGuide, Reports, Login
|
|
│ │ ├── components/ ← ETACard, WarningCard, RouteProgress
|
|
│ │ ├── data/ ← rutas.json, colonias-rutas.json, notificaciones.json
|
|
│ │ └── firebase.js ← configuración Firebase
|
|
│ └── package.json
|
|
├── simulador-backend/ ← Backend FastAPI
|
|
│ ├── main.py ← API + simulador automático
|
|
│ ├── rutas.json ← datos de las 15 rutas de Celaya
|
|
│ └── requirements.txt
|
|
├── start.bat ← Arranca todo con doble clic
|
|
├── install.bat ← Instala todo con doble clic
|
|
└── README.md
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 Comandos manuales (alternativa a los .bat)
|
|
|
|
**Terminal 1 — Simulador:**
|
|
```bash
|
|
cd simulador-backend
|
|
venv\Scripts\activate
|
|
uvicorn main:app --reload --port 8000
|
|
```
|
|
|
|
**Terminal 2 — Frontend:**
|
|
```bash
|
|
cd ecotrack
|
|
npm run dev
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ Funcionalidades implementadas
|
|
|
|
| Funcionalidad | Estado |
|
|
|---|---|
|
|
| Login y registro seguro (Firebase Auth) | ✅ |
|
|
| Dashboard con ETA en tiempo real | ✅ |
|
|
| Simulador automático de ruta (Cron Job) | ✅ |
|
|
| Progreso de ruta sin mapa ni coordenadas | ✅ |
|
|
| Notificaciones push del navegador | ✅ |
|
|
| Guía de separación offline (4 categorías) | ✅ |
|
|
| Buzón de reportes (Firestore) | ✅ |
|
|
| Privacidad por Diseño — sin mapa en vivo | ✅ |
|
|
| Datos reales del municipio de Celaya | ✅ |
|
|
| PWA compatible iOS y Android | ✅ |
|
|
|
|
---
|
|
|
|
## 👥 Equipo BioCode
|
|
|
|
| Nombre | Carrera | Rol |
|
|
|---|---|---|
|
|
| Pérez González José Carmen | Ing. Sistemas Computacionales | Arquitectura, Backend, Firebase |
|
|
| Arce Rodríguez Martin | Ing. Sistemas Computacionales | Frontend React, Integración |
|
|
| Aguilar Orosco Briana Itzel | Ing. Biomédica | UX, Guía residuos, Reportes |
|
|
| Trejo Jiménez Yohav Shaddai | Ing. Biomédica | Documentación, Testing, Mockups |
|
|
|
|
**Asesor:** M.C. López González Luis Alberto
|
|
**Institución:** Instituto Tecnológico de Celaya / TecNM
|
|
**Fecha:** 23 de mayo de 2026
|