Console-Based Java Expense Tracker
with Login System
Mini Project Report
Submitted by: NIDHI A
Branch: Computer Science / BCA
Year: 2025
1. Abstract
This project is a console-based Expense Tracker developed using Java. It allows users to log
in securely and manage personal expenses by adding titles, amounts, and dates. All expense
data is stored in a local file, enabling persistent storage even after the program exits. This
project demonstrates Java fundamentals like file handling, object-oriented programming,
and user interaction via the console.
2. Objective
The main objective of this project is to build a simple, secure, and user-friendly console-
based application to track daily expenses and understand how Java can be used for real-
world applications.
3. Technologies Used
- Programming Language: Java
- Environment: GitHub Codespaces / IntelliJ IDEA
- File Handling: Text File (expenses.txt)
4. System Design
The system is composed of four main classes:
- Main.java: Entry point and menu interface
- UserManager.java: Handles login validation
- Expense.java: Model class representing an expense
- ExpenseManager.java: Business logic for adding, viewing, and totaling expenses
5. Features
- User login with fixed credentials
- Add expenses with title, amount, and date
- View all added expenses
- Calculate total expenses
- Persistent storage using file system
6. Code Modules Explained
1. Main.java – Provides menu options and handles user input.
2. UserManager.java – Validates login using hardcoded username/password.
3. Expense.java – Represents an individual expense as an object.
4. ExpenseManager.java – Reads and writes data to 'expenses.txt', handles logic.
7. Sample Input/Output
Input:
Username: admin
Password: 1234
Choice: 1
Title: Groceries
Amount: 500
Date: 2025-07-24
Output:
Expense added.
Choice: 2
Title: Groceries, Amount: ₹500, Date: 2025-07-24
8. Conclusion
This Java mini project provided practical experience in developing a full-featured console
application. It reinforced the importance of clean code structure, file operations, and the
basics of secure user input handling.
9. Future Enhancements
- Add support for multiple user accounts
- Add graphical user interface using JavaFX or Swing
- Export reports to PDF or Excel
- Monthly/Category-based analytics
- Password hashing and file encryption