Skip to content

KingDavidKo/Expense-App

Repository files navigation

Expense Tracker

1. Description

Product Name and Description

Expense Tracker is an budgeting and expense tracking app that helps users reach their budgeting goals while staying organized for tax season. Users simply upload their expenses by taking a picture of their receipts, and the app's built-in AI will create the purchase details and suggest categories automatically. Users can also edit the expenses for accuracy or leaving a note. Expenses are organized into tax-relevant categories inaccordance with with CRA tax code, while budeting tools help users understand where they are spending their money. This app uses supabase for authentication/data/storage, and it also supports receipt image handling and export features, including a Gemini-powered AI agent for receipt parsing and tax related inquiries/tips.

Names and contact Info:
Amanbir - abehniwa@uwaterloo.ca
David - dkofman@uwaterloo.ca
Devin - dyli@uwaterloo.ca
Marco - z253chen1@uwaterloo.ca

Home Page Screenshot
![alt text](uploaded Images and files/Screen_Shot_2026-04-03_at_11.24.23_PM.png)

Link to Youtube Video: https://www.youtube.com/watch?v=-L_7dJvm79A

  • For a more detailed breakdown of the features, please scroll below to see the Usage Guide

Software releases
Final submission: Version 1.0.0 final release

Acknowledgements

List of third party libraries used:

  • JetBrains Compose Multiplatform
  • AndroidX UI/runtime libaries:
    • activity-compose:1.12.2
    • appcompat:1.7.1
    • lifecycle compose/runtime 2.9.6
  • AndroidX data libaries (Andriod compatibility):
    • Rooms: room-runtime, room-compiler 2.8.4
    • SQLite bundled 2.6.2
  • Ktor client stack: ktor-client-core/android/java/darwin 3.3.3
  • Kotlinx libraries:
    • kotlinx-serialization-json:1.7.3,
    • kotlinx-datetime:0.7.1
    • kotlinx-coroutines-swing:1.10.2
  • Supabase Kotlin SDK (for backend Auth, database, and storage integration):
    • auth-kt, postgrest-kt, storage-kt
  • images/PDF/files (For OCR and export data):
    • coil-compose:2.6.0
    • okio:3.17.0
    • openpdf:1.3.30
    • org.jetbrains.skia
  • Testing dependencies include:
    • org.jetbrains.kotlin:kotlin-test
    • org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.1

List of external source code references used: These resources were referenced for ideas and implementation guidance only, no code from these sites were copy and pasted verbatim

2. Project Information

Here's our Team Contract
Here's our Project Proposal
Here's our Meeting Minutes
Here's our Team Reflections Page

3. User Guide

Getting started

Here's our getting started page

Usage Guide

Here's our Usage Guide page

4. Design Documents

Use mermaid.live to visualize the diagrams:
Here's our ERD Diagram
Here's our Class Diagram

5. Grading Instructions

After you pull our changes, please do a cold boot otherwise you won't be able to log in or create account. Furthermore, if you are using school wifi, please disable school wifi and ensure that you have hotspot enabled. The app requests sometimes gets blocked by the university, resulting in failure to log in and register for an account. If you still have a problem, see the trouble shoot page in our getting started wiki or reach out to one of the team members and we will respond swiftly.


Additionally, in order to use the core functionality of this app (i.e. receipt scanning, tax advisor, budget categorization) you will need to set up the local envrionment variables.

Add your Gemini API key to local.properties (project root):

GEMINI_API_KEY=[YOUR_KEY]
# Can use the key provided above or create one for free in https://aistudio.google.com/

We implemented the two optional requirements for extra grades.

  1. Multi-platform support on Andriod, Desktop and IOS.
  2. We also implemented the second optional requirement of Web Services, where we used external API from gemini in to implement our receipt scanning and tax advisor agent features. The API draws real-time data to answer tax inquries and the latest deduction policy changes in 2026

Release

Version 1.0.0 Release


Learn more about Kotlin Multiplatform

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors