Proyecto académico · Completado · Sin mantenimiento activo
Demo universitaria para registrar y consultar barreras de accesibilidad urbana en un mapa. El repositorio se llama Access; la aplicación conserva AccesWaze. Se mantiene para exhibición y aprendizaje, sin expectativa de producción.
- Consulta pública de reportes en mapa y tarjetas, con filtros por categoría.
- Registro e inicio de sesión, con perfil de accesibilidad asociado a la cuenta.
- Creación de reportes con ubicación elegida en el mapa y foto opcional.
- Comentarios y calificaciones de 1 a 5; una calificación por usuario y reporte.
- Panel de administrador con estadísticas, cambio de estados y eliminación de reportes.
- Ajustes de tamaño de texto, contraste y reducción de animaciones guardados en el navegador.
Los ejemplos se sitúan en Bogotá. No calcula rutas accesibles: el buscador de direcciones es un campo visual sin lógica conectada y el perfil no personaliza rutas. Las estadísticas se consultan mediante peticiones HTTP; no se actualizan continuamente en tiempo real. Algunos textos de la interfaz conservan aspiraciones del ejercicio, como rutas personalizadas y gestión de usuarios, que no están implementadas.
HTML, CSS y JavaScript sin framework; Leaflet 1.9.4 con teselas de OpenStreetMap; PHP con PDO y sesiones; MySQL/MariaDB. Fuentes Outfit y JetBrains Mono de Google Fonts. Sin npm, Composer ni paso de compilación.
Access/
├── index.html # Vistas y formularios
├── css/styles.css # Presentación
├── js/app.js # Navegación, mapa y peticiones a PHP
├── php/config.php # Conexión PDO, sesiones y respuestas JSON
├── php/auth.php # Registro, login, logout y consulta de sesión
├── php/reportes.php # Reportes, comentarios, calificaciones y estadísticas
├── assets/uploads/ # Imágenes generadas al usar la demo
├── database.sql # Esquema y ejemplos; recrea tablas
└── docs/LIMITACIONES.md
El navegador consulta php/*.php?action=.... PHP guarda usuarios, reportes, comentarios y calificaciones en cuatro tablas relacionadas. Las imágenes quedan en disco y la base guarda su ruta. Solo las preferencias visuales usan localStorage.
- PHP 8.1 o posterior, con
pdo_mysqlymbstringhabilitados. El mínimo se debe al tipo de retornoneverenconfig.php. - Apache y MySQL/MariaDB, por ejemplo los incluidos en XAMPP.
- Internet para Leaflet, teselas y fuentes externas. La demo no es offline.
- Copia esta carpeta en
C:\xampp\htdocs\Access. - Inicia Apache y MySQL desde el panel de XAMPP.
- Antes de importar, comprueba que puedes descartar el contenido de
accesWaze:database.sqlelimina y recrea sus cuatro tablas. No lo importes sobre datos que quieras conservar. Usa una instalación local de prueba sin datos personales. - Abre phpMyAdmin local, selecciona Importar y carga
database.sql. El script selecciona expresamenteaccesWazemedianteUSE; elegir otra base en phpMyAdmin no redirige la importación. - Revisa
DB_HOST,DB_PORT,DB_USER,DB_PASSyDB_NAMEen php/config.php. Los valores iniciales corresponden a una instalación local de ejercicio. No incluyas credenciales reales en commits. - Asegura permiso de escritura para Apache en
assets/uploads/. Para fotos de hasta 5 MiB, revisa tambiénupload_max_filesizeypost_max_sizeen elphp.inide Apache; el segundo debe admitir el formulario completo. Reinicia Apache después de cambiar su configuración. - Abre AccesWaze local. Si elegiste otro nombre de carpeta, adapta la URL. Abrir el HTML con doble clic o un servidor solo estático no ejecuta PHP.
El SQL incluye tres cuentas ficticias (un administrador y dos usuarios) y cinco reportes. Los correos, roles y contraseña de ejemplo están en el bloque Datos de ejemplo de database.sql. La contraseña es compartida solo para el ejercicio; no uses datos o contraseñas personales.
Los hashes del archivo se corrigieron para corresponder a la contraseña indicada. Esto no modifica instalaciones existentes: no reimportes una base con trabajo guardado solo para aplicar esa corrección.
- Mostrar mapa y filtros con los reportes ficticios de Bogotá.
- Abrir un detalle con comentarios y calificación.
- Mostrar el formulario de reporte y selección de ubicación.
- Mostrar el panel de administrador y ajustes de contraste/tamaño.
Estas son las capturas que conviene añadir al README cuando se ejecute la demo completa. Aún no se incluyen capturas verificadas de esta revisión.
Se conservó el diseño y la funcionalidad del ejercicio. La búsqueda de direcciones, el cálculo de rutas y la administración de usuarios no se implementaron en esta limpieza. Los ajustes visuales no equivalen a una certificación de accesibilidad.
Hay deuda importante en subida de archivos, CSRF, métodos mutables, escape HTML y errores. Está descrita con referencias al código en Limitaciones y deuda técnica. El alcance es una demo local de exhibición, sin despliegue público previsto.
Verificación de esta revisión: sintaxis PHP/JS y correspondencia de hashes demo. No se importó el SQL ni se certificaron los flujos completos con base de datos.
- No conecta a la base: revisa MySQL,
pdo_mysql, credenciales y nombre de la base. No compartas detalles de errores con datos sensibles. - Error relacionado con
neveromb_strlen: comprueba versión y extensiones del PHP de Apache, que puede diferir del PHP de consola. - Mapa o carga inicial fallan: comprueba acceso a unpkg y OpenStreetMap. El arranque depende de Leaflet.
- La foto no aparece: comprueba permisos y límites PHP. Algunos errores de subida pueden terminar creando un reporte sin imagen.
- El buscador no responde: es una limitación conocida, no un problema de instalación.