Skip to content
HMU Navigation screenshot

HMU Navigation

TypeScript React Native Node.js PostgreSQL PostGIS Redux

2022 - 2023

A cross-platform campus navigation app, built as my thesis project at Hellenic Mediterranean University, enabling 5,000+ students to locate 200+ rooms with indoor/outdoor mapping and live class schedules.

About

When I started at Hellenic Mediterranean University (HMU), there was no digital map of the campus. New students wandered hallways looking for rooms, and the university’s floor plans existed only as scanned PDFs in a drawer.

This app was my answer: the first time a Greek university campus had a navigable indoor map on a phone. I built it as my BSc thesis, developed during my time as a software engineer at Nile Lab.

Research

The app grew out of my thesis, “Development of a Dynamic Virtual Guide Platform”. Before writing any code, I surveyed how indoor positioning is actually done: Wi-Fi fingerprinting, Bluetooth beacons, UWB, visible light, and dead reckoning.

Every accurate indoor method needs paid hardware, and research on Regensburg’s URWalking system shows users prefer no indoor positioning over an unreliable one. So the platform relies on GPS and skips indoor hardware entirely.

For routing I compared A*, Dijkstra, D*, and Floyd-Warshall. At campus scale Dijkstra matches A* in speed without needing a heuristic function, so that is what I implemented.

Requirements came from user stories written for four roles: new students, students, faculty, and users with accessibility needs. The accessibility stories are where wheelchair-aware routing entered the design.

The full thesis is available in the university’s repository.

Architecture

The app has three layers: a React Native mobile client, a Node.js/Express API, and a PostgreSQL + PostGIS database storing all geospatial campus data.

The backend follows a layered architecture (Presenter, Domain, Data) with DAOs for data access, DTOs for API responses, and a custom error hierarchy.

Spatial queries use PostGIS functions like ST_DistanceSphere and ST_AsGeoJSON, and every geospatial endpoint returns standard GeoJSON FeatureCollections.

The API also talks to the university’s MRBS booking system over its HTTP API to pull live class schedules and room reservations.

On the mobile side, indoor maps are rendered as polygon overlays on Google Maps via react-native-maps. Each floor of each building has digitized room polygons mapped to real-world coordinates.

Pathfinding runs a custom Dijkstra’s algorithm over a graph of navigation points and connections, with multi-floor transitions (stairs and elevators) and accessibility-aware routing for wheelchair users.

State lives in Redux Toolkit: 11 slices, 6 of them persisted via Redux Persist, covering everything from map regions to search history. Turf.js handles point-in-polygon detection to tell which building or room the user tapped.

Push notifications reach students through the OneSignal API, so announcements land on their phones without the app being open.

My Role

I built the entire app solo: the backend API, the PostGIS database schema, the MRBS schedule integration, the pathfinding algorithm, the indoor mapping system, and the full React Native mobile client.

What I Learned

This was the first project that made me think in a production way. The biggest lesson was about data that does not exist yet. There was no digital indoor map of the campus, only paper floor plans.

Turning those into navigable, coordinate-mapped room polygons meant close collaboration with the university’s facilities department. Getting the right data in the right format proved harder than any of the code.

The other lesson was presenting complex data simply. A campus has hundreds of rooms, overlapping schedules, and multi-floor buildings, and all of it had to feel obvious on a phone screen.

That forced me to think hard about information hierarchy and map interactions, and it still shapes how I approach UI work today.

Today

The thesis was approved in 2023 and both repos are public on GitHub, now archived. It remains the map I wish I had as a first-year student.

The thesis also charts what a v2 would look like: turn-by-turn position tracking, voice-guided navigation for visually impaired users, and personalized search through university sign-in.