Skip to content

Modern database management system uses advanced datastructures like B+ Trees, which are closely related, and extension rather, to B-Trees. The motive of this project was to implement the CRUD operations for B Trees and make a practically useful system, applying the knowledge of data structures and algorithms to optimize wherever possible.

Notifications You must be signed in to change notification settings

Joshi-Atharva/Expense-Tracking-system-using-BTrees

Repository files navigation

Expense-Tracking-system-using-BTrees

Overview

Modern database management system uses advanced datastructures like B+ Trees, which is closely related, and extension rather, to B-Trees. The motive of this project was to implement the CRUD operations for B Trees and make a practically useful system, applying the knowledge of data structures and algorithms to optimize wherever possible.

Written completely in C language, the menu-driven program helps in tracking expenses of individual users or a family of atmost 4 users. It allows users to add, delete and systematically access expenses. More features like that of getting sorted category-wise total monthly expense, income-expense disparity of family, highest expense day of a family, range-search etc are added and optimized, while inculcating best-practices of programming and input validation at each step. Additionally, the program is integrated with file handling feature to extract data from text files.

Features

User management

  • Add New Users with a Unique UserID, username, income, expense and family ID if provided. UserID and familyID can n either be entered by the user or else a new one can be generated by the program. A family is created for every individual so that all the functions that apply to a family can also be used for a user. The records of users are sorted by the program using appropriate Insertion and shifting, everytime a user or expense is added to help in systematic and fast storage and retreival of data.
  • Delete or update existing user or family details, all the related field are updated by the program.

Operations on expense data

  • Get categorical expense: Prints the total family expense for the given FamilyID and expense category ( example: Rent, Utility, Grocery, etc. ) and also shows individual contribution of each member of the family to that category in a sorted manner.
  • Get individual expense: Prints total individual expense for the month for the given UserID. Also prints the user's expense in each category in a sorted manner.
  • Get highest expense day: Tracks all the expenses of the given family and prints the date on which highest amount in spent.
  • Income-Expense disparity: For a given family, it prints the total expense of the family. It also prints whether the family's total expense is within the net income of the family and prints the difference between them.
  • Range Search: Functionality of range-search is provided, allowing users to retrieve expenses within given dates, or to retrieve expenses of a user within the provided expense id range.

About

Modern database management system uses advanced datastructures like B+ Trees, which are closely related, and extension rather, to B-Trees. The motive of this project was to implement the CRUD operations for B Trees and make a practically useful system, applying the knowledge of data structures and algorithms to optimize wherever possible.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published