This is a small Flask app I put together to practice how basic CRUD operations,
forms, and templates work in a simple web application.
The idea is pretty straightforward: you can add transactions, edit them,
remove them, search by amount and see the total balance.
It’s not connected to a real database — everything stays in memory — which keeps the project easy to understand while experimenting with Flask.
- What the App Includes
- Project Structure
- How the Data Works
- Routes
- How to Run the App
- About This Project
- License
- A table showing all transactions
- Buttons to edit or delete any record
- A form to add new transactions
- A form to update existing ones
- A simple search page (min/max amount)
- Automatic total balance calculation
- A clean UI thanks to Bootstrap
Nothing fancy, just the essentials to see the full flow of a small Flask app.
python-flask-transaction-tracker-project/
│
├─ app.py
├─ templates/
│ ├─ transactions.html
│ ├─ form.html
│ ├─ update.html
│ └─ search.html
└─ requirements.txt
The structure is kept minimal so the focus stays on the Flask logic.
All transaction records are stored in a simple Python list.
Each new entry gets an auto-incremented ID so it’s easy to update or remove it.
Since it's in memory, the data resets every time the server restarts — which is fine for a small practice project like this.
| Route | Method | Purpose |
|---|---|---|
/ |
GET | Show all transactions |
/append |
GET/POST | Add a new transaction |
/update/<id> |
GET/POST | Update an existing one |
/delete/<id> |
GET | Delete a transaction |
/search |
GET/POST | Filter transactions by amount |
Each page is rendered with a Jinja2 template.
-
(Optional) Create a virtual environment:
python3 -m venv venv source venv/bin/activate -
Install the dependencies:
pip install -r requirements.txt
-
Start the server:
python app.py
-
Open the app in your browser:
http://127.0.0.1:8080
This was mainly built to get a better feel for Flask: routing, handling forms, passing values into templates, and managing simple data. It’s also something I made as a practice exercise based on what I learned in my course, so it reflects the concepts I was working through at the time.
MIT License.