AMExHousr
Inspiration:
University life is expensive and chaotic. Rent, bills, and groceries pile up fast, and most students don’t have an easy way to manage shared expenses or track their spending. We wanted to build something that not only helps students save money but also makes that process fun and rewarding. Our inspiration came from apps like Monzo and Splitwise, but we realized students need a combined tool that covers housing, budgeting, and rewards all in one place. That’s how Nestly was born a smart, social, and gamified way to live and spend better as a student.
What it does:
Helps students track their spending, manage rent and bills with housemates, and earn rewards for good financial habits. Here’s what users can do: Set monthly spending limits and get AI-powered saving insights. Create or join a “House Group” to track rent, utilities, and chores together. Get cashback and perks for paying rent on time or spending less. Use round-ups to automatically save spare change into a “housing fund.” Compete on leaderboards like “House of the Month” and unlock gamified rewards. Whether you live in Housr housing or not, the app helps you save money and stay organized, all while rewarding positive financial behavior.
How we built it
We built our prototype using: Frontend: React / React Native for a responsive and interactive interface. Backend: Firebase for authentication, database, and real-time updates. Mock APIs: Simulated rent payments, spending data, and partner offers. AI Layer: GPT-powered insights for spending analysis and savings recommendations. Design: Figma for UI mockups and flow prototyping. We focused on building a functional demo that clearly shows how a student can join a house, track payments, and earn rewards, even if the underlying payments are simulated.
Challenges we ran into
Integrating multiple features (budgeting, rewards, AI, house management) into one clean, simple interface. Simulating realistic payment data and syncing it across housemates in real time. Balancing financial seriousness with gamified elements, we wanted it to feel engaging, not childish. Ensuring Housr integration ideas were feasible within their current tech model.
Accomplishments that we're proud of
Built a working multi-user prototype that combines rent tracking, group management, and rewards in one platform. Designed an interface that’s intuitive and genuinely fun for students to use. Created a strong integration roadmap showing how Housr could scale this idea within their ecosystem. Balanced impact and feasibility, a real problem solved with realistic tech and a clear business fit. Most importantly, we made financial management feel rewarding, not stressful.
What we learned
The power of human-centered design, talking to students showed us they crave simplicity and incentives. How to combine fintech and community mechanics (like leaderboards and streaks) effectively. Learned the importance of data visualization, making rent and spending stats visual turns anxiety into awareness. Collaboration: working cross-functionally as a team (dev, design, strategy) to bring a unified experience together fast And finally, that a hackathon project doesn’t need to be complex, it just needs to work and matter.
What's next for Qunatization
API Integration with Housr’s rent and tenant systems to automate rent tracking and rewards. Partner with local businesses and student brands to expand cashback and perks. Launch a pilot program in one university housing network to gather feedback. Add secure payment integration (e.g., Stripe, Open Banking) for real transactions. Continue refining our AI insights engine for personalized recommendations.
MLH Gemini API
Inspiration:
This code was part of the Prism challenge, which required providing a highly optimised stock investment recommendation - specifically, determining what stocks to buy and in what quantities - based on a specific investor profile context. This presented a clear opportunity to leverage advanced AI capabilities for rapid, structured data extraction to drive a quantitative financial solution.
What it does
The solution automates the initial, crucial step of any financial advising system: profile context extraction. It takes a given investor profile (context) and uses the Gemini API to rapidly and reliably extract the critical financial and personal variables required for an optimal stock recommendation. These variables include the start date, end date, budget, salary, and liked industry categories. This extracted, structured data is then integrated with manual logic and financial checks to generate the final stock and quantity recommendation.
A context looks like the following: Sarah Moyer is 59 years old and has a total investment of $15549. Her investment start date is April 21st, 2019 and her investment end date is November 22nd, 2020. Her hobbies are painting and she has a budget of $1549 total.
How we built it
We built the solution using the Python API to interface with the Gemini Flash 2.5 model. A specific configuration was essential for meeting the performance requirements:
- Structured Output: We configured the model to produce a structured JSON output for the extracted variables, ensuring the data was immediately usable by downstream logic.
- Specific System Instructions: We employed precise system instructions to direct the model to focus only on the required variables.
- Shorter Thinking Budget: A shorter thinking budget of 6000 was set to prioritise speed over exhaustive, non-critical reasoning.
This combination allowed the Gemini model to serve purely as a high-speed, accurate context information extractor, which was then combined with our own financial logic. This allowed us to extract the needed information in ~1.5s - submissions that took longer than 10s from the time the context was given were penalised.
Challenges we ran into
The main challenge was achieving the required speed while maintaining the reliability and accuracy of the data extraction. Large Language Models (LLMs) can often exceed timing requirements when performing complex reasoning or generating long outputs. The initial challenge was tuning the prompt and configuration to:
- Prevent the model from exceeding the 10 second marker by focusing its task.
- Ensuring the correct information was extracted (initially all categories were given, including the specifically disliked ones).
Furthermore, I am not generally accustomed to working with a lot of data, so debugging and ensuring the system worked before deploying took a lot longer than usual.
Accomplishments that we're proud of
We are incredibly proud of achieving an incredibly low data extraction time of approximately 1.5 seconds from the context. By strategically limiting the model's role to only context information extraction and integrating it with manual logic for the actual stock recommendation, we managed to stay well under the 10-second budget and avoid over-relying on the model for complex, high-budget calculations.
What we learned
We learned the critical importance of scoped LLM usage in a time-constrained environment. Instead of asking Gemini to solve the entire problem ("what stocks should be used"), we leveraged its strengths—rapid and reliable context extraction—and combined it with our own deterministic financial logic. This precise control over the model's function, achieved through tailored system instructions and a constrained thinking budget, is key to maximising performance and meeting strict latency requirements in real-world applications, as well as ensuring nothing went hay wire.
During the initial attempts where Gemini was used to suggest what stocks and in quantity to use, the quantities would often go over the specified budget, which I'm sure the Pro model would have been able to search, but that would have certainly gone over the 10s time constraint.
What's next for Quantization
The next step for Quantization is to further refine the integration between the rapid AI data extraction and the financial logic. This includes:
- Expanding the set of variables that can be reliably extracted from more complex, unstructured profiles
- Autonomously removing the tickers which cause problems, and storing those in a JSON file so that they are still not used if the program is restarted.

Log in or sign up for Devpost to join the conversation.