~/home~/about~/projects~/ventures~/contact
[← back to projects]

</unispace>

────────────────────────────────────────
[SOLO BUILD][PWA][IN DEVELOPMENT]
react 19typescripttailwind v4vitemapboxsupabasepwaturf.jszustandrechartsframer-motiondeno edge functionsgoogle places api

</the problem>

────────────────────────────────────────

University of Melbourne students waste hours searching for study spaces. Libraries fill up silently, building occupancy is invisible, and there's no way to know which spaces have the amenities you need or how busy they'll be in an hour.

</my approach>

────────────────────────────────────────

Built a privacy-first PWA with real-time occupancy heatmaps across 18 campus buildings. Client-side geofencing ensures GPS never leaves the device, while a crowd reporting system and multi-source data fallback chain keep the map useful even with zero active users.

</key features>

────────────────────────────────────────

Live occupancy heatmap

Full-viewport Mapbox map with building polygons color-coded by occupancy. Tap for floor-by-floor breakdowns.

Smart spot finder

Recommendations filtered by amenities (WiFi, power, quiet, accessibility, group tables) and walking distance.

24-hour predictions

Forecasting charts based on historical patterns and live crowd data so you can plan ahead.

Crowd reporting

1-5 scale occupancy ratings with noise level tracking. The system gets smarter with every report.

Push notifications

Get alerted when your favorite spaces free up. No manual checking needed.

Zero-knowledge privacy

GPS stays on device. Client-side geofencing via Turf.js. Session IDs rotate every 30 minutes.

</what i learned>

────────────────────────────────────────
>

Privacy constraints force better architecture. Client-side geofencing is more complex to build but creates genuine user trust.

>

The cold start problem is the biggest risk for crowdsourced apps. Multi-source fallback chains are essential on day one.

>

Scaling from 5 to 18 buildings exposed every shortcut in the original schema. Normalize early.

[← back to projects]