A comprehensive personal finance management application built with Flask.
- User Authentication: Secure registration and login system with password hashing
- Bill Management: Add, view, and edit bills with categories and recurring payment options
- Credit Card Tracking: Manage credit card information including limits, balances, and due dates
- Dashboard Overview: Quick view of urgent bills and credit card summaries
- Clickable Editing: Edit bills and credit cards directly from the dashboard
- Flat Design Interface: Clean, modern UI with minimal visual clutter
- Responsive Design: Works well on desktop and mobile devices
- Clone the repository
- Install dependencies:
pip install -r requirements.txt - Run the application:
python Vance_Financial_Assistant.py - Visit:
http://localhost:5001
- Create a Heroku app:
heroku create your-app-name - Set environment variables:
heroku config:set SECRET_KEY=your-secret-key heroku config:set FLASK_ENV=production - Deploy:
git push heroku main
- Build:
docker build -t vance-finance . - Run:
docker run -p 5000:5000 vance-finance
- Install dependencies:
pip install -r requirements.txt - Set environment variables
- Run with gunicorn:
gunicorn wsgi:app
SECRET_KEY: Secret key for session managementDATABASE_URL: Database connection stringFLASK_ENV: Set to 'production' for production deploymentPORT: Port number (default: 5000)
Visit /demo to try the application with sample data.
- Backend: Python Flask
- Database: SQLite with SQLAlchemy ORM
- Frontend: HTML5, CSS3, JavaScript
- Styling: Bootstrap 5 with custom flat design CSS
- Icons: Bootstrap Icons
- Python 3.7 or higher
- pip (Python package manager)
-
Clone or download the project files
-
Install required dependencies pip install flask flask-sqlalchemy werkzeug
-
Run the setup script to create static folder structure python static_setup.py
-
Start the application python Vance_Financial_Assistant.py
-
Access the application: Open your web browser and navigate to
http://localhost:5001
- Register an Account: Visit the registration page to create your user account
- Login: Use your credentials to access the application
- Add Bills: Navigate to the Bills page to add your recurring and one-time bills
- Add Credit Cards: Use the Credit Cards page to track your credit card information
- View Dashboard: Monitor urgent bills and credit card summaries from the main dashboard
- Urgent Bills: Shows bills due within the next 7 days
- Credit Card Summary: Overview of your credit cards and balances
- All Upcoming Bills: Complete list of your upcoming bills
- Clickable Rows: Click on any bill or credit card to edit it directly
- Add bills with categories (Utilities, Housing, Insurance, Subscription, Other)
- Set recurring payment flags
- Track due dates and amounts
- Edit bills by clicking on them in the dashboard or bills page
- Track card name/issuer and last 4 digits
- Monitor credit limits and current balances
- Set interest rates and payment due dates
- Edit card information directly from the dashboard or credit cards page
- Flask application setup and configuration
- Database models and relationships
- User authentication routes
- Bill and credit card management routes
- Edit functionality for dashboard interaction
base.html: Common layout with navigation and Bootstrap setuplogin.html: User authentication formregister.html: New user registration formdashboard.html: Main overview with clickable editingbills.html: Bill management interfacecredit_cards.html: Credit card management interface
style.css: Custom flat design stylesscript.js: JavaScript for enhanced interactions
- Modern browsers (Chrome, Firefox, Safari, Edge)
- Bootstrap 5 compatibility requirements
- JavaScript ES6+ features used
/- Dashboard (redirects to login if not authenticated)/login- User authentication/register- User registration/dashboard- Main dashboard view/bills- Bill management/credit-cards- Credit card management/edit/bill/<id>- Edit bill (POST only)/edit/card/<id>- Edit credit card (POST only)/logout- User logout
- One-to-many: User → Bills
- One-to-many: User → Credit Cards
- Foreign key constraints ensure data integrity
This project is for personal use. Modify and distribute as needed for personal financial management.
Potential improvements could include:
- Data export functionality (CSV, PDF)
- Spending analytics and charts
- Bill payment reminders
- Mobile app development
- Cloud deployment options
- Enhanced security features
- Multi-currency support
- Bulk import/export capabilities
- Search and filtering options
- Data backup and restore