Inspiration
College students are surrounded by great local businesses, events, discounts, and experiences but discovering them is fragmented across social media, flyers, word of mouth, and dozens of different websites. At the same time, local businesses want to reach students without relying entirely on expensive ads or hoping an Instagram post gets seen.
We built M-Local to connect those two sides of the community. Our goal was to create a UMich-first platform where local businesses can publish relevant offers and experiences, students can discover what is happening around them, and those interactions can become smarter and more personalized over time.
What it does
M-Local is a student-focused local discovery and promotion platform. Businesses can publish offers and promotions, while students can discover, save, and claim them through a mobile-friendly experience.
For our hackathon MVP, we focused on the complete lifecycle of a local offer:
- Students can browse local promotions.
- Offers can be saved while preserving the terms that existed when the student claimed them.
- Claims can expire and are protected against repeat redemption.
- Businesses can verify offers using a QR-based redemption flow.
- Student and guest experiences are separated to protect authenticated functionality.
- Jac provides the foundation for modeling students, businesses, listings, interests, locations, and the relationships between them.
The larger vision is for M-Local to learn from interactions such as views, saves, clicks, claims, RSVPs, categories, and interests to make local discovery increasingly relevant for each student.
How we built it
We designed M-Local around a Jac-powered graph model rather than treating the backend as a simple collection of disconnected records.
Our graph represents entities such as:
Student → Business → Listing → Category → Interest → Location
and connects them through interactions like discovering, saving, claiming, and redeeming an offer.
This gives us a natural foundation for recommendation walkers and contextual discovery as the platform grows.
On top of that, we built a mobile-first web experience for students and businesses. Our four-person team divided the project into separate engineering lanes covering the student experience, business tools, Jac/backend/data work, and frontend/mobile integration.
One of the most important pieces of the MVP was the redemption flow. A student can claim an offer, M-Local preserves the terms associated with that claim, and a business can validate it through a QR workflow while enforcing ownership, expiration, and repeat-redemption rules.
We also structured the system so features such as natural-language discovery, recommendation walkers, AI-assisted listing creation, analytics, and richer personalization can be layered onto the same Jac graph instead of requiring a completely different architecture.
Challenges we ran into
The biggest challenge was scope.
We had roughly 24 hours, four engineers, multiple possible hackathon tracks, and an idea that could very easily become a full production platform.
We had to continuously separate what would make the product exciting from what had to work for the demo.
Another challenge was coordinating parallel development without four people constantly editing the same pieces of the application. We divided ownership into engineering lanes, documented interfaces, and tried to freeze shared contracts early so frontend, backend, Jac, and integration work could happen simultaneously.
The redemption system also introduced deceptively difficult edge cases. We had to think beyond simply displaying a QR code and consider questions such as:
- Who actually owns the claim?
- What happens if a business edits an offer after somebody saves it?
- Can the same promotion be redeemed twice?
- When does a claim expire?
- What information should guests be able to see?
That pushed the project from being just a UI prototype toward something that behaves more like a real product.
Accomplishments that we're proud of
We're proud that M-Local became more than a collection of mock screens.
We built an end-to-end concept where a local business can create value for students, a student can discover and claim that value, and the claim can actually move through a validation and redemption lifecycle.
We are especially proud of the work around claim integrity: saved offer terms survive later listing changes, authenticated ownership is enforced, expiration is supported, and repeat redemption is protected against.
We also built the application around Jac from the beginning instead of adding Jac at the end just to satisfy a hackathon requirement. The graph structure is directly connected to where we want the product to go: contextual discovery, recommendations, analytics, and eventually intelligent agents operating across the local ecosystem.
Most importantly, four people were able to take M-Local from an idea to a functioning product architecture and demo in a single hackathon.
What we learned
We learned very quickly that building fast does not mean building without structure.
Clear ownership, small interfaces between teams, and agreeing on the shape of the data early made parallel development dramatically easier.
We also learned how well graph-based thinking fits this problem. Local discovery isn't just a database search. A student's interests connect to categories, locations, businesses, previous interactions, friends, events, and changing context. Modeling those relationships explicitly opens up much more interesting possibilities than a traditional list of promotions.
Finally, we learned that some of the smallest-looking features — like redeeming a coupon — often contain the most important product decisions.
Those details are what turn a hackathon demo into the beginning of something people could actually use.
What's next for M-Local
The next step is turning M-Local from a hackathon MVP into a real local platform.
We want to expand the Jac graph and use it for personalized recommendation walkers that learn what each student actually cares about.
From there, we envision:
- Natural-language local discovery such as “What can I do near campus tonight for under $20?”
- Personalized feeds based on interests and real interactions.
- AI-assisted promotion creation for local businesses.
- Business analytics for views, saves, claims, clicks, and redemptions.
- Events and RSVP support alongside promotions.
- Richer location-aware discovery.
- Stronger production-grade authentication, persistence, concurrency protection, and redemption infrastructure.
- Expansion beyond UMich into other college communities.
The long-term idea is bigger than coupons.
M-Local could become the intelligent connection layer between a university community and everything happening around it.
Built With
- jac
- jachammer
- javacript
- python
Log in or sign up for Devpost to join the conversation.