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!
β¨ 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.
Follow these steps to set up and run FinTrack on your local machine:
Ensure you have the following installed:
- A C Compiler (e.g., GCC, Clang, MinGW).
-
Clone this repository:
git clone https://github.com/vivek081202/FinTrack-Expense_and_Budget_Analyzer.git
-
Navigate to the project directory:
cd FinTrack-Expense_and_Budget_Analyzer
-
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
- Run the application (FinTrack\src\output):
g++ main.exe
- Access the application in your CLI-based interface.
- 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).
The FinTrack program leverages several fundamental data structures and algorithms to efficiently manage and analyze expenses:
- 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.
- The
- Key Files:
fintrack.h
: Contains themergeSort
andmerge
functions.- Usage in program: Sorting expenses for display and 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.
- After sorting expenses using merge sort, the
- Key Files:
fintrack.h
: Implements the binary search logic.- Usage in program: Search expenses by amount.
- 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.
- The program uses arrays (like in the
- Key Details:
- Maximum size for arrays is defined as
MAX_STACK_SIZE
. - Core usage: Memory management for sorting operations.
- Maximum size for arrays is defined as
- 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).
- The program reads and writes data to text files (
- Key Operations:
- Budget and expense data manipulation.
- Report generation by parsing stored data.
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.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or feedback, feel free to reach out:
- Developer: Vivek Kumar Singh
- Email: vihixi50@gmail.com
- GitHub: @vivek081202