SaveStreak is a simple app that helps you keep track of your savings streaks. It's a great way to keep yourself motivated to save money.
We did some market research and found that there are a few apps that help you keep track of your savings, but none of them focus on keeping a streak going. I think this is a great way to keep people motivated to save money. Apps already in the market:
- Swift (iOS)
- Flask (Backend Server)
- MongoDB (Database)
- Plaid API sandbox environment (for linking bank accounts)
- Clone the repository
git clone https://github.com/amanvelani/SaveStreak/tree/main
- Change directory to the backend folder
cd SaveStreak/server
- Install the required dependencies
pip3 install -r requirements.txt
- Set the environment variables
cp .env.example .env
- Run the server
python3 flask_app.py
The server is also running on https://save-streak.live
- Import the project in Xcode from the
SaveStreak/app
folder - Run the project in Xcode
- If you are running you own server change the APIConfig.swift file to point to your server
In this project we are using the Plaid API to get the transactions. We are using the sandbox environment of the Plaid API. The Plaid API has a few test accounts that we can use to get the transactions. The test accounts can be created using the following files:
- Random User Data - This file is used to generate random user data. The file generates random user data and saves it in the
custom_user_data/
folder. - Custom Location Data - This file is used to generate random location data. The file generates random location data and saves it in the database. We are using the location data to set the location of the transactions as the plaid sandbox environment does not provide the location of the transactions.
- Category Data - This file is used to generate category data. The file generates category data and saves it in the database. We are using the category data to set the category of the transactions as the plaid sandbox environment provides only 1-2 categories for the transactions. We are using the category data to set the category of the transactions.