GithubHelp home page GithubHelp logo

thizizzen / expense-tracker Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 199 KB

Introducing our Expense Tracker – a Python app simplifying personal finance. With a user-friendly interface and modularity, effortlessly manage expenses and promote financial well-being.

Python 100.00%
expenses-tracker python sustainable-development-goals sqlite3

expense-tracker's Introduction

Expense Tracker

Expense Tracker is a desktop application that aligns with SDG#1, SDG#8 and SDG#12 designed to help you manage your expenses effectively. This README provides detailed instructions and insights into the project.

Overview

The Expense Tracker allows users to record and track their spending by category. The application provides a user-friendly interface for adding, viewing, searching, and managing expense records. Additionally, it offers graphical representation of expenses by category through interactive graphs.

Features

Record Management:

• Add new records to the expense table.

• Delete records in the expense table.

• View all recorded expenses.

• Search for specific records by title, price, or category.

Graphical Representation:

• Visualize expenses through interactive graphs.

• Categories are represented for a clear overview of spending patterns.

Error Handling:

• The application provides error messages for blank fields, incorrect text lengths, and invalid inputs.

Technologies Used

Python: The primary programming language.

Pandas: Used for data manipulation and analysis.

Plotly: Enables the creation of interactive and visually appealing graphs.

SQLite3: The database management system for storing expense records.

Tkinter and ttkbootstrap: Provide the graphical user interface for the desktop application.

Screenshots of the Program

Starting Page: image

Main Page: image

Graphing Page: image

Implementation

DRY Method (Don't Repeat Yourself):

In our code, We embrace the DRY principle to avoid code duplication. Take, for example, the create_treeview function in main.py. It's designed to instantiate and configure a Treeview widget, consolidating the widget creation logic in one place for efficient reuse. This not only streamlines the code but also enhances maintainability.

OOP Principles (Object-Oriented Programming):

We incorporated object-oriented programming (OOP) principles by introducing the Budget class to manage interactions with the database. Creating an instance, such as budget = Budget(), enables the use of dot notation to access methods and properties seamlessly across the codebase.

Simplicity and Robustness:

We prioritize simplicity for clarity and maintainability, ensuring each code block serves a specific purpose. While basic error handling is in place using messagebox.showwarning, there's room for further enhancements to fortify the code's robustness. The aim is a balanced approach, making the application both easy to understand and resilient.

Self Assessment

Metric 4 3 2 1
Code Reusability
Maintainability
Scalability
Execution
Originality
Overall Impression

Group Assessment

SR-CODE MEMBER GRADE CONTRIBUTION
21-02313 OCAMPO, ZHENREL 34% Lead Programmer
20-58433 BON, PETER AMADOR 22% Troubleshooter
21-58727 HERILLA, LAURENCE 22% Debugger
21-02154 CASTILLO, KHASTIN 22% Beta Tester
TOTAL 100%

License

This project is licensed under the MIT License.

expense-tracker's People

Contributors

thizizzen avatar

Stargazers

Victor Essien avatar  avatar

Watchers

 avatar

Forkers

sinmurasaki

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.