0% found this document useful (0 votes)
46 views27 pages

Ajp Micro Project

Uploaded by

Swara Sakhare
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)
46 views27 pages

Ajp Micro Project

Uploaded by

Swara Sakhare
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/ 27

A

Microproject Report
on
Employee Leave Management System
Under Course : - Advanced Java Programming(22517)

Semester : - V

Maharashtra State Board of Technical Education, Mumbai

Department of Information Technology Engineering

Matoshri Aasarabai Polytechnic, Eklahare, Nashik


Academic Year: 2024-2025
Maharashtra State Board of Technical Education, Mumbai
Matoshri Aasarabai Polytechnic, Eklahare, Nashik

CERTIFICATE

This is to certify that following students of Fifth Semester Diploma Engineering


Program in IT Department have successfully completed the Micro-
Project "Employee Leave Management System" under my supervision, in the partial
fulfillmentof Course Advanced Java Programming (22517) for Academic Year 2024-
2025 as per prescribed in the MSBTE “ I-Scheme” curriculum.

Roll No Enrollment No. Exam Seat Number Name of Students

42 2211700319 Swara Yogesh Sakhare


44 2211700321 Mayuri Vijay Salve
50 2211700328 Snehal Somnath Shinde

Date:- Place:- Nashik.

Subject Teacher Head of Department Principal


(Prof.Mrs.Gadakh) (Prof. M.P.Bhandakkar (Dr.A.S.Relakar)
Department of Information Technology Engineering

Academic Year-2024-2025
Index of Micro Project Report

Program:- Information technology Semester:-5th

Course:-Advanced Java Programming Course Code:-22517

Title of Micro Project :- Employee Leave Management System

Sr.
No. Details Page No.

1
1 Abstract

2
2 Project Work

4
3 Project Work (Main Details)

6
4 Code

18
5 Project Work (Conclusion)

19
6 Resources/ References

Signature of Student Signature of Faculty


MATOSHRI AASARABAI POLYTECHNIC, EKLAHARE, NASHIK

ANNEXURE I

Rubric for Evaluation of Micro Project of AJP(22517)

Title of Micro Project:- Employee Leave Management System

Group Members:-

Sr.No. Roll Enrollment Seat No. Name of Candidates


No. No
1 42 2211700319 Swara Yogesh Sakhare
2 44 2211700321 Mayuri Vijay Salve
3 50 2211700328 Snehal Somnath Shinde

Marks Indicators for different level of Performance (Evaluation Scale 1 to 10)


Sr Criteria Obtained
(Out of10) Poor (1-3) Average(4-7) Good(8- 10)
No

Relevance to Related to very few


1 Related to at least one CO Adressed at lease one CO
the course Los
Content of Not relevant and Relevant and sufficient for Relevant , sufficient for
2 project sufficient topic topic and well organized
Language of Grammatically Grammatically appropriate Grammatically appropriate
3 Project inappropriate but ineffective and effective
Completed and Completed within due date Completed and submitted
Completion of
4 submitted after but took slightly more time the complete project within
project
due date. to submit complete project. specified due date.
Prepared an improper Prepared appropriate
Report Prepared thereport with
5 report with format of the report with
Preparation unsatisfactory content satisfactory content
sufficient content details
Not included key Presented with the help of
6 Presentation points, missed Included key points but power point, Highlighted
details and lacks considerable key points, accurate and
considerable information considerable information
information
Not referred more Referred at –least 5
7 Resources/ than two sources, very Referred at-least 3 relevant relevant sources, 3 most
References old reference sources, at least 2 latest latest

Total:
Average
(Out of 10)

Name and Signature of Guide


MATOSHRI AASARABAI POLYTECHNIC, EKLAHARE, NASHIK

Department of Information Technology Engineering


Log Book for Micro- Project

Semester:- V Code:-IF5I
Course / Code :AJP(22517)
Class:- Third Year
Topic of the Micro:-Empolyee Leave Management System

Sr. Name of Group Sign. Sr. Name of Sign.


No. Members. No. Group
Members
1 Mayuri Vijay Salve 3 Snehal Somnath
Shinde
2 Swara Yogesh Sakhare

Teache
Week Members
Discussion & Details Teacher’s Comment r’s
No. Present
Sign.
Discussion on the concept of Micro project Discussed micro-
1 with teacher 42,44,50 project concept
Finalization of Group and Project topic with
2 42,44,50 Finalized the group
Project Proposal submission
Preliminary discussion with guide about
3 42,44,50 Discussed with guide
content of Micro project
Related Information Gathered by t3333eam
4 42,44,50 Gathered information
about project
Organized the
5 Organizing the information for project work 42,44,50 information
Discussing project related queries with teacher
6 42,44,50 Discussed the queries
if any
Prepared micro-
7 Preparation of Micro project model or content 42,44,50
project
8 Finalizing the project work by teacher 42,44,50 Finalize project work
Complete report
9 Report writing 42,44,50
writing
10 Presentation , Oral 42,44,50 Gave presentation

11 Submission of project and Project report 42,44,50 Submitted project

Sign Of Faculty
ANNEXURE II
Evaluation Sheet for the Micro Project
Academic Year:-2024-2025 Name of Faculty:- Prof.Mrs.Gadakh
Course :- Advanced Java Programming Course Code :- 22517
Title of the Project :-Employee Leave Management Semester:- 5th
System
COs addressed by the Micro Project : -
a) Quick Order Input
b) Automatic Cost Calculation

c) Easy Receipt Generation

d) Simple User Interface

e) Efficient Tax Calculation

Major Learning Outcomes achieved by students by doing the Projects:-

a) Practical Outcomes……………………………………………………………………………
…………………………………………………………………………………………………..
b) Unit Outcomes in Cognitive domain
……………………….……………………………………………………………………………
………….....................................................................................................................................
c) Outcomes in Affective Domain
……………………………………………………………………………………………………
…………………………………………………………………………………………………….
Comment /Suggestion about team work /Leadership/ Inter-personal communication (If any)
…………………………………………………………………………………………………………
………………………………………………………………………………………
Marks out of 6 Marks out of 4 for
Roll for performance performance in oral Total out
Student Name
No. in / presentation of 10
group activity activity
1 Mayuri Salve
2 Swara Sakhare
3 Snehal Shinde

Faculty sign
(Prof.Mrs.Gadakh)
ACKNOWLEDGEMENT

With deep sense of gratitude we would like to thanks all the people who have lit our path with
their kind guidance. We are very grateful to these intellectuals who did their best to help during
our project work.
It is our proud privilege to express deep sense of gratitude to, Dr. A.S.Relakar Principal of
Matoshri Aasarabai Polytechnic, Eklahare, Nashik, for his comments and kind
permission to complete this Micro Project.

We remain indebted to Prof. M.P.Bhandkakar, HOD guidance.

The special gratitude goes to our internal guide Prof.Mrs.Gadakh, technical staff members,
and non-technical staff members, Humanities & Science Department for their expensive,
excellent and precious guidance in completion of this work.

Name of Students:
1. Mayuri Vijay Salve
2. SwaraYogeshSakhare
3. SnehalSomnathShinde
Abstract

This paper presents an Employee Leave Management System designed to streamline and
automate the process of leave application, approval, and tracking within an organization. The
proposed system aims to address the inefficiencies and errors associated with traditional manual
leave management methods.
The system incorporates various features such as leave application, approval workflows, leave
balance tracking, leave history maintenance, and report generation. It provides a user-friendly
interface for both employees and administrators, facilitating seamless interaction and efficient
management of leave requests.
The implementation of this system is expected to improve the accuracy and transparency of leave
management processes, reduce administrative overhead, and enhance overall employee
satisfaction.
This paper presents an Employee Leave Management System (ELMS) designed to streamline
and automate the leave management process within an organization. The system is built using
advanced Java technologies, providing a robust and efficient solution to traditional manual leave
management methods.
ELMS incorporates features such as employee leave application, approval workflows, leave
balance tracking, leave history maintenance, and report generation. The system provides a user-
friendly interface for both employees and administrators, enabling seamless interaction and
efficient management of leave requests.
By implementing ELMS, organizations can improve accuracy, transparency, and speed in leave
management processes, reduce administrative overhead, and enhance overall employee
satisfaction.

1
Project work(Introduction)

Introduction:-

Employee Leave Management Systems (ELMS) have become indispensable tools for modern
organizations to efficiently manage and track employee leaves. These systems automate various
aspects of the leave process, from leave application and approval to balance tracking and report
generation. By streamlining these processes, ELMS can significantly reduce administrative
overhead, improve accuracy, and enhance overall employee satisfaction.
Traditional manual leave management methods often involve paper-based forms, spreadsheets,
and manual calculations, which can be time-consuming, error-prone, and inefficient. ELMS, on
the other hand, provide a centralized platform for all leave-related activities, making it easier for
both employees and HR personnel to manage and track leave information.

Key features of an ELMS typically include:


 Leave Application: Employees can submit leave applications online, specifying the
leave type, duration, and reason.
 Approval Workflow: The system can automate the approval process, routing
applications to appropriate authorities for review and approval.
 Leave Balance Tracking: The system maintains accurate records of employee leave
balances, ensuring compliance with company policies.
 Leave History: The system stores historical leave data, allowing for easy reference and
analysis.
 Report Generation: The system can generate various reports, such as leave summaries,
utilization reports, and compliance reports.

By leveraging advanced technologies, ELMS can provide additional functionalities such as


mobile access, real-time notifications, and integration with other HR systems. These features
further enhance the efficiency and convenience of leave management.

2
Objectives
An Employee Leave Management System (ELMS) is designed to achieve the following
objectives:

1. Streamline Leave Application and Approval Processes:


o Automate the process of submitting, reviewing, and approving leave requests.
o Reduce paperwork and manual effort associated with traditional leave
management.
o Minimize processing time for leave applications.

2. Accurate Leave Balance Tracking:


o Maintain real-time tracking of employee leave balances.
o Ensure compliance with company leave policies and legal requirements.
o Prevent unauthorized leave usage.

3. Enhanced Transparency and Communication:


o Provide a centralized platform for all leave-related information.
o Improve communication between employees and HR personnel.
o Increase visibility into leave usage patterns and trends.

4. Improved Decision-Making:
o Generate comprehensive reports on leave usage, absenteeism, and other relevant
metrics.
o Support informed decision-making by HR and management.
o Identify potential issues and trends in leave patterns.

5. Enhanced Employee Satisfaction:


o Provide a user-friendly system that simplifies the leave application process.
o Reduce stress and frustration associated with manual leave management.
o Promote a positive work-life balance.

By achieving these objectives, ELMS can significantly improve the efficiency, accuracy, and
overall effectiveness of leave management within an organization.

3
Project Work(Main Details)

Technology Stack
 Frontend:
o HTML, CSS, JavaScript
o Frontend frameworks like React, Angular, or Vue.js
 Backend:
o Java EE or Spring Boot
o Java Persistence API (JPA) for database interactions
o Database: MySQL, PostgreSQL, or Oracle
 Web Server: Tomcat, Jetty, or WildFly
 Build Tool: Maven or Gradle

Project Structure

ELMS
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── com
│ │ │ │ └── company
│ │ │ │ ├── model
│ │ │ │ ├── controller
│ │ │ │ ├── service
│ │ │ │ ├── repository
│ │ ├── resources
│ │ │ ├── static
│ │ │ │ ├── css
│ │ │ │ ├── js
│ │ │ ├── templates
│ ├── test
│ ├── java
└── resources

4
Security Considerations
 Authentication: Implement user authentication using mechanisms like form-based
authentication, basic authentication, or token-based authentication.
 Authorization: Control access to different parts of the application based on user roles
and permissions.
 Data Encryption: Encrypt sensitive data like passwords and personal information.
 Input Validation: Validate user input to prevent injection attacks (SQL injection,
XSS).
 Secure Communication: Use HTTPS to encrypt communication between the client
and server.

Additional Features
 Email Notifications: Send automated email notifications for leave approvals,
rejections, and reminders.
 Calendar Integration: Integrate with a calendar application to visualize leave
schedules.
 Mobile App: Develop a mobile app for on-the-go access to leave information.
 Reporting and Analytics: Generate detailed reports on leave utilization and trends.
By following these guidelines and incorporating advanced Java concepts, you can build a robust
and efficient Employee Leave Management System.

5
Source code of Micro-project:-

CREATE DATABASE LeaveManagement;

USE LeaveManagement;

CREATE TABLE Employees (


emp_id INT PRIMARY KEY,
emp_name VARCHAR(50),
leave_balance INT
);

CREATE TABLE Leaves (


leave_id INT PRIMARY KEY AUTO_INCREMENT,
emp_id INT,
leave_type VARCHAR(20),
start_date DATE,
end_date DATE,
status VARCHAR(20),
FOREIGN KEY (emp_id) REFERENCES Employees(emp_id)
);

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {

6
private static final String URL = "jdbc:mysql://localhost:3306/LeaveManagement";
private static final String USER = "root";
private static final String PASSWORD = "password";

public static Connection getConnection() throws SQLException {


return DriverManager.getConnection(URL, USER, PASSWORD);
}
}
public class Employee {
private int empId;
private String empName;
private int leaveBalance;

// Constructor
public Employee(int empId, String empName, int leaveBalance) {
this.empId = empId;
this.empName = empName;
this.leaveBalance = leaveBalance;
}

// Getters and setters


public int getEmpId() { return empId; }
public String getEmpName() { return empName; }
public int getLeaveBalance() { return leaveBalance; }
public void setLeaveBalance(int leaveBalance) { this.leaveBalance = leaveBalance; }
}
import java.util.Date;

7
public class Leave {
private int leaveId;
private int empId;
private String leaveType;
private Date startDate;
private Date endDate;
private String status;

// Constructor
public Leave(int empId, String leaveType, Date startDate, Date endDate) {
this.empId = empId;
this.leaveType = leaveType;
this.startDate = startDate;
this.endDate = endDate;
this.status = "Pending";
}

// Getters and Setters


public int getLeaveId() { return leaveId; }
public int getEmpId() { return empId; }
public String getLeaveType() { return leaveType; }
public Date getStartDate() { return startDate; }
public Date getEndDate() { return endDate; }
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; }
}
import java.sql.*;
import java.util.Date;

8
public class LeaveManager {
public boolean applyLeave(int empId, String leaveType, Date startDate, Date endDate) {
try (Connection conn = DBConnection.getConnection()) {
// Check if employee has enough leave balance
String queryBalance = "SELECT leave_balance FROM Employees WHERE emp_id =
?";
PreparedStatement psBalance = conn.prepareStatement(queryBalance);
psBalance.setInt(1, empId);
ResultSet rs = psBalance.executeQuery();

if (rs.next()) {
int balance = rs.getInt("leave_balance");
int daysRequested = (int) ((endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60
* 24));

if (balance >= daysRequested) {


// Deduct leave balance and update table
String queryUpdate = "UPDATE Employees SET leave_balance = ? WHERE
emp_id = ?";
PreparedStatement psUpdate = conn.prepareStatement(queryUpdate);
psUpdate.setInt(1, balance - daysRequested);
psUpdate.setInt(2, empId);
psUpdate.executeUpdate();

// Insert leave application into Leaves table


String queryLeave = "INSERT INTO Leaves (emp_id, leave_type, start_date,
end_date, status) VALUES (?, ?, ?, ?, 'Approved')";
PreparedStatement psLeave = conn.prepareStatement(queryLeave);
psLeave.setInt(1, empId);

9
psLeave.setString(2, leaveType);
psLeave.setDate(3, new java.sql.Date(startDate.getTime()));
psLeave.setDate(4, new java.sql.Date(endDate.getTime()));
psLeave.executeUpdate();
return true;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}

public void viewLeaveStatus(int empId) {


try (Connection conn = DBConnection.getConnection()) {
String query = "SELECT * FROM Leaves WHERE emp_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, empId);
ResultSet rs = ps.executeQuery();

while (rs.next()) {
System.out.println("Leave ID: " + rs.getInt("leave_id") + ", Type: " +
rs.getString("leave_type") +
", Start Date: " + rs.getDate("start_date") + ", End Date: " +
rs.getDate("end_date") +
", Status: " + rs.getString("status"));
}
} catch (SQLException e) {
e.printStackTrace();

10
}
}
}
import java.util.Date;

public class Main {


public static void main(String[] args) {
LeaveManager leaveManager = new LeaveManager();

// Apply leave
if (leaveManager.applyLeave(1, "Vacation", new Date(2024, 11, 10), new Date(2024, 11,
15))) {
System.out.println("Leave applied successfully!");
} else {
System.out.println("Leave application failed.");
}

// View leave status


leaveManager.viewLeaveStatus(1);
}
}

11
Output:

12
Source code:

public class Employee {


private int id;
private String name;
private int leaveBalance;

public Employee(int id, String name, int leaveBalance) {


this.id = id;
this.name = name;
this.leaveBalance = leaveBalance;
}

public int getId() {


return id;
}

public String getName() {


return name;
}

public int getLeaveBalance() {


return leaveBalance;
}

public void deductLeave(int days) {


leaveBalance -= days;
}

13
}
public class LeaveRequest {
private Employee employee;
private int leaveDays;
private String status;

public LeaveRequest(Employee employee, int leaveDays) {


this.employee = employee;
this.leaveDays = leaveDays;
this.status = "Pending";
}

public int getLeaveDays() {


return leaveDays;
}

public String getStatus() {


return status;
}

public void approve() {


if (employee.getLeaveBalance() >= leaveDays) {
employee.deductLeave(leaveDays);
status = "Approved";
} else {
status = "Denied (Insufficient balance)";
}
}

14
public void reject() {
status = "Rejected";
}

public Employee getEmployee() {


return employee;
}
}
import java.util.ArrayList;
import java.util.List;

public class LeaveManagementSystem {


private List<LeaveRequest> leaveRequests;

public LeaveManagementSystem() {
leaveRequests = new ArrayList<>();
}

public void applyLeave(Employee employee, int days) {


LeaveRequest request = new LeaveRequest(employee, days);
leaveRequests.add(request);
}

public void processLeaveRequests() {


for (LeaveRequest request : leaveRequests) {
request.approve(); // Automatically approve if balance is sufficient
}

15
}

public void showLeaveStatus() {


for (LeaveRequest request : leaveRequests) {
System.out.println("Employee: " + request.getEmployee().getName() +
" | Leave Days: " + request.getLeaveDays() +
" | Status: " + request.getStatus());
}
}
}
public class Main {
public static void main(String[] args) {
Employee emp1 = new Employee(1, "Alice", 10);
Employee emp2 = new Employee(2, "Bob", 5);

LeaveManagementSystem leaveSystem = new LeaveManagementSystem();

// Employees apply for leave


leaveSystem.applyLeave(emp1, 4); // Alice applies for 4 days leave
leaveSystem.applyLeave(emp2, 6); // Bob applies for 6 days leave

// Process leave requests


leaveSystem.processLeaveRequests();

// Display leave status


leaveSystem.showLeaveStatus();
}
}

16
Output:

17
Conclusion
The Employee Leave Management System micro project successfully demonstrates how Java can
be used to create an effective tool for managing leave applications, processing approvals, and
tracking leave balances for employees within an organization. This system allows employees to
apply for leave, and managers to approve or reject these applications based on leave balance
criteria. By automating these processes, the system reduces manual work, minimizes errors, and
ensures transparency in leave management.
The implementation of an Employee Leave Management System (ELMS) offers a comprehensive
solution to streamline and optimize leave processes within organizations. By automating tasks,
reducing administrative burdens, and improving visibility into leave balances and approvals,
ELMS significantly enhances HR efficiency and employee satisfaction.
By carefully selecting and implementing an ELMS tailored to the organization's specific needs,
HR teams can achieve greater efficiency, accuracy, and transparency in managing employee leave.

18
Resources/ References
1. Java Programming Resources
o Oracle Java SE Documentation – Official documentation for Java SE with tutorials
and API guides.
o JavaTpoint Java Tutorial – Extensive tutorials on Java basics and advanced topics.
o w3schools Java Tutorial – Covers Java fundamentals and object-oriented concepts,
useful for developing applications.
2. SQL and Database Management
o SQLBolt – Interactive lessons for learning SQL from scratch.
o w3schools SQL Tutorial – SQL basics, queries, and database operations useful for
managing leave data.
o JDBC Tutorial on Baeldung – Guides on connecting Java applications to databases,
essential for leave management systems.
3. System Design and Software Development
o GeeksforGeeks MVC Design Pattern – Explanation of MVC architecture, which is
helpful for structuring a Java-based leave management system.
o Design Patterns - Refactoring Guru – Resource for understanding and applying
design patterns like Factory, Singleton, and Observer in Java projects.
o Head First Design Patterns (book on Amazon) – A popular book for understanding
and implementing design patterns in Java.
4. Human Resource Management and Leave Policies
o Society for Human Resource Management (SHRM) – Articles and resources on HR
practices, including leave policies and employee management.
o Case Studies on Employee Leave Management on ResearchGate – Search for
research papers and case studies on leave management for real-world insights.
o Employee Leave Policies Guide on Indeed – Overview of common leave policies
and best practices in employee leave management.
5. Project and Code Examples
o GitHub – Employee Leave Management System Examples – Open-source
repositories with various implementations of leave management systems.
o GitLab – Employee Management System Repositories – Sample projects and
source code for similar systems.

19
6. Agile and Project Management
o Atlassian Agile Guide – Comprehensive guide on agile project management,
helpful for managing micro-projects.
o Scrum.org – Scrum Basics – Provides Scrum resources that can be applied to
manage projects like an employee leave system effectively.
Using these resources can help you gain a thorough understanding of both the technical and human
resource aspects needed to build and maintain an effective employee leave management system.

20

You might also like