-
Notifications
You must be signed in to change notification settings - Fork 0
Use of Standards
What it is: An open standard format for encoding geographic data structures using JSON.
Where we use it:
- The
/api/obstaclesendpoint returns obstacle locations as GeoJSON-compatible coordinate pairs (latitude,longitude). - The
/api/routes/calculateendpoint uses Valhalla, which encodes route shapes as polylines — we decode these into[lat, lng]waypoint arrays matching GeoJSON coordinate conventions. - The frontend map component (
MapView.tsx) renders markers and route lines using these coordinates via a Leaflet WebView.
Why this standard: GeoJSON is the de facto standard for geospatial data on the web. It ensures interoperability with mapping libraries (Leaflet, Mapbox) and external routing APIs (Valhalla, OpenRouteService) without custom transformation layers.
What it is: A collaborative community activity that creates and maintains schemas for structured data on the internet.
Where we use it:
- Report entities map to
schema:LocalBusiness/schema:Placeconcepts — specificallyschema:location(lat/lng),schema:name(title), andschema:description. - User profiles follow
schema:Personwith fields likeschema:name(fullName) andschema:birthDate. - Obstacle categories (ramp, elevator, stairs, etc.) align with
schema:accessibilityFeatureandschema:accessibilityHazardproperties from Schema.org.
Why this standard: Using Schema.org vocabulary keeps our domain model aligned with widely understood semantics, making the API more self-documenting and ready for future semantic web or search indexing use cases.
What it is: The W3C standard defining how to make web and mobile content accessible to people with disabilities.
Where we use it:
- The entire project is built around accessibility for mobility-impaired users. Route calculations use the OpenRouteService
wheelchairprofile, which avoids stairs, steep slopes, and inaccessible surfaces — directly implementing the spirit of WCAG Success Criterion 1.3.4 (physical accessibility). - The obstacle reporting system allows users to report inaccessible infrastructure (missing ramps, broken elevators), contributing to a community-maintained accessibility map.
- The
mobilityProfilestored per user (mobility aid type, additional needs) allows the app to personalize routing — a form of adaptive presentation per WCAG Guideline 1.3 (Adaptable). - Frontend uses sufficient color contrast and touch target sizing for motor-impaired users.
Why this standard: Our target users are people with mobility impairments. WCAG 2.1 is the internationally recognized benchmark for accessibility compliance and shapes both our routing logic and UI decisions.
What it is: An open standard (IETF RFC 7519) that defines a compact, self-contained way to securely transmit information between parties as a JSON object.
Where we use it:
- All authenticated API endpoints require a
Bearer <token>JWT in theAuthorizationheader. - We use
djangorestframework-simplejwtwhich fully implements RFC 7519. - Access tokens expire in 30 minutes; refresh tokens expire in 7 days, with rotation and blacklisting enabled (old refresh tokens are invalidated on use).
- Token claims include standard fields:
iss,sub(user ID),iat,exp.
Why this standard: JWT is stateless — the server doesn't need to store session data. This makes our API horizontally scalable. The standard's wide adoption means frontend clients (React Native) and backend (Django) have mature library support with no custom crypto code required.
What it is: The international standard for representing dates and times (e.g., 2026-04-06T14:30:00Z).
Where we use it:
- All timestamps returned by the API (
createdAt,updatedAt,birthDate) are serialized in ISO 8601 format by Django REST Framework'sDateTimeFieldandDateField. - JWT
iatandexpclaims use Unix timestamps (seconds since epoch), which is ISO 8601-compatible per RFC 7519. - The
UserProfileSerializerserializesbirthDateasYYYY-MM-DD(ISO 8601 date format).
Why this standard: ISO 8601 is unambiguous across locales and time zones. Using it prevents date parsing bugs between the Django backend (UTC), the React Native frontend, and any third-party integrations. It is also the default for DRF serializers, reducing custom configuration.
- Elicitation Questions
- Requirements
- Implementation Plan
- Test Plan & Coverage
- MVP Demo Plan
- Communication Plan
- Responsibility Assignment Matrix
- Use of Standards
- Project Retrospective
- Final Demo Plan
- Final Milestone Deliverables
- Report 1 - Requirements Elicitation & Repository Setup
- Report 2 - SRS Through Scenarios & Mock-ups
- Report 3 - From Scenarios to Use Case Diagrams
- Report 4 - Class Diagrams & Use-case Diagrams
- Report 5 - Git Workflow, Stub Application, and Planning
- Report 6 - Planning for Implementations & Tests
- Report 7 - Finalizing Plan for MVP Milestone Demo
- Report 8 - Standards & Plan Revision
- Report 9 - Requirements Review & Acceptance Testing
- Report 10 - Finalizing Plan for Final Milestone Demo
- 2026-02-18: Weekly Meeting #1
- 2026-02-18: Customer Meeting #1
- 2026-02-25: Stakeholder Meeting
- 2026-02-25: Weekly Meeting #2
- 2026-03-04: Weekly Meeting #3
- 2026-03-11: Weekly Meeting #4
- 2026-04-01: Weekly Meeting #5
- 2026-04-15: Weekly Meeting #6
- 2026-04-22: Weekly Meeting #7
- 2026-04-29: Weekly Meeting #8
- 2026-05-06: Weekly Meeting #9