CashContest
Abstract
Ever find yourself wanting to save money but just lack of self-control? Ever felt frustrated by overspending on nights out when you’re trying to save? Say goodbye to financial stress and hello to CashContest, an innovative spending tracking app that gamify your saving journey.
CashContest isn’t just your average budget tracker. It’s a powerful tool that not only allows you to record your spending and provides monthly reports with detailed analysis but also lets you engage in friendly competition with your friends. Challenge each other in specific spending categories over a set time period to boost motivation and savings. Don’t feel like competing with friends? You can also personalise you’re own spending goals and receive timely notifications to stay updated on your budget status to stay on track towards your financial goals.
Author
Name: Chi-Hsuan (Fiona) Wu
Student number: 48655541
Functionality
The features that the app should have are:
Account Management
- New Account Creation: Users can sign up by providing basic information and selecting their preferred currency.
- Password Recovery: Allows users to recover or reset their password via an email recovery link.
- Profile Customization: Users can update their profile information and customise settings.
- Notification Settings: Enable users to customise notifications for budget reminders, competition updates, and goal progress.
Spending Tracking
- Calendar Interface: Offers a user-friendly calendar to log spending and income, categorise them, and add descriptions for better management.
- Spending Categories: Users can choose from predefined categories (e.g., food, entertainment, utilities) or create new categories.
Monthly Reports
- Overview Page: Displays an overview of total expenses, lists expenses for different categories, categorised spending with a pie chart, and a bar chart comparing income and expenses over the past few months.
- Detailed Analysis: Provides insights into spending patterns, suggesting areas for improvement.
Competitions
- Current Competitions: Shows ongoing competitions, participants’ spending, and time left.
- Competition Creation: Users can create competitions in specific categories, set the duration, and generate an invitation code for friends.
- Joining Competitions: Friends can join by entering the invitation code, pending organiser approval.
Goal Setting
- Personalised Goals: Users can set personal spending or saving goals, customise them according to priority and timeline.
- Progress Tracking: Monitors goal progress and provides visual indicators of achievement levels.
Additional Features
- Currency Converter: Handy tool for travelers or those dealing with international transactions, converting expenses to the preferred currency.
- Notifications: Daily or weekly reminders to log spendings, ensuring consistent tracking.
- Achievement Badges: Rewards users with badges for reaching goals, winning competitions, or maintaining good saving habits.
Scope
The scope for the MVP will include the features:
Account Management
- A basic log-in log-out page. The assumption is that users have already gone through the signing up and verification process.
Spending Tracking
- Calendar Interface: Offers a user-friendly calendar to log spending, categorise them, and add descriptions for better management.
Monthly Reports
- Overview Page: Displays an overview of total expenses, list expenses for different categories, and a pie chart categorised spending.
Competitions
- Current Competitions: Shows ongoing competitions, participants’ spending, and time left.
- Competition Creation: Users can create competitions in specific categories, set the duration, and generate an invitation code for friends (up to 4 friends in one competition).
- Joining Competitions: Friends can join by entering the invitation code (automatically approve while spaces left).
Goal Setting
- Personalised Goals: Users can set personal spending or saving goals, customise them according to priority and timeline.
- Progress Tracking: Monitors goal progress and provides visual indicators of achievement levels.
Quality Attributes
Reliability
Reliability is an important attribute for this system as users are entrusting the app with financial information and expect accurate tracking and updating of their spending, savings, and competition standings. If users find mistakes or delays in updates, it can lead to frustration and diminish trust in the app. Moreover, in the context of competitions, reliability ensures fairness and transparency among participants, as all users rely on the system to accurately reflect their and others’ spending behavior.
Scalability
It is crucial to ensure that the application delivers a seamless and efficient user experience, even during periods of high activity, such as the start of a new month when users are more likely to log expenses and set goals. CashContest will perform horizontal scaling to distribute the load. A load balancer will be used to distribute traffic across all available servers. Caching strategy will also be used to improve the performance. By caching data such as one month’s transaction records, CashContest enables faster retrieval of data compared to fetching it from the database.
Availability
A financial tracking app needs to always be accessible and functional, as users expect to access their financial information, log transactions, and check competition standings at any time. Users rely on the app for daily financial planning and decision-making; therefore, any interruption could disrupt their financial routines and lead to a negative user experience.
Evaluation
Reliability