SplitRoof AI assistant
An assistant inside a shared-household expense app that answers questions from the household's real data and never does the math itself.
- Role
- AI integration, documentation, schedule
- Year
- 2026
- Team
- group project, COMP 231 Software Development Project, Fall 2026
- Stack
- React, Node.js, Express, Firebase, Anthropic API, Jest
- Links
The problem
People who share a home keep asking the same questions: who paid for what, who owes whom, what did we spend on groceries this month. The app already has the answers in its data. Typing them into a chat should just work, without the model making up numbers.
What I built
A read-only assistant. The model, Claude Haiku 4.5 through the Anthropic API, gets a small set of typed tool functions (getBalance, getCategorySpend and getBudgetStatus) and can only call those. The functions run the queries and return exact figures. The model turns the result into a sentence. It cannot write to the database and it never adds anything up on its own.
Decisions
- Tools before model. I built and tested the three functions with 12 Jest tests before the model was wired in, so the behaviour is verified without an LLM in the loop. Five more tests then run the assistant against the live model.
- Read-only by design. The assistant has no write path at all, so a bad prompt can at worst produce a wrong sentence, never a wrong balance.
- One narrow job. This comes from an earlier school project, a Family Feud game where an LLM judged answers ("storm" scored for "rain"). It worked best when the model had one clear, testable task, and that is how I scope AI features now.
Outcome
In progress.
Screenshots


Credits
Group project. I own the AI integration, keep the project documentation, and keep us on schedule.