A portfolio-ready React + TypeScript MVP that helps users understand sample parking sign wording in plain English. The app is intentionally frontend-only and uses deterministic rule-based parsing instead of APIs, OCR, or cloud services.
Parking signs can be compact, fragmented, and stressful to interpret quickly. This project demonstrates how a civic-tech interface can reduce confusion by translating common sign wording into structured guidance while clearly surfacing uncertainty.
- Paste parking sign wording into a text box
- Interpret sign text with a deterministic rule engine
- View structured outputs for:
- Plain-English Summary
- Can I Park Here?
- Time Restrictions
- Permit / Zone Rules
- Warnings / Unclear Details
- Try fake demo samples:
- 3-hour parking
- No stopping
- Residential permit only
- Paid parking
- Detects common rules and keywords, including no stopping, no parking, 3 hour, resident permit, except, Mon-Fri, Sat, Sun, time ranges, pay parking, and loading zone
- Includes a clear legal disclaimer
- Homepage case-study section for portfolio storytelling
- Vite
- React
- TypeScript
- Tailwind CSS
- lucide-react
npm install
npm run devFor a production build:
npm run buildFor TypeScript checks:
npm run typecheck| Homepage | Results |
|---|---|
![]() |
![]() |
Screenshots are stored in docs/screenshots/.
- OCR for real parking sign photos
- Location-aware parking rules and official bylaw links
- Jurisdiction-specific rule packs for BC municipalities
- Confidence scoring for each interpretation
- Multilingual plain-English summaries
- Map context and nearby zone lookup
- Larger parsing test suite with edge cases
This tool is for guidance only and is not legal advice.

