A personal finance project made with Flask, SQLAlchemy ORM and Chart.js. A CRUD for all expenses records, a create and delete for incomes and categories.
This is my CS50X Final Project
Video Demo: https://youtu.be/wbyZGFEPH_o
A Personal Finance Flask Project with MYSQL Database and SQLAlchemy ORM. This small software will record all your incomes and expenses, Showing the balance according to the expenses and revenues. A CRUD method for expenses and income, paginations and responsive. It also have a basic Chart to see you finance statistics. Project was done with Flask Python framwork, JavaScript and MySQL also bootstrap for styling.
Project especifications
To start the project you will have to create a database in MYSQL called personalFinance. It is set ass root with no password. After that it will only need to start a run the database.
mysql.server start
mysql -u root -p
Create database personalFinance“If you prefer you can set a password and change it in the project .env file” then it will link to the app.py database connection with thouse variables.
MYSQL_USER = root
MYSQL_PASSWORD =
MYSQL_DATABASE = personalFinance
MYSQL_HOST = localhost
The project includes a requirement.txt file.
A requirements file is documenting what Python packages are required to run the project. It will later on be used by Docker for instance to install these dependencies and ensure our application will run smoothly upon deployement with:
pip install -r requirements.txt
This are the projects Packages I installed:
pip install SQLAlchemy
pip install python-dotenv
pip install flask-login
pip install flask-paginate
pip freeze > requirements.txtRun Project
To run the project you will have to create and environment and activate it
python3 -m venv .venv
. .venv/bin/activateSQLAlchemy
The SQLAlchemy - create_all() in index.py will create all tables for the project configured in the models folder. Because it was set in index.py you will have to run:
python index.pyMain file
There’s is personalFinance.py file in the routes folder that contains all routes and logic for the application.
Info
If flask project takes long and shows HTTP ERROR 403 clearing browser cookies solves the problem.
Front-end: HTML, CSS, BOOTSTRAP, JAVASCRIPT
Back-end: FLASK, JAVASCRIPT, MYSQL
- CRUD
- Realtime charts
- Responsive
- Multiple users
Packages Version:
- Python 3.9.12
- Flask 2.3.2
- Werkzeug 2.3.6
- SQLAlchemy 2.0.19