info sin editar readme
This commit is contained in:
78
README.md
78
README.md
@@ -1,3 +1,77 @@
|
||||
ola ola
|
||||
# Sistema de Seguimiento de Recolección de Basura
|
||||
|
||||

|
||||
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:**
|
||||
|
||||
Reference in New Issue
Block a user