Roll No. | Name | PRN | Role |
---|---|---|---|
1 | Aadi Joshi | 12414579 | Transaction Management and Colors |
2 | Sachin Aage | 12411942 | Documentation and Testing Specialist |
3 | Sujal Shahane | 12414560 | Debugging and Error Resolution |
4 | Shaikh Anas | 12412236 | Reporting and Analysis Developer |
5 | Shambhavi Verma | 12413626 | Color and UI Developer |
6 | Manav Sharma | 12412516 | Authentication Module Developer |
A C-based Personal Finance Tracker that allows users to manage their financial transactions with features like authentication, transaction management, reporting, and statistical analysis.
- User Authentication: Sign-in, registration, and user verification.
- Transaction Management: Add, view, edit, and delete transactions.
- Reporting: Generate financial reports.
- Statistical Analysis: Analyze financial trends with mean, variance, and standard deviation.
- Data Visualization: Visualize transactions using matrix representation.
- Cross-Platform Compatibility: Works on different operating systems.
Handles user authentication with functions for sign-in, registration, and user verification. Uses file I/O for storing user credentials in CSV format, implements basic string operations and input validation. Core functions: signIn()
, registerUser()
, authenticateUser()
.
Contains ANSI escape code definitions for terminal color output. Implements defines for RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, and RESET colors. Used throughout the application for visual feedback.
Program entry point and core structure definitions. Defines User and Transaction structs, handles the main menu loop, and coordinates between authentication and transaction modules. Uses standard C libraries (stdio.h
, stdlib.h
, string.h
, math.h
).
Core transaction management functionality with functions for CRUD operations, sorting, searching, and analysis. Implements file I/O for transaction storage, statistical calculations, and data visualization through matrix representation. Key functions include addTransaction()
, viewTransactions()
, generateReport()
, analyzeTrends()
.
Utility functions for input handling, screen clearing, color printing, and menu display. Implements cross-platform compatibility for screen clearing and input buffer management.
- Statistical Analysis: Mean, Variance, Standard Deviation
- Sorting: Bubble Sort (transactions by amount), Selection Sort (by date)
- Matrix Operations: 2D array for transaction visualization
- File I/O: Binary and text file operations
- Recursion: Total calculation
- Data Structures: Structs, Arrays
- Search Algorithms: Linear search for transactions
To compile the project and create an executable, follow these steps:
- Ensure you have a C compiler installed (e.g.,
gcc
). - Open a terminal or command prompt.
- Navigate to the directory containing your project files.
- Run the following command to compile the source files into an executable:
gcc -o finance_tracker main.c auth.c transactions.c utils.c
This will generate an executable named finance_tracker
.
When entering your password during sign-in or registration, the input will be masked with asterisks (*) for security. To toggle the visibility of the password, press the 'Tab' key while typing your password.
-
Transaction Management Developer: (Aadi Joshi)
- Overall project coordination and integration.
- Responsible for
transactions.c/h
,utils.c/h
,colors.c/h
. - Implements CRUD (Create, Read, Update and Delete) operations for transactions.
- Develops functions for sorting, searching, and analyzing transactions.
- Manages file I/O for transaction storage and statistical calculations.
-
Authentication Module Developer: (Manav Sharma)
- Responsible for
auth.c/h
. - Implements user authentication functions: sign-in, registration, and user verification.
- Manages file I/O for storing user credentials in CSV format.
- Ensures input validation and security measures.
- Responsible for
-
Debugging and Error Resolution: (Sujal Shahane)
- Finds errors in the .exe file (at execution)
- Resolves these errors and lets the others know
- Ensures all modules work together seamlessly.
-
Reporting and Analysis Developer: (Shaikh Anas)
- Works closely with the Transaction Management Developer.
- Focuses on generating financial reports and analyzing financial trends.
- Implements statistical analysis functions: mean, variance, and standard deviation.
- Develops data visualization using matrix representation.
-
Color and UI Developer and main.c: (Shambhavi Verma)
- Responsible for
main.c
andmain.h
. - Handles the main menu loop and coordinates between authentication and transaction modules.
- Ensures visual feedback throughout the application.
- Maintains the main.c and main.h files and updates them according to the changes made by other members.
- Responsible for
-
Documentation and Testing Specialist: (Sachin Aage)
- Ensures comprehensive documentation of the project.
- Writes and maintains the README.md file.
- Develops test cases for all modules.
- Conducts thorough testing to ensure the application is bug-free and meets requirements.