A web-based personal finance management system that helps users track their expenses, income, and manage their budget effectively. Perfect for both personal finance management and group expense tracking.
- Transaction Management (Income & Expenses)
- Category-based Expense Tracking
- Statistical Analysis with Charts
- Advanced Group Expense Splitting
- Create and manage multiple groups
- Split bills equally or custom ratios
- Track group balances and settlements
- Real-time settlement suggestions
- User Profile Management
- Secure User Authentication
- Budget Planning and Tracking
- Mobile Responsiveness: Optimized for all screen sizes
- Improved Navigation: Streamlined access to key features
- Real-time Updates: Instant feedback on actions
- Error Handling: Better user feedback and error messages
- Python 3.x
- MySQL Server
- pip (Python package manager)
-
Clone the repository:
git clone https://github.com/varshini-1396/moneymate.git cd moneymate -
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
- Windows:
venv\Scripts\activate
- Unix/MacOS:
source venv/bin/activate
- Windows:
-
Install dependencies:
pip install -r requirements.txt
-
Configure MySQL Database:
- Create a MySQL database named 'moneymate'
- Update the .env file with your MySQL credentials:
DATABASE_URL=mysql://username:password@localhost/moneymate SECRET_KEY=your_secret_key_here
-
Start the application:
python app.py
-
Open your browser and navigate to:
http://localhost:5000
The application provides the following main endpoints:
/- Home page/login- User login/register- User registration/dashboard- User dashboard/transactions- Transaction management/statistics- View transaction statistics and spending analytics/groups- Group expense management/profile- User profile management
moneymate/
├── static/ # CSS, JavaScript, and static files
├── templates/ # HTML templates
├── app.py # Main application file
├── .env # Environment configuration
├── requirements.txt # Project dependencies
└── README.md # This file
- Flask (Python web framework)
- Flask-SQLAlchemy (Database ORM)
- Flask-Login (User authentication)
- Flask-Bcrypt (Password hashing)
- MySQL (Database)
- HTML/CSS
- JavaScript
- Python-dotenv (Environment configuration)
- WTForms (Form handling and validation)
- Gunicorn (Production server)
The application is fully responsive and optimized for:
- Smartphones
- Tablets
- Desktop computers
Key mobile optimizations:
- Touch-friendly interfaces
- Responsive layouts
- Optimized performance
- Readable text and properly sized elements
- 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
Please make sure to update tests as appropriate and follow the existing code style.
This project is licensed - see the LICENSE file for details.
- Flask - The web framework used
- SQLAlchemy - SQL toolkit and ORM
- Flask-Login - User session management
- Flask-Bcrypt - Password hashing
- WTForms - Form handling
If you encounter any issues or have questions, please open an issue in the GitHub repository.