Aplicación ciudadana para reportar en tiempo real problemas urbanos (baches, luminarias apagadas, basura acumulada, vandalismo, etc.) con foto, ubicación y comentarios, priorizando una experiencia mobile first.
Capacidades principales:
- Autenticación de usuarios y manejo por rol (
ciudadano/autoridad). - Creación de reportes con categoría, descripción, imagen y coordenadas en mapa.
- Visualización y seguimiento de reportes en lista/mapa.
- Priorización comunitaria mediante votos.
- Flujo de estados operativo:
nuevo→en_revision→en_proceso→resuelto.
- Node.js 20+
- npm 10+
- Proyecto de Supabase con Auth, DB y Storage
- Clonar el repositorio.
- Instalar dependencias:
npm install- Crear archivo de entorno local:
cp .env.example .env.localEn Windows PowerShell, puedes usar:
Copy-Item .env.example .env.localCompleta .env.local con:
VITE_SUPABASE_URL=
VITE_SUPABASE_PUBLISHABLE_KEY=
VITE_MAP_TILE_URL=https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.pngNotas:
VITE_SUPABASE_URLyVITE_SUPABASE_PUBLISHABLE_KEYson obligatorias.VITE_MAP_TILE_URLdefine el proveedor de tiles del mapa.
Iniciar modo desarrollo:
npm run devBuild de producción:
npm run buildPrevisualizar build:
npm run previewnpm run dev→ servidor de desarrollo.npm run build→ build de producción.npm run preview→ preview local del build.npm run lint→ validación estática.npm run test→ ejecución de tests.npm run test:watch→ tests en modo watch.npm run test:coverage→ tests + cobertura.npm run format→ formateo de código.npm run format:check→ validar formato.
- Frontend: React + TypeScript + Vite
- Routing: React Router
- Estado servidor/cache: TanStack Query
- Formularios: React Hook Form + Zod
- Mapas: Leaflet + React-Leaflet
- Backend/BaaS: Supabase
- Estilos: Tailwind CSS
- Testing: Vitest + Testing Library
src/
app/
features/
auth/
reports/
map/
profile/
shared/Para el detalle completo por tema: