Skip to content

The FinTrack - "Expense and Budget Analyzer" is a command-line interface (CLI) application developed in C Language that helps users track, analyze, and manage their personal finances. It allows users to input and categorize their daily expenses, set budget limits, and receive personalized feedback on their spending habits.

License

Notifications You must be signed in to change notification settings

vivek081202/FinTrack-Expense_and_Budget_Analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FinTrack: Expense and Budget Analyzer

image


🌟 Overview

FinTrack is a robust and user-friendly Expense and Budget Analyzer designed to help individuals effectively manage their finances. With a clean and intuitive interface, FinTrack allows you to:

  • Track daily expenses.
  • Analyze spending patterns.
  • Set and manage budgets.
  • Gain financial insights to achieve better savings goals.

Whether you are saving for your next big purchase or simply keeping an eye on your monthly expenses, FinTrack is your go-to solution!


πŸ› οΈ Key Features

✨ Expense Tracking: Log and categorize your daily expenses effortlessly.
✨ Budget Management: Set budgets for various categories and track your spending against them.
✨ Data Visualization: View insightful charts and graphs to analyze your spending habits.
✨ Customizable Categories: Tailor expense categories to fit your unique needs.
✨ Secure Data Storage: Ensures your financial data remains private and secure.


πŸ“Έ Screenshots

  • Dashboard:
    image image image

  • Expense Input Form:
    image

  • Budget Analysis (Other User):
    image image


πŸš€ Getting Started

Follow these steps to set up and run FinTrack on your local machine:

Prerequisites

Ensure you have the following installed:

  • A C Compiler (e.g., GCC, Clang, MinGW).

Installation

  1. Clone this repository:

    git clone https://github.com/vivek081202/FinTrack-Expense_and_Budget_Analyzer.git
  2. Navigate to the project directory:

    cd FinTrack-Expense_and_Budget_Analyzer
  3. Install the dependencies: To make your terminal correctly interpret ANSI escape codes without needing registry edits or complex setup, you can use Windows Terminal or Git Bash, which support ANSI escape sequences by default. If you still want to stick to the Windows Command Prompt and improve the experience, here’s another way:

    Using chcp Command Run the following command before executing your C program:

    chcp 65001

Running the Application

  1. Run the application (FinTrack\src\output):
    g++ main.exe
  2. Access the application in your CLI-based interface.

πŸ”§ Tech Stack

  • Programming Language: C
  • Header Files:
    • fintrack.h: Contains function prototypes, constants, and structures for managing expenses and budgets.
    • beautifulConsole.h: Provides color-coded console output for better user experience.
    • Standard C libraries:
      • <stdio.h>: For input/output operations.
      • <stdlib.h>: For dynamic memory allocation.
      • <string.h>: For string handling.
      • <time.h>: For date and time processing.
      • <unistd.h>: For sleep functionality in animations (Linux/macOS support).
      • <direct.h>: For directory operations (Windows-specific).

πŸ“š Core Data Structures and Algorithms

The FinTrack program leverages several fundamental data structures and algorithms to efficiently manage and analyze expenses:

1. Merge Sort

  • Purpose: Sort expenses by their amounts in ascending order.
  • Implementation:
    • The mergeSort function recursively splits the list of expenses into smaller subarrays, sorts them, and merges them back into a single sorted list.
  • Key Files:
    • fintrack.h: Contains the mergeSort and merge functions.
    • Usage in program: Sorting expenses for display and binary search.

2. Binary Search

  • Purpose: Efficiently search for a specific expense amount within a sorted list of expenses.
  • Implementation:
    • After sorting expenses using merge sort, the binarySearchByAmount function performs a logarithmic search to quickly locate the target amount.
  • Key Files:
    • fintrack.h: Implements the binary search logic.
    • Usage in program: Search expenses by amount.

3. Stack (Simulated)

  • Purpose: Manage fixed-size arrays for temporary storage during operations like merging and sorting.
  • Implementation:
    • The program uses arrays (like in the mergeSort function) as a stack-like structure to temporarily hold intermediate data during sorting.
  • Key Details:
    • Maximum size for arrays is defined as MAX_STACK_SIZE.
    • Core usage: Memory management for sorting operations.

4. File-Based Persistent Storage

  • Purpose: Store and retrieve user-specific expenses and budgets.
  • Implementation:
    • The program reads and writes data to text files (user_data.txt and <username>_data.txt), allowing persistent tracking across sessions.
    • Temporary files (like temp_data.txt) are used for updates (e.g., clearing budgets or expenses).
  • Key Operations:
    • Budget and expense data manipulation.
    • Report generation by parsing stored data.

🌈 Future Enhancements

Here’s what’s next on the roadmap:

  • Integration with bank APIs for automatic expense tracking.
  • Advanced AI-powered insights and predictions.
  • Multi-language support.
  • Mobile-friendly version.

πŸ“œ License

This project is licensed under the MIT License. See the LICENSE file for details.


πŸ“¬ Contact

For any inquiries or feedback, feel free to reach out:

About

The FinTrack - "Expense and Budget Analyzer" is a command-line interface (CLI) application developed in C Language that helps users track, analyze, and manage their personal finances. It allows users to input and categorize their daily expenses, set budget limits, and receive personalized feedback on their spending habits.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages