EZ Money is a Flask-based income/expense tracker that's simple to use.
- Responsive web design using Bootstrap
- Google OAuth 2.0 authentication using Authlib
- Data management using SQLite
- Data visualization using Chart.js
- Currency format changer using currencies
This is my final project for CS50x.
It's fairly easy to get it started:
-
Clone or download this repository.
-
Set up and activate a venv on the repository.
-
Install the
ezmoney
package.$ pip install .
-
Get your Google API client ID.
- The scope must include userinfo.email, userinfo.profile, and openid.
- Take note of your client id and client secret.
-
Add the following redirect URIs to your client ID's Authorized redirect URIs:
http://localhost/auth/authorize
http://127.0.0.1/auth/authorize
-
Create a .env file on the repository and set up the following environment variables:
GOOGLE_CLIENT_ID="your google client id" GOOGLE_CLIENT_SECRET="your google client secret"
-
Run the Flask server.
$ flask --app ezmoney run
EZ Money uses Google OAuth 2.0 for authentication, so you can use any Google account to log in and use the application.
You can add an income or an expense by pressing the Add Transaction
button.
Add an income by inputting a positive number. Add an expense by inputting a negative number. You can only input numbers between -1 billion and 1 billion, and with no more than 2 decimal places. A description and date must also be provided. The date must also be valid, and the app will not accept dates that are greater than the current date.
Hover over a transaction and press the Edit
(✏️) button to edit it. The same rules for adding apply.
Hover over a transaction and press the Delete
(🗑️) button to delete it.
You can sort transactions by week, month, and year via the Sort by
dropdown menu. It defaults to "All time."
You can change the format of the currency via the currency selector. It uses the currencies Python package to do this.
You can toggle the visibility of the graph by toggling the graph visibility switch.
If you want to delete all of your transactions, you can do so by clicking the Delete All Transactions
button. Be careful! You can not undo this process.