Donde la Tecnologia Da Vida a las Ideas
Bachecito es una aplicacion movil que permite a cualquier ciudadano reportar baches en su ciudad de forma rapida, sencilla y con evidencia fotografica. Con una foto, una ubicacion automatica y un toque, el reporte queda registrado, visible para la comunidad y listo para ser atendido.
"Un bache reportado es un bache que puede ser reparado."
En Mexico, los baches son una de las problematicas urbanas mas comunes y menos atendidas:
- Sin canal accesible: Los ciudadanos no tienen una forma facil de reportar. Las opciones tradicionales (llamadas telefonicas, burocracia municipal) son lentas, opacas y frustrantes.
- Sin evidencia: Los reportes verbales o por texto no tienen foto, no tienen ubicacion exacta, y se pierden en el sistema.
- Sin seguimiento: Una vez que el ciudadano reporta, no sabe que paso. No hay retroalimentacion, no hay transparencia.
- Riesgos reales: Los baches causan accidentes de transito, danos a vehiculos, lesiones a peatones y ciclistas, y costos economicos significativos.
- Desigualdad de impacto: Las zonas mas afectadas suelen ser las de menor recurso, donde la infraestructura ya es precaria.
El problema no es solo el bache. El problema es que nadie hace nada al respecto.
Bachecito resuelve esto con una experiencia de usuario pensada para ser instantanea:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β πΈ Tomar foto β π Ubicacion automatica β
β β β β
β π Descripcion β β‘ Seleccionar prioridad β
β β β β
β π Enviar reporte β β
Listo en 60 segundos β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Paso | Que hace el usuario | Que hace la app |
|---|---|---|
| 1. Reportar | Presiona el FAB central | Abre la camara con encuadre guia |
| 2. Capturar | Toma la foto del bache | Comprime y almacena temporalmente |
| 3. Ubicacion | Espera (automatico) | Obtiene GPS + geocoding inverso |
| 4. Detalles | Agrega descripcion y prioridad | Valida campos y muestra preview |
| 5. Enviar | Confirma | Sube foto a Supabase Storage + inserta en DB |
| 6. Seguimiento | Consulta sus reportes | Muestra timeline: Nuevo β Verificado β En Proceso β Reparado |
| 7. Explorar | Navega la lista de reportes | Filtra por estado, prioridad, o busca por texto |
| 8. Mapa | Ve el mapa interactivo | Muestra todos los reportes como puntos geolocalizados |
- Encuadre visual con esquinas guia para enfocar el bache
- Permisos manejados con fallback amigable
- Foto comprimida al 70% de calidad para optimizar subida
- GPS de alta precision (Expo Location)
- Geocoding inverso: convierte coordenadas a direccion legible
- Boton de actualizar ubicacion si es necesario
- Peligroso (rojo) - Baches grandes, en carriles principales, riesgo alto
- Sospechoso (naranja) - Baches moderados, requieren atencion
- Menor (amarillo) - Baches pequenos, molestia baja
β Nuevo β El reporte acaba de llegar
β Verificado β Alguien confirmo que el bache existe
β En proceso β Las autoridades estan trabajando en el
β Reparado β El bache fue resuelto
- Busqueda por descripcion o direccion
- Filtros por estado (nuevo, verificado, en proceso, reparado)
- Filtros por prioridad (peligroso, sospechoso, menor)
- Tarjetas con foto, badges de estado, ubicacion y fecha
- Todos los reportes visibles como puntos en un mapa
- Datos en tiempo real desde Supabase
- Vista panoramica de la ciudad
- Login y registro con email/contraseΓ±a
- Sesiones persistentes con Supabase Auth
- Cada reporte vinculado al usuario que lo creo
- Lista de reportes propios con estado
- Avatar con iniciales del email
- Cierre de sesion seguro
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BACHECITO APP β
β β
β ββββββββββββββ ββββββββββββββ ββββββββββββββββββββββ β
β β MapaTab β β ExplorarTabβ β AlertasTab β β
β β (MapView) β β (FlatList) β β (Timeline View) β β
β βββββββ¬βββββββ βββββββ¬βββββββ βββββββββββ¬βββββββββββ β
β β β β β
β βββββββ΄ββββββββββββββββ΄ββββββββββββββββββββ΄βββββββββββ β
β β Custom Tab Bar (FAB Central) β β
β ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ β
β β React Navigation 7 β β
β β (Stack + Bottom Tabs) β β
β ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ β
β β AuthContext β β
β β (Supabase Auth Provider) β β
β ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ β
β β β
βββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββ
β
ββββββββββ΄βββββββββ
β SUPABASE β
β β
β βββββββββββββ β
β β PostgreSQLβ β
β β Database β β
β βββββββββββββ β
β βββββββββββββ β
β β Auth β β
β β (JWT) β β
β βββββββββββββ β
β βββββββββββββ β
β β Storage β β
β β (Fotos) β β
β βββββββββββββ β
βββββββββββββββββββ
| Capa | Tecnologia | Version | Funcion |
|---|---|---|---|
| Framework | React Native | 0.86.0 | Base cross-platform |
| SDK | Expo | SDK 57 | Herramientas de desarrollo |
| UI | NativeWind | 4.2.5 | Estilos con Tailwind CSS |
| Navegacion | React Navigation | 7.x | Stack + Bottom Tabs |
| Backend | Supabase | 2.108 | DB + Auth + Storage |
| Mapas | react-native-maps | 1.27.2 | Mapa interactivo |
| Camara | Expo Camera | 56.x | Captura fotografica |
| Ubicacion | Expo Location | 56.x | GPS + Geocoding |
| Iconos | Ionicons | via @expo/vector-icons | Iconografia |
| Animaciones | Reanimated | 4.3.1 | Transiciones suaves |
bachecito/
βββ App.js # Entry point
βββ app.json # Configuracion Expo
βββ package.json # Dependencias
βββ src/
β βββ AppNavigator.jsx # Navegacion principal (Stack + Tabs)
β βββ components/
β β βββ CustomTabBar.jsx # Tab bar flotante con FAB
β β βββ MapViewWeb.jsx # Componente de mapa
β βββ context/
β β βββ AuthContext.jsx # Provider de autenticacion
β βββ lib/
β β βββ supabase.js # Cliente Supabase
β βββ screens/
β β βββ MapaScreen.jsx # Vista de mapa
β β βββ ExplorarScreen.jsx# Lista y filtros de reportes
β β βββ ReportarScreen.jsx# Flujo de reporte (camara β form β envio)
β β βββ AlertasScreen.jsx # Timeline de reportes del usuario
β β βββ PerfilScreen.jsx # Perfil + auth + historial
β β βββ TestScreen.jsx # Pantalla de pruebas
β βββ services/
β βββ auth.js # Funciones de login/registro/logout
β βββ reports.js # Funciones de CRUD de reportes
βββ assets/ # Iconos y imagenes
βββ docs/ # Documentacion
βββ global.css # Estilos globales (Tailwind)
βββ tailwind.config.js # Configuracion Tailwind
βββ babel.config.js # Configuracion Babel
| Campo | Tipo | Descripcion |
|---|---|---|
id |
UUID | Identificador unico |
foto_url |
TEXT | URL de la foto en Supabase Storage |
descripcion |
TEXT | Descripcion opcional del bache |
latitud |
FLOAT | Coordenada latitude |
longitud |
FLOAT | Coordenada longitude |
direccion |
TEXT | Direccion legible (geocoding inverso) |
prioridad |
ENUM | peligroso / sospechoso / menor |
estado |
ENUM | nuevo / verificado / en_proceso / reparado |
user_id |
UUID | FK al usuario que reporto |
created_at |
TIMESTAMP | Fecha de creacion |
- Almacena las fotos de reportes en
public/report_[timestamp]_[random].jpg - ContentType:
image/jpeg - Acceso publico via URL
Bachecito contribuye directamente al Objetivo de Desarrollo Sostenible 11 de la ONU:
"Proporcionar acceso a medios de transportes seguros, acessibles, economicos y fiables para todas las personas"
Bachecito: Los baches representan un riesgo directo para peatones, ciclistas y conductores. Reportarlos de forma rapida y visible permite priorizar su reparacion.
"Reducir el impacto ambiental negativo per capita de las ciudades"
Bachecito: La reparacion oportuna de baches reduce accidentes, danos vehiculares y costos economicos asociados al deterioro de la infraestructura vial.
"Apoyar los vinculos positivos entre zonas urbanas, suburbanas y rurales"
Bachecito: Conecta al ciudadano directamente con las autoridades a traves de un canal digital transparente y con evidencia.
| Feature | Bachecito | WhatsApp/Redes | Paginas web municipales |
|---|---|---|---|
| Geolocalizacion automatica | β | β | β |
| Foto con encuadre guia | β | β | β |
| Seguimiento de estado | β | β | β |
| Mapa interactivo | β | β | β |
| Filtros por prioridad | β | β | β |
| Base de datos estructurada | β | β | |
| Acceso desde cualquier celular | β | β | |
| Sin necesidad de crear cuenta | β | β | β |
| Item | Estado |
|---|---|
| App funcional | β Completada |
| Camara + Foto | β Funcional |
| GPS + Geocoding | β Funcional |
| Auth (Login/Registro) | β Funcional |
| CRUD de reportes | β Funcional |
| Timeline de estados | β Funcional |
| Mapa interactivo | β Funcional |
| Busqueda y filtros | β Funcional |
| UI/UX pulida | β Completada |
| Deploy en tiendas | π Pendiente |
| Integrante | Rol | Responsabilidades |
|---|---|---|
| Bruno Trujillo Ollivier | Tech Lead / Full Stack | Arquitectura, backend, base de datos, integraciones |
| Axel Ramirez Cruz | Investigador / QA / Docs | Testing, documentacion, investigacion de mercado |
| Yered Cordova Romero | Frontend / UI/UX | Diseno de interfaces, implementacion visual, experiencia de usuario |
| Ing. Emmanuel Hernandez Ortiz | Asesor Academico | Orientacion tecnica y academica |
Universidad: IEU Universidad
Cuatrimestre: 3ro
Competencia: FEPRO 2026 - Categoria B (Retos Abiertos con Impacto Social)
- Piloto en Puebla: Lanzar con un grupo de usuarios beta en una zona especifica
- Dashboard para municipios: Panel web para que las autoridades vean reportes y prioricen
- Moderacion comunitaria: Sistema de verificacion por otros usuarios
- Notificaciones push: Alertar al usuario cuando su reporte cambia de estado
- Gamificacion: Logros y puntos por reportes contribuidos
- Expansion: Adaptar la app a otras ciudades de Mexico
- Equipo: Bachecito
- Universidad: IEU Universidad
- Competencia: FEPRO 2026
- Asesor: Ing. Emmanuel Hernandez Ortiz
"Porque un bache reportado es un bache que puede ser reparado.
Y una comunidad que reporta, es una comunidad que se cuida."
Documento de contexto del proyecto Bachecito - FEPRO 2026
