Skip to content

varshini-1396/Expense-Tracker-and-Splitter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MoneyMate - Personal Finance Tracker

Python Version Flask Version License

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.

Features

  • 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

Recent Improvements

  • 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

Prerequisites

  • Python 3.x
  • MySQL Server
  • pip (Python package manager)

Installation

  1. Clone the repository:

    git clone https://github.com/varshini-1396/moneymate.git
    cd moneymate
  2. Create a virtual environment:

    python -m venv venv
  3. Activate the virtual environment:

    • Windows:
      venv\Scripts\activate
    • Unix/MacOS:
      source venv/bin/activate
  4. Install dependencies:

    pip install -r requirements.txt
  5. 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
      

Usage

  1. Start the application:

    python app.py
  2. Open your browser and navigate to:

    http://localhost:5000
    

API Documentation

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

Project Structure

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

Technologies Used

  • 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)

Mobile Responsiveness

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

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and follow the existing code style.

License

This project is licensed - see the LICENSE file for details.

Acknowledgements

Support

If you encounter any issues or have questions, please open an issue in the GitHub repository.

About

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors