Loading repository data…
Loading repository data…
hiffenick / repository
Modern expense tracking web application with secure authentication, analytics, and Google Authenticator 2FA.
A Flask-based personal expense tracker that lets users manage, view, and edit their daily expenses with a clean UI and session-based authentication.
| Layer | Technology |
|---|---|
| Backend | Python, Flask |
| ORM | SQLAlchemy |
| Migrations | Alembic |
| Database | SQLite |
| Frontend | HTML, CSS, JavaScript (Vanilla) |
| Auth | Flask session-based |
| Version Control | Git + GitHub |
track-expenses-app/
│
├── src/ # Flask app modules
│ ├── models/ # SQLAlchemy models
│ │ ├── user.py
│ │ ├── expense.py
│ │ └── categories.py
│ ├── login.py
│ ├── signup.py
│ ├── dashboard.py
│ ├── addexpense.py
│ ├── viewexpense.py
│ └── ...
│
├── templates/ # HTML templates
├── static/ # CSS, JS files
├── migrations/ # Alembic migration scripts
├── run.py # App entry point
├── requirements.txt # Python dependencies
└── .gitignore
git clone https://github.com/hiffenick/track-expenses-app.git
cd track-expenses-app
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
pip install -r requirements.txt
Create a .env file in the root directory:
SECRET_KEY=your_secret_key_here
DATABASE_URL=sqlite:///expenses.db
flask db upgrade
python run.py
Visit http://localhost:5000 in your browser.
This project uses Alembic for schema management. To create a new migration after model changes:
flask db migrate -m "describe your change"
flask db upgrade
Create a .env file based on this template:
SECRET_KEY=your_secret_key
DATABASE_URL=sqlite:///expenses.db
⚠️ Never commit your
.envfile. It is already listed in.gitignore.
Nikhil — @hiffenick
This project is open source and available under the MIT License.