Personal Expenses Tracker is a C++ application designed to help users manage their personal finances. Users can sign up, log in, add expenses, edit or delete them, and generate expense reports. The application saves expenses to a CSV file and supports multiple users.
- Sign Up: Register a new user with details including first name, last name, nickname, phone number, email ID, and password.
- Log In: Authenticate users using their nickname, email ID, or phone number along with their password.
- Add Expense: Add a new expense with details such as amount, category, date, and optional notes.
- Edit Expense: Modify the details of an existing expense.
- Delete Expense: Remove an expense from the list.
- Generate Report: Generate a report of expenses, showing total amount spent and categorized spending.
- C++ compiler (e.g., g++)
- Standard C++ library
-
Clone the repository:
git clone https://github.com/yourusername/personal-expenses-tracker.git cd personal-expenses-tracker
-
Compile the code:
g++ -o expenses_tracker main.cpp
-
Run the application:
./expenses_tracker
Upon running the application, you will be presented with a menu offering the following options:
- Sign Up: Register as a new user.
- Log In: Log in with your credentials.
- Add Expense: Add a new expense.
- Edit Expense: Edit an existing expense.
- Delete Expense: Delete an existing expense.
- Generate Report: Generate a report of your expenses.
- Exit: Exit the application.
Follow the prompts for each option to manage your expenses.
- User Struct: Stores user details.
- Expense Struct: Stores expense details.
- Functions:
displayMenu()
: Displays the main menu.signUp()
: Handles user registration.logIn()
: Handles user authentication.addExpense()
: Adds a new expense and saves it toexpenses.csv
.editExpense()
: Edits an existing expense.deleteExpense()
: Deletes an existing expense.generateReport()
: Generates a report of expenses.readExpenses()
: Reads expenses fromexpenses.csv
.displayExpenses()
: Displays a list of expenses.selectExpenseToEdit()
: Selects an expense to edit or delete.editExpenseDetails()
: Edits the details of an expense.writeExpenses()
: Writes expenses toexpenses.csv
.removeExpense()
: Removes an expense from the list.
Contributions are welcome! Please fork the repository and submit a pull request for review.
If you have any questions, feel free to contact me at [email protected].