From 31d4d478dc838df69a9adfa512263f9efdfc43cc Mon Sep 17 00:00:00 2001 From: Herrejon <24031006@itcelaya.edu.mx> Date: Sat, 23 May 2026 14:01:06 +0000 Subject: [PATCH] info sin editar readme --- README.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fb19d7f..2076aa6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,77 @@ -ola ola +# Sistema de Seguimiento de Recolección de Basura -![Hed](https://external-preview.redd.it/random-rat-smoking-v0-tsdghv4ZeXo6mVYf-Uzeqf0REgtG5fAM7FzMvk8IbSQ.jpg?width=640&crop=smart&auto=webp&s=f535f92f0b84694453b491ef4f0cbdcc3cadb264) \ No newline at end of file +Una aplicación Android nativa diseñada para optimizar y transparentar el servicio de recolección de residuos. La app permite a los ciudadanos dar seguimiento en tiempo real a los camiones recolectores basado en las rutas oficiales, gestionar múltiples direcciones, reportar incidencias y recibir alertas automatizadas, adaptando su interfaz según el rol del usuario (Ciudadano o Trabajador). + +--- + +## Características Principales + +### Autenticación y Usuarios +* **Firebase Authentication:** Registro e inicio de sesión con email y contraseña. +* **Persistencia de Sesión:** El usuario permanece logueado al abrir y cerrar la app de forma continua. +* **Roles Dinámicos:** Soporte para dos tipos de usuarios (**Usuario común** y **Trabajador**) con almacenamiento de perfil en *Cloud Firestore*. +* **Validación Estricta:** Comprobación de emails válidos, contraseñas seguras (mínimo 6 caracteres) y coincidencia de confirmación. + +### Gestión de Direcciones (Múltiples) +* **Soporte Multidirección:** Permite añadir y gestionar múltiples hogares o negocios por cuenta. +* **Autocompletado con API Real:** Selector de colonias con autocompletado conectado directamente al catálogo oficial de Celaya. +* **Vinculación de Rutas:** Cada dirección guardada activa de forma automática su respectiva ruta de recolección para monitoreo simultáneo. +* **Seguridad:** Confirmación previa antes de eliminar cualquier dirección guardada. + +### Seguimiento del Camión Recolector (GPS Real-Time) +* **Consumo de APIs Municipales (REST):** + * `rutas.json`: Posiciones GPS, velocidad y horarios vigentes de las unidades. + * `colonias-rutas.json`: Mapeo lógico de colonias y sus rutas asignadas. + * `notificaciones.json`: Reglas operativas para el disparo de alertas. +* **Mecanismo de Polling:** Actualización automática de datos en segundo plano cada 30 segundos (configurable). +* **Visualización en Canvas Custom:** Renderizado gráfico personalizado que dibuja una línea horizontal de paradas con un camión animado que progresa según el tiempo real del dispositivo y los datos del servidor. +* **Detalle Extendido:** Diálogos emergentes con el desglose de paradas y estimaciones horarias por ruta. + +### Notificaciones Push Locales +Envío de alertas automáticas contextualizadas con la dirección afectada en tres estados críticos: +1. **¡Ruta Iniciada!** al salir la unidad del relleno sanitario. +2. **Camión Cercano** al encontrarse a menos de 15 minutos del domicilio. +3. **Servicio Finalizado** al concluir el recorrido establecido. + +### Sistema de Reportes e Incidencias +* **Para Usuarios:** Formulario con asunto y mensaje para reportar fallas en el servicio, guardados en Firestore con marca de tiempo. +* **Panel "CONTROL" (Trabajadores):** Sección exclusiva para el personal donde se listan de forma cronológica (más recientes primero) los reportes enviados por ciudadanos y otros trabajadores de la organización. + +### Sección Educativa +* Guía de clasificación de residuos en cuatro categorías fundamentales: Orgánico, Inorgánico reciclable, No reciclable y Peligroso. +* Consejos prácticos para la correcta separación de basura y reducción de la huella de desperdicios doméstica. + +--- + +## Interfaz y Experiencia de Usuario (UI/UX) + +* **Material Design 3:** Línea gráfica moderna utilizando una paleta de colores verde ecológica acorde a la temática de reciclaje. +* **Menú Lateral Dinámico (Drawer):** Navegación adaptativa según el rol de la cuenta: + * *Menú Usuario:* Agregar dirección, Info de desperdicios, Reportar problema. + * *Menú Trabajador:* Panel de reportes de usuarios y reportes internos de trabajadores. +* **Soporte de Tema:** Compatibilidad total con el Modo Claro y Modo Oscuro nativo del sistema operativo. +* **Identidad:** Header del Drawer personalizado con el nombre y correo electrónico del usuario activo. + +--- + +## Arquitectura y Tecnologías Utilizadas + +La aplicación está construida siguiendo las mejores prácticas de desarrollo moderno en Android: + +* **Lenguaje:** [Kotlin](https://kotlinlang.org/) +* **Estructura:** Single Activity + Fragments coordinados mediante *Drawer Navigation Component*. +* **Asincronía y Concurrencia:** *Kotlin Coroutines* para operaciones de red no bloqueantes de la UI. +* **Conexión a Red:** *Retrofit 2* acoplado con *Gson Converter* para el consumo y parseo de las APIs JSON. +* **Base de Datos & Backend:** *Firebase Suite* (Auth & Cloud Firestore). +* **UI Binding:** *View Binding* para un acceso seguro y optimizado a las vistas eliminando el uso de `findViewById`. +* **Gráficos:** *Canvas nativo* para componentes visuales hechos a la medida (Línea de tiempo del camión). +* **Seguridad:** *Reglas de Seguridad de Firestore* para garantizar la privacidad de datos entre usuarios. +* **Compatibilidad:** SDK Mínimo: API 24 (Android 7.0 Nougat) en adelante. + +--- + +## ⚙️ Instalación y Configuración Local + +Para compilar este proyecto necesitarás **Android Studio (Ladybug 2024.2.1 o superior)**. + +1. **Clona este repositorio:**