Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
3 views20 pages

Kamlesh Sem Vi Report (Java Swing)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views20 pages

Kamlesh Sem Vi Report (Java Swing)

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

DAILY EXPENSES

Submitted in partial fulfilment of the requirements for the award of


the degree of B. Voc. in Software Development
Semester-VI

DEPARTMENT OF B. VOC. (SOFTWARE DEVEOPMENT)

Guide: Submitted by:

Dr. Kalyan C. Jagdale Kamlesh Chandrashekhar Asolkar

Roll No.:81205

Submitted To

P.D.E.A.’s
Prof. Ramkrishna More Arts, Commerce and Science College, Akurdi, Pune-44.
(AUTONOMOUS) Affiliated To

Savitribai Phule Pune University, Ganeshkhind, Pune-411033


P.D.E.A.’s

Prof. Ramkrishna More Arts, Commerce and Science College, Akurdi, Pune-44.
(AUTONOMOUS)

CERTIFICATE

This is to certify that this project entitled “DAILY EXPENSES” submitted in partial fulfilment of

the degree of BACHELOR IN VOCATION (Software Development) Semester-VI for the

academic year 2024-25 to the P.D.E.A.’s Prof. Ramkrishna More Arts, Commerce and Science

College, Akurdi, Pune-44 ( AUTONOMOUS ) through the Department of B. Voc. (Software

Development), done by Mr./Mrs. “Kamlesh Chandrashekhar Asolkar”, Roll No. 81205 is an

authentic work carried out by him/her at P.D.E.A.’s Prof. Ramkrishna More Arts, Commerce and

Science College, Akurdi, Pune-44 under my guidance. The matter embodied in this project work

has not been submitted earlier for award of any degree or diploma to the best of my knowledge

and belief.

Dr. Kalyan C. Jagdale Dr. Kalyan C. Jagdale

Project Guide Head of the Department

Internal Examiner External Examiner Principal


SELF CERTIFICATE

This is to certify that the project report entitled “DAILY EXPENSES” is done by

me is an authentic work carried out for the partial fulfilment of the requirements for

the award of the degree of B. Voc. in Software Development under the guidance of

Dr. Kalyan C. Jagdale. The matter embodied in this project work has not been

submitted earlier for award of any degree or diploma to the best of my knowledge

and belief.

Signature of the Student:

Name of the Student: Kamlesh C. Asolkar

Roll No:81205
ACKNOWLEDGEMENT

I take this occasion to thank God, almighty for blessing us with his grace and

taking our endeavour to a successful culmination. I extend my sincere and heartfelt

thanks to our esteemed guide, Dr. Kalyan C. Jagdale, for providing me with the

right guidance and advice at the crucial junctures and for showing me the right way.

I extend my sincere thanks to our respected Head of the division Dr. Kalyan C.

Jagdale, for allowing us to use the facilities available. I would like to thank the

other faculty members also, at this occasion. Last but not the least, I would like to

thank my friends and family for the support and encouragement they have given me

during the course of our work.

KAMLESH CHANDRASHEKHAR ASOLKAR


Index
1 Introduction

a. Existing System

b. Need for System

c. Objective & Scope of the Project

d. Details of Hardware & Software used

2 System Analysis & Design

a. Use Case Diagram

b. ERD (Entity Relationship Diagram)

c. DFD (Data Flow Diagram)

d. Class Diagram

e. Activity Diagram

f. Collaboration Diagram

g. Sequence Diagram

h. System Planning (PERT Chart if applicable)

i. Component and Deployment Diagram (if necessary)

3 Implementation

a. Input and Output Screen Design

b. Process involved

4 Printout of the Code Sheet

5 Future Enhancements and Conclusion


Introduction

Managing expenses efficiently is a crucial aspect of financial planning for

both individuals and businesses. Traditional methods of expense tracking,

such as maintaining handwritten records or using spreadsheets, can be

cumbersome and error-prone. The Expense Diary application aims to

provide a user-friendly, efficient, and automated solution for tracking

and analysing expenses.

This project is developed using Java and a suitable framework to create a

desktop or web-based application that allows users to log expenses,

categorize transactions, generate financial reports, and gain insights into

their spending patterns. By leveraging modern Java technologies, the

system will offer a secure, scalable, and intuitive expense management

experience.
Existing System
Currently, many individuals and businesses rely on traditional expense-

tracking methods, such as:

• Paper-based records, which are prone to damage and difficult to

manage.

• Spreadsheets, which require manual data entry and lack automation.

• Generic financial software, which may be overly complex or

expensive.

These existing systems often fail to provide real-time tracking,

automation, and insightful analytics, making financial management time-

consuming and inefficient.


Need for System
A dedicated Expense Diary application is needed to address these
challenges by:
• Providing an easy-to-use digital platform for tracking expenses.

• Automating the categorization and analysis of financial data.


• Offering reporting and visualization tools to help users make
better financial decisions.
• Ensuring data security through proper authentication and storage
mechanisms.
Objective & Scope of the Project

Objective
The objective of this project is to design and develop a Java-based
expense tracking application that simplifies personal and business
financial management. It will offer features such as expense logging,
filtering, analytics, budgeting tools, and report generation.
Scope
• Development of a desktop/web-based application using a Java
framework.

• Implementation of a user-friendly interface for seamless interaction.


• Secure database storage for expense records (MySQL, PostgreSQL, or
SQLite).
• Features such as multi-user support, financial reports, and data
export options.
• Future enhancements including AI-driven financial insights and
cloud synchronization.
Details of Hardware & Software used

Hardware Requirements

• Processor: Minimum Intel i3 or equivalent

• RAM: At least 4GB

• Storage: Minimum 20GB of free space

• Operating System: Windows/Linux/MacOS

Software Requirements

• Programming Language: Java

• Framework: (Spring Boot / JavaFX / Hibernate) (Choose based on


your project needs)

• Database: MySQL / PostgreSQL / SQLite

• Development Environment: IntelliJ IDEA / Eclipse / NetBeans


USE CASE DIAGRAM

CLASS DIAGRAM
ACTIVITY DIAGRAM

SEQUENCE DIAGRAM
Implementation

Opening Window

Add Monthly Salary


Add Expense Description and Amount

Save Excel File


Code Sheet
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

class Expense {
private String description;
private double amount;
private String dateTime;

public Expense(String description, double amount, String dateTime) {


this.description = description;
this.amount = amount;
this.dateTime = dateTime;
}

public String getDescription() {


return description;
}

public double getAmount() {


return amount;
}

public String getDateTime() {


return dateTime;
}
}

public class DailyExpensesDiary {


private JFrame frame;
private JTextField descriptionField, amountField, salaryField, remainingSalaryField;
private JTable expenseTable;
private DefaultTableModel tableModel;
private ArrayList<Expense> expenses;
private double monthlySalary = 0;

public DailyExpensesDiary() {
expenses = new ArrayList<>();

frame = new JFrame("Daily Expenses Diary");


frame.setSize(600, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());

JPanel inputPanel = new JPanel(new GridLayout(4, 2, 5, 5));


inputPanel.add(new JLabel("Monthly Salary:"));
salaryField = new JTextField();
inputPanel.add(salaryField);
JButton setSalaryButton = new JButton("Set Salary");
inputPanel.add(setSalaryButton);
inputPanel.add(new JLabel("Expense Description:"));
descriptionField = new JTextField();
inputPanel.add(descriptionField);
inputPanel.add(new JLabel("Amount:"));
amountField = new JTextField();
inputPanel.add(amountField);

inputPanel.add(new JLabel("Remaining Salary:"));


remainingSalaryField = new JTextField();
remainingSalaryField.setEditable(false);
inputPanel.add(remainingSalaryField);

JPanel buttonPanel = new JPanel(new GridLayout(1, 3, 5, 5));


JButton addButton = new JButton("Add Expense");
JButton saveButton = new JButton("Save to Excel");
buttonPanel.add(addButton);
buttonPanel.add(saveButton);

String[] columnNames = {"Date/Time", "Description", "Amount"};


tableModel = new DefaultTableModel(columnNames, 0);
expenseTable = new JTable(tableModel);

frame.add(inputPanel, BorderLayout.NORTH);
frame.add(new JScrollPane(expenseTable), BorderLayout.CENTER);
frame.add(buttonPanel, BorderLayout.SOUTH);
setSalaryButton.addActionListener(e -> setSalary());
addButton.addActionListener(e -> addExpense());
saveButton.addActionListener(e -> saveToExcel());

amountField.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
addExpense();
}
}
});

salaryField.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
setSalary();
}
}
});

frame.setVisible(true);
}

private void setSalary() {


try {
monthlySalary = Double.parseDouble(salaryField.getText());
updateRemainingSalary();
JOptionPane.showMessageDialog(frame, "Monthly Salary set successfully!");
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(frame, "Please enter a valid salary amount.",
"Error", JOptionPane.ERROR_MESSAGE);
}
}

private void addExpense() {


String description = descriptionField.getText();
double amount;
try {
amount = Double.parseDouble(amountField.getText());
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(frame, "Please enter a valid amount.", "Error",
JOptionPane.ERROR_MESSAGE);
return;
}

String dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new


Date());
expenses.add(new Expense(description, amount, dateTime));
tableModel.addRow(new Object[]{dateTime, description, amount});
descriptionField.setText("");
amountField.setText("");
updateRemainingSalary();
JOptionPane.showMessageDialog(frame, "Expense added successfully!");
}

private void updateRemainingSalary() {


double totalExpenses = 0;
for (Expense expense : expenses) {
totalExpenses += expense.getAmount();
}
double remaining = monthlySalary - totalExpenses;
remainingSalaryField.setText("RS " + remaining);
}
private void saveToExcel() {
try {
File file = new File("Expenses.csv");
FileWriter writer = new FileWriter(file);
writer.write("Date/Time,Description,Amount,Salary,Remaining Balance\n");
double remainingBalance = monthlySalary;
for (Expense expense : expenses) {
remainingBalance -= expense.getAmount();
writer.write(expense.getDateTime() + "," + expense.getDescription() + "," +
expense.getAmount() + "," + monthlySalary + "," + remainingBalance + "\n");
}
writer.close();
JOptionPane.showMessageDialog(frame, "Expenses saved to Expenses.csv
successfully!");
} catch (IOException e) {
JOptionPane.showMessageDialog(frame, "Error saving file.", "Error",
JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) { new DailyExpensesDiary();
}
}
Future Enhancements
The Expense Diary System can be further improved with the
following enhancements:
1. AI-Based Expense Analysis
o Implement machine learning algorithms to analyze
spending patterns and provide insights for better financial
planning.
2. Integration with Bank Accounts
o Allow users to sync their bank accounts for automatic
transaction tracking.
3. Multi-User Collaboration
o Enable shared expense tracking for families, businesses, or
teams.
4. Voice Input and OCR for Receipts
o Implement voice commands and Optical Character
Recognition (OCR) to automatically capture expenses from
receipts.
5. Cloud Backup and Cross-Platform Support
o Ensure data is securely stored in the cloud, allowing access
from multiple devices.
6. Budgeting and Forecasting
o Introduce features that help users set budgets and predict
future expenses.
7. Export to PDF/Excel

o Provide advanced reporting options for exporting expense


reports in various formats.
Conclusion
The Expense Diary System is designed to simplify personal
finance management by allowing users to efficiently track,
manage, and analyze their expenses. With features like expense
logging, report generation, and financial insights, the system
serves as a valuable tool for budget-conscious individuals.

Future enhancements will further improve its usability,


automation, and intelligence, making financial management
even more seamless. This project lays the foundation for a more
advanced expense-tracking solution that can evolve based on
user needs and technological advancements.

You might also like