# 🗑️ Celaya Limpia — Sistema Integral de Recolección de Residuos

## H. Ayuntamiento de Celaya, Guanajuato

---

## 👥 Roles del Sistema

### 🏠 CIUDADANO
- ETA del camión recolector en tiempo real
- **Mapa visible SOLO cuando el camión está a <15 min**
- Guía de separación de residuos (sin internet)
- Clasificador de residuos con IA (cámara)
- Reporte de incidencias

### 🚛 CONDUCTOR
- Vista de su ruta asignada por día
- Mapa de su ruta específica
- Alertas de GPS desactivado
- Horario semanal asignado por el admin

### ⚙️ ADMINISTRADOR
- Mapa de TODAS las rutas simultáneamente
- Control de estado de rutas (cancelar, marcar falla, retraso)
- Gestión de reportes ciudadanos
- Asignación de rutas a conductores por día/turno
- Panel de alertas (GPS perdido, camión detenido +30min)

---

## 🔑 Cuentas Demo

| Rol | Email | Contraseña |
|-----|-------|-----------|
| Administrador | admin@celaya.gob.mx | admin123 |
| Conductor | conductor@celaya.gob.mx | conductor123 |
| Ciudadano | Crear desde la app | - |

---

## 🚀 Cómo ejecutar

```bash
flutter pub get
flutter run
```

---

## 🤖 IA de Clasificación de Residuos

1. Convierte tu modelo: `waste_clasification.h5` → `waste_model.tflite`
2. Coloca el archivo en: `assets/models/waste_model.tflite`
3. El modelo clasifica: **Orgánico (0) / Inorgánico (1)**

Script de conversión:
```python
import tensorflow as tf
model = tf.keras.models.load_model('waste_clasification.h5')
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
with open('assets/models/waste_model.tflite', 'wb') as f:
    f.write(tflite_model)
```

---

## 🗺️ Mapas

Usa **OpenStreetMap** (gratuito, sin API Key)

---

## 🔔 Notificaciones Simuladas

| Evento | Cuándo |
|--------|--------|
| 🚛 Ruta Iniciada | posición 1→2 |
| ⚠️ Camión Cercano | posición 4 (~15 min) |
| 🏁 Servicio Finalizado | posición 8 |
| 📡 GPS Perdido | Admin lo activa manualmente |
| ⚠️ Camión Detenido | Sin movimiento 30+ min |

---

## 📋 Rutas disponibles

- 15 rutas con GPS real de Celaya
- Turnos: Matutino, Vespertino, Nocturno
- 40+ colonias mapeadas
