Project · Honors thesis
A mobile app that preserves the history of Idlewild, Michigan, a historic Black resort community.
Thesis paper coming soon

Idlewild's history was scattered across personal memories and disconnected sources. The app brings it together: visitors explore an illustrated town map, read history written by the community and find local events, while admins review everything before it goes public.
I designed, built and tested it on my own as my honors thesis. Feedback from students on a trip to Idlewild and from my thesis committee shaped the final app, from a new resources hub to image descriptions for screen readers.

Zoomable map with pins that link to stories and events, and line up on every screen size.

Contributors write articles with images, and readers search and filter by tag.

A rich text editor with drafts saved on the phone. When someone edits a published article, admins review it in a diff view that highlights what was added and removed.

Every post, edit and event is reviewed first, and denials come with feedback.
Problem
My first plan stored each user's role on their own profile, which users are allowed to edit. Someone bypassing the app could have written directly to their profile and made themselves an admin.
What I did
Moved roles into Firebase Auth custom claims, which only server code can set, with role changes handled by server functions that check the caller.
Problem
The first version mixed screen and logic code, and progress stalled.
What I did
Learned MVVM from developers in the WMU Developer Club, planned the app in Figma and rebuilt it from scratch with a layered structure.

Social app for volleyball players and hosts, live on iOS and Android with 500+ users. Players find teammates, chat and keep live scores; hosts run paid events with waivers and reminders.

Image classifier that predicts whether a road is dry, snowy, icy or mixed from a dashcam photo. Built in PyTorch for a machine learning course, using 9,000 images from the WinterSim Initiative.