- Annie Sorkin (xretr0)
- Liangyu Han (lxyhan)
- Anthony Zhao (anthonyzhao27)
- Ysajelle Yi Ru Chua Lim (Ysajelle-Lim)
- Jia Yi Wu (Observer3510)
This project was made as the final project for CSC207 at the University of Toronto.
SpendSmart allows you to sign up with a username and password, and log your spendings. You can view what you've logged as well as ask an AI assistant preset questions for help with budgeting.
No need to install anything, simply go to the website linked here.
First, go to the website and click Get Started.
If the website is down or not working properly, feel free to run the following commands to set up a local version of the project:
- Set up the maven back end:
cd backend
mvn clean install
mvn spring-boot:run- In another terminal instance run the front end:
cd frontend
npm install
npm run dev- Go to the website instance and use the app
Go to http://localhost:5173/
Make a new account by entering your email and password.
Click Sign in near the bottom of the screen, and sign in with your username and password.
Click the Add Expense button under the monthly overview on the right. Select a date and category that the expense falls under. Enter the name and amount of the expense and click Save.
Click the Add Income button next to the Add Expense button. Select a date and type that the income falls under. Enter the name and amount of the income and click Save.
Scroll down to see your Spending History. Click the tabs underneath the heading to switch between expenses and income. Scroll down the sidebar to see the filters for each category.
Click on the AI Advisor button in the sidebar. Select the kind of advice you'd like from the dropdown of AI advisors. Click on one of the preset questions.
Refer to the Creative Commons license here.
Send a message in the development discord server's general channel.
Invite with temporary membership here. (Expires December 6, 2024)
- Website breaking bugs
- Bugs with the usages listed above
- Issues with navigating the website
Since this project is for school, we will likely not respond to any requests for new features at all or to any bug reports past the due date (December 2, 2024).
Contributors should make a new branch to push their changes and additions from. Push requests from the main branch will automatically be rejected.
- Make sure each class and function has a javadoc explaining what it is, does, and what its parameters are.
- Make sure naming conventions are consistent across classes.
- Check that the code's logic makes sense
- Check for redundant imports
As a young adult, I want to keep track of my budgeting so that I can have a better understanding of my finances.
Use Cases:
- Log in
- Enter username & password into respective fields.
- Click "login" button
- Input data
- Click "Input" button
- Input income/expense
- Click "Income" button
- Input income
- Select type of income from dropdown
- Input date as MMYY format
- Click "Submit" button
As a student, James wants to learn more about financial products and how to build positive spending and investment habits.
Use Cases:
- Sign up
- Enter a username an password into the signup page
- Click the signup button
- Log in
- Enter username and password into the login page
- Click the login button
- Talking with AI financial advisor
- Click the start conversation with AI advisor button
- Select a message from the given prompts
As a student in midterm season, Clair wants to track how much she spent on food deliveries so she can see whether she's spent too much.
Use Cases:
- Log in
- Enter username & password into respective fields.
- Click "login" button
- Entering Expenses
- Select occurrence of expense from dropdown ("Single time" or "Monthly")
- Input the date (format: "MMYY") the expense occurred or started.
- Input the amount.
- Choose a category for the expense from a dropdown.
- See List
- Click "View Data" button
- Select the current month
- Look at the records
As someone with limited financial resources, I want to monitor my total expenses for a month, so that I can avoid overspending.
Use Cases:
- Sign up
- Enter a username and password into respective fields
- Click sign up button
- Log in
- Enter username and password into respective fields
- Click login button
- Viewing expenses
- Click " Data" button
- Visualize expenses
- Select the desired month
- Click "Visualize" button
- View the total amount of money spent for the month
As a Netflix user, I would like to track my monthly subscription and save it in a category, so that I don't need to add it every month.
Use Cases:
- Sign in
- Enter username and password into respective fields
- Click the "Sign Up" button
- Login
- Enter username and password into respective fields
- Click the "Log In" button
- Go to input expense window
- Click the "Input" button
- Click the "Expense" button
- Input expense
- Select occurrence of expense from dropdown ("Single time" or "Monthly")
- Input the date(format: "MMYY") the expense occurred or started.
- Input the amount.
- Choose a category for the expense from a dropdown.
- Submit Expense
- Click "Submit button"
- An "expense added" message will pop up beside the "Submit" button.
As a person with a salary I would like it to appear in each month so that I don’t spend time inputting it every time.
Use cases:
- Signin
- Input the username and password into the appropriate fields
- Press the "Sing In" button
- Login
- Input the username and password into the appropriate fields
- Press the "Log In" button
- Adding the income data with the income type
- Click the "Add data" button
- Choose the "Add Income" button
- Input the fields:
- Type of income (dropdown "Single time" or "Monthly")
- Date
- Amount
- Press the Submit button
- Visualize the income data with the income type
- Click the "View Data" button
- Select the desired month
- View the records of income with amount and type listed