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