Skip to content

1.0.0

Latest

Choose a tag to compare

@b-ayd b-ayd released this 12 May 18:56
7df2afa

AccessMap 1.0.0

AccessMap is a community-driven accessibility reporting platform that helps people with
mobility impairments navigate their surroundings. Users report, verify, and track physical
obstacles — broken ramps, blocked paths, road construction, out-of-service elevators,
missing tactile paving, and more — on an interactive map, and get pedestrian routes that
actively avoid verified hazards. This is the official 1.0.0 release for the CMPE 354
Final Milestone.

Live deployment

Service URL
Web app https://bounswe2026group3.vercel.app
Backend API https://bounswe2026group3-2.onrender.com
API docs (Swagger UI) https://bounswe2026group3-2.onrender.com/api/schema/swagger-ui/
Android app accessmap.apk — attached to this release

The backend runs on Render's free tier and may take ~30 s to wake on the first request.

What's in this release

For citizens

  • Interactive map of accessibility obstacles with status-coded markers (unverified / confirmed / passive / resolved-awaiting-validation / closed) and an indoor/outdoor distinction — indoor pins render only at high zoom.
  • Report obstacles with photo, category, a location picker, description, and indoor/outdoor context.
  • Upvote reports (role-weighted auto-verification thresholds) and flag low-quality or false reports.
  • Confirm that a resolved obstacle has been fixed — closure is community-gated, not unilateral.
  • Discussion comments on each report; progress indicators toward verification / closure thresholds.
  • Pedestrian route planning that avoids verified obstacles (per-trip baseline + alternative route, avoided-obstacle count), with a "show inactive/passive obstacles" toggle.
  • Saved places with tap-to-focus on the map; a persistent mobility profile (e.g. wheelchair) tied to the account.
  • In-app notifications for report status changes (including when your report is closed) and per-user notification preferences.
  • Password reset by email.

For trusted contributors & authorities

  • Trust-score system; active contributors are auto-promoted to Trusted Contributor and earn a badge.
  • Apply-to-authority flow.
  • Authority dashboard to review/filter reports and mark them "Resolved – Awaiting Validation" with a repair photo and notes; the reporter and upvoters are notified automatically.

For admins

  • Delete malicious reports; suspend/ban abusive accounts; admin-only permission checks.

Platform

  • Django REST API, containerised, deployed on Render.
  • React Native / Expo app — web build on Vercel, Android APK built via EAS.
  • PostgreSQL + photo storage on Supabase; Valhalla pedestrian routing.
  • OpenAPI schema + Swagger UI at /api/schema/swagger-ui/.
  • GitHub Actions CI: Docker build check and Android APK build.

Changelog since the MVP milestone (mvp-milestonefinal-milestone)

114 commits. Highlights:

  • Routing overhaul — obstacle avoidance via exclude_polygons, per-trip baseline + alternative routes, point-to-segment proximity checks, endpoint-proximity skipping, 4 km/h ETA fallback.
  • Authority workflowGET /api/authority/dashboard, base64 resolve flow, dashboard UI, login redirect for the authority role, apply-to-authority screen.
  • Report lifecycle — UNVERIFIED default with hollow/dashed markers, auto-decay of stale reports to PASSIVE, role-based upvote thresholds, flag endpoint, confirm-resolution, CLOSED reports hidden from the map and shown read-only, accessibility-standard violation chips.
  • Map — passive-obstacle toggle, UNVERIFIED reports on the map, stale-while-revalidate refresh, debounced bounds fetch, icon caching, marker-glitch fixes on zoom, compact route input bar.
  • Notifications — in-app notifications tab and list, status-change notifications, reporter notified on closure, per-user notification preferences, camelCase serializer aliases.
  • Users / trust — mobility-profile endpoints, env-configurable trust-score deltas, auto-promotion to Trusted Contributor, badges, promote_authority management command.
  • Saved places — CRUD endpoints, high-precision lat/lng, tap-to-focus on the map.
  • Auth — password reset request/confirm flow.
  • Admin — delete-as-malicious, suspend/ban endpoints.
  • Discussion — comment section on reports.
  • API docs — drf-spectacular Swagger UI.
  • Numerous test additions and bug fixes across backend and frontend (see commit history).

Running it locally

See README.md. In short:
cp .env.example .env, fill in the Supabase / DB credentials, then docker compose up --build
for the backend/web stack; cd frontend && npm install && npx expo start for the app, with
frontend/.envEXPO_PUBLIC_API_URL set to https://bounswe2026group3-2.onrender.com
for a physical device or http://10.0.2.2:8000 for the Android emulator. A
frontend/.env.example is included.

Data seeding

The deployed Supabase database is populated manually with real-world accessibility data
obstacle reports with photos, categories, demo user accounts, saved places, and notifications —
collected around Boğaziçi University (data inventory in the
Final Demo Plan wiki page),
so the live web app is not empty on launch. For a fresh local database: run
python manage.py migrate, create an admin with python manage.py createsuperuser, register
more users via POST /api/auth/register (or the Django admin at /admin/, where roles and
trust scores can also be adjusted), and add sample reports via the Reports API or the Django
admin — exact field schemas are in the Swagger UI.
Categories and statuses are defined in code, so no lookup-table seeding is required.

Default credentials

Credentials for the pre-created accounts — Admin, Infrastructure Authority,
Trusted Contributor, and a regular Citizen — are provided in credentials.pdf,
submitted via Moodle with this milestone (kept out of the public repository).


Web app: https://bounswe2026group3-azure.vercel.app ·