Track Finance is a personal finance management application that helps you monitor your expenses, track your income, and take control of your financial journey.
- Transaction Management: Track your income and expenses
- Category Organization: Organize transactions by categories
- Brand Tracking: Monitor spending by brands/vendors
- Dashboard: Get an overview of your financial status
- User Management: Secure user accounts with profile management
- Responsive Design: Works on desktop and mobile devices
- Backend: Python/Flask
- Database: SQLAlchemy (SQL)
- Frontend: Bootstrap 5
- Authentication: Flask-Login
- Forms: Flask-WTF
- Date/Time: Flask-Moment
- Icons: Font Awesome
- Clone the repository
git clone https://github.com/ZekeriyaAY/track-finance.git
cd track-finance
- Create and activate virtual environment
python3 -m venv env
source env/bin/activate
- Install dependencies
pip install -r requirements.txt
- Initialize the database
flask db upgrade
- Run the application
flask run
The application will be available at http://localhost:5000
track-finance/
├── app/ # Application package
│ ├── errors/ # Error handling blueprint
│ ├── main/ # Main pages blueprint
│ ├── user/ # User management blueprint
│ ├── category/ # Category management blueprint
│ ├── brand/ # Brand management blueprint
│ ├── transaction/ # Transaction management blueprint
│ ├── dashboard/ # Dashboard blueprint
│ ├── static/ # Static files (CSS, JS)
│ │ └── style.css
│ └── templates/ # Jinja2 templates
│ └── partials/ # Reusable template parts
├── migrations/ # Database migrations
├── logs/ # Application logs
├── .flaskenv # Flask environment variables
├── config.py # Application configuration
├── requirements.txt # Python dependencies
└── main.py # Application entry point
Each blueprint (user
, category
, etc.) follows a similar structure:
blueprint/
├── __init__.py # Blueprint initialization
├── routes.py # Route handlers
├── forms.py # WTForms classes
└── templates/ # Blueprint-specific templates
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the GPLv3 License - see the LICENSE file for details.
Version: 0.0.1
Created by: ZekeriyaAY