# 🚛 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
