0% found this document useful (0 votes)
14 views16 pages

Attendance Management System: Submitted in Fulfillment of The Requirements of Micro-Project Advanced Computer Networking

Advance Java Programming - Microproject on Attendance Management System

Uploaded by

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

Attendance Management System: Submitted in Fulfillment of The Requirements of Micro-Project Advanced Computer Networking

Advance Java Programming - Microproject on Attendance Management System

Uploaded by

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

Attendance Management System

Submitted in fulfillment of the requirements of


micro-project

Advanced Computer Networking

By
“ UGALMUGALE MAHEE MILIND
CHASKAR ATHARVA NAVNATH
BHARTI PRIYA PHOOLCHAND”

ROLL NO:- 31
32
33

ENROLLMENT NO:- 2209640200

2209640201

2209640203

SUBJECT INCHARGE
Mrs. Smita Kuldiwar

Computer Engineering Department

Academic Year 2024-2025


CERTIFICATE
This is to certify that the microproject

"Attendance Management System"


is done by

“Ugalmugale Mahee Milind”


“Chaskar Atharva Navnath”
“Bharti Priya Phoolchand”

is submitted for

“Advanced Java Programming”


for

the diploma in Computer Engineering to the

Maharashtra State Board of Technical Education,


Mumbai (Autonomous) (ISO-9001-2008) (ISO/IEC 27001:2013)

Subject Incharge Head of Department

(Mrs.Smita Kuldiwar) (Mrs.Smita Kuldiwar)


Attendance Management System

Submitted in fulfillment of the requirements


of micro-project

Advanced Computer Networking

By

Roll Name Enrollment Process and Individual Total (10)


No No product Presentation/
assessment work
(6 Marks) (4 marks)
UGALMUGALE 2209640200
MAHEE
52 MILIND

CHASKAR 2209640201
ATHARVA
53 NAVNATH

BHARTI PRIYA 2209640203


PHOOLCHAND
54

SUBJECT INCHARGE
Mrs. Smilta Kuldiwar

Computer Engineering Department

Academic Year 2024-2025


COMPUTER ENGINEERING DEPARTMENT
VISION AND MISSION OF THE PROGRAMME

Vision: -
To provide technically competent and skilled diploma computer
engineers to fulfill the needs of industry and society.
Mission: -
M1:- To provide industry oriented quality education and training.
M2:- To impart and inculcate theoretical and practical knowledge.
M3:- To provide interpersonal skills and social ethics.
COMPUTER ENGINEERING DEPARTMENT
PROGRAMME OUTCOMES

PO1: Basic and Discipline specific knowledge: Apply knowledge of basic


mathematics, science and engineering fundamentals and engineering specialization to solve
the engineering problems.

PO2: Problem analysis: Identify and analyze well-defined engineering problems


using codified standard methods.

PO3: Design/ Development of solutions: Design solutions for well-defined


technical problems and assist with the design of systems components or processes to
meet specified needs.

PO4: Engineering Tools, Experimentation and Testing: Apply modern


engineering tools and appropriate technique to conduct standard tests and
measurements.

PO5: Engineering practices for society, sustainability and environment:


Apply appropriate technology in context of society, sustainability, environment and
ethical practices

PO6: Project Management: Use engineering management principles individually, as


a team member or a leader to manage projects and effectively communicate about well-
defined engineering activities.

PO7: Life-long learning: Ability to analyze individual needs and engage in updating
in the context of technological changes
COMPUTER ENGINEERING DEPARTMENT
PROGRAMME EDUCATIONAL OBJECTIVES
PEO1: Provide socially responsible, environment friendly solutions to
Computer engineering related broad-based problems adapting professional ethics.

PEO2: Adapt state-of-the-art Computer engineering broad-based technologies to work


in multidisciplinary work environments.

PEO3: Solve broad-based problems individually and as a team member


communicating effectively in the world of work.

PROGRAMME SPECIFIC OUTCOMES


PSO1: Computer Software and Hardware Usage: Use state-of-the-art technologies
for operation and application of computer software and hardware.

PSO2: Computer Engineering Maintenance: Maintain computer engineering


related software and hardware systems.
Attendance Management System
Aim:
Develop a Java program using swing and awt components for Attendance Management System.

Course Outcomes:
 It encourages the direct use of remote computers.

 It shields users from system variations (operating system, directory structures, file structures, etc.)

 It promotes sharing of files and other types of data.

Proposed Methodology:
● Firstly we search the topic for which we want to make a project, and then propose it to
the Subject In charge.
● After finalizing the topic, start gathering the information about your project.
● Now, it’s time to make a report of your Selected Project.

Action Plan:

Sr. Detail of activity Plan Start Date Plan Finish Date


No.

1. Searching of Topic 26-10-2024 28-10-2024

2. Gathering information 29-08-2024 31-08-2024

3. Report Making 0-09-2024 12-09-2024


Subject In-charge
Mrs. Smita Kuldiwar

Attendance Management System


Rationale:
The "Attendance Management System Using Java" project demonstrates Java's power in real-world
scenarios, simplifies attendance management, enhances problem-solving skills, and integrates with
databases like JDBC. It provides hands-on experience in scalability, secure login systems, and
automated report generation.

Literature:
The development of an Attendance Management System (AMS) using Java has been a popular project for
students and professionals, offering improved efficiency, accuracy, and accessibility. Java's Object-Oriented
Programming (OOP) features make it an ideal choice for structured, modular, and scalable systems like
AMS. Java Database Connectivity (JDBC) allows for seamless data interaction between the application and
the database. The user interface (UI) is crucial for AMS applications, and Java Swing or JavaFX provide
powerful components for a user-friendly interface. Security and authentication are major concerns in AMS
development, and Java's built-in security libraries, such as the Java Cryptography Architecture (JCA), can
enhance security. Automated attendance reports are essential for monitoring student performance or
employee presence, and Java can be easily extended with additional features like real-time tracking, mobile
integration, or notifications. Java's cross-platform capabilities ensure the system can be deployed on
different operating systems, further enhancing its scalability.

Actual Methodology Followed:

Topic Work Done Data Work Done By

1. Searching of topic (Case study of FTP) Bharti


Priya Phoolchand

2. Gathering of Information (Rationale, Aim, Applications, Chaskar Atharva


etc.) Navnath

3. Execution of Program 1. Gathering information Ugalmugale Mahee


about the topic Milind

4. Report Making Finalization of report Bharti


Priya Phoolchand

Resources Required
Sr. Name of Resources Specification Qty. Remark
No.

1. Computer Intel i3, 4GB RAM or above 1 -

2. MS-Word Office 2007 or above 1 -

3. Android IDE Version 3.0 or above 1 -

Source Code

Student.java
public class Student {
private String name;
private long id; // Changed from int to long

public Student(String name, long id) { // Updated constructor parameter


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

public String getName() {


return name;
}

public long getId() { // Updated return type


return id;
}
}

Attendance.java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Attendance {
private List<Student> students;
private Map<Long, Integer> attendanceRecord; // Maps student ID to the number of attended classes
public Attendance() {
students = new ArrayList<>();
attendanceRecord = new HashMap<>();
}
public void addStudent(Student student) {
students.add(student);
attendanceRecord.put(student.getId(), 0); // Initialize attendance count to 0
}
public List<Student> getAllStudents() {
return students;
}
public void markAttendance(Student student, boolean isPresent) {
if (isPresent) {
attendanceRecord.put(student.getId(), attendanceRecord.get(student.getId()) + 1);
}
}
public double getAttendancePercentage(Student student) {
int totalClasses = attendanceRecord.size(); // Assuming each student has attended the same number of
classes
int attendedClasses = attendanceRecord.getOrDefault(student.getId(), 0);
return (double) attendedClasses / totalClasses * 100;
}
}

AttendanceManagerGUI.jav
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
public class AttendanceManagerGUI extends JFrame {
private Attendance attendance;
private JTable table;
private DefaultTableModel tableModel;
private JTextField searchField;
public AttendanceManagerGUI() {
attendance = new Attendance();
setTitle("Enhanced Attendance Management System");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JPanel navPanel = new JPanel();
navPanel.setLayout(new GridLayout(5, 1));
JButton addStudentBtn = new JButton("Add Student");
JButton markAttendanceBtn = new JButton("Mark Attendance (Bulk)");
JButton summaryBtn = new JButton("View Summary");
JButton reportBtn = new JButton("Generate Report");
addStudentBtn.addActionListener(e -> showAddStudentDialog());
markAttendanceBtn.addActionListener(e -> showBulkAttendanceDialog());
summaryBtn.addActionListener(e -> showSummaryDialog());
reportBtn.addActionListener(e -> generateAttendanceReport());
navPanel.add(addStudentBtn);
navPanel.add(markAttendanceBtn);
navPanel.add(summaryBtn);
navPanel.add(reportBtn);
add(navPanel, BorderLayout.WEST);
JPanel searchPanel = new JPanel(new FlowLayout());
searchField = new JTextField(20);
JButton searchButton = new JButton("Search");
searchButton.addActionListener(e -> searchStudent());
searchPanel.add(new JLabel("Search by Name or ID:"));
searchPanel.add(searchField);
searchPanel.add(searchButton);
add(searchPanel, BorderLayout.NORTH);
tableModel = new DefaultTableModel(new Object[]{"ID", "Name", "Attendance %"}, 0);
table = new JTable(tableModel);
JScrollPane tableScrollPane = new JScrollPane(table);
add(tableScrollPane, BorderLayout.CENTER);
}
private void showAddStudentDialog() {
JTextField nameField = new JTextField();
JTextField idField = new JTextField();
Object[] message = {"Name:", nameField, "ID:", idField};
int option = JOptionPane.showConfirmDialog(this, message, "Add New Student",
JOptionPane.OK_CANCEL_OPTION);
if (option == JOptionPane.OK_OPTION) {
String name = nameField.getText();
String idText = idField.getText();
if (name.isEmpty() || idText.isEmpty()) {
JOptionPane.showMessageDialog(this, "All fields must be filled", "Input Error",
JOptionPane.ERROR_MESSAGE);
return;
}
try {
long id = Long.parseLong(idText);
Student student = new Student(name, id);
attendance.addStudent(student);
updateTable();
JOptionPane.showMessageDialog(this, "Student added successfully!");
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "ID must be a numeric value", "Input Error",
JOptionPane.ERROR_MESSAGE);
}
}
}
private void showBulkAttendanceDialog() {
List<Long> presentIds = new ArrayList<>();
JTextArea inputArea = new JTextArea(5, 20);
JScrollPane scrollPane = new JScrollPane(inputArea);
Object[] message = {"Enter student IDs (comma-separated) for present students:", scrollPane};
int option = JOptionPane.showConfirmDialog(this, message, "Bulk Attendance",
JOptionPane.OK_CANCEL_OPTION);
if (option == JOptionPane.OK_OPTION) {
String inputText = inputArea.getText();
String[] ids = inputText.split(",");
for (String idStr : ids) {
try {
long id = Long.parseLong(idStr.trim());
presentIds.add(id);
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Invalid ID: " + idStr, "Input Error",
JOptionPane.ERROR_MESSAGE);
}
}
for (Student student : attendance.getAllStudents()) {
attendance.markAttendance(student, presentIds.contains(student.getId()));
}
updateTable();
JOptionPane.showMessageDialog(this, "Bulk attendance updated successfully.");
}
}
private void showSummaryDialog() {
String input = JOptionPane.showInputDialog(this, "Enter minimum attendance percentage:");
try {
double threshold = Double.parseDouble(input);
tableModel.setRowCount(0);
for (Student student : attendance.getAllStudents()) {
double attendancePercent = attendance.getAttendancePercentage(student);
if (attendancePercent >= threshold) {
tableModel.addRow(new Object[]{student.getId(), student.getName(), attendancePercent});
}
}
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Please enter a valid number.", "Input Error",
JOptionPane.ERROR_MESSAGE);
}
}
private void generateAttendanceReport() {
StringBuilder report = new StringBuilder("Attendance Report:\n");
for (Student student : attendance.getAllStudents()) {
double attendancePercent = attendance.getAttendancePercentage(student);
report.append(String.format("ID: %d, Name: %s, Attendance: %.2f%%\n", student.getId(),
student.getName(), attendancePercent));
}
JTextArea reportArea = new JTextArea(report.toString());
reportArea.setEditable(false);
JOptionPane.showMessageDialog(this, new JScrollPane(reportArea), "Attendance Report",
JOptionPane.INFORMATION_MESSAGE);
}
private void searchStudent() {
String query = searchField.getText().trim();
tableModel.setRowCount(0);
for (Student student : attendance.getAllStudents()) {
if (student.getName().contains(query) || String.valueOf(student.getId()).contains(query)) {
tableModel.addRow(new Object[]{student.getId(), student.getName(),
attendance.getAttendancePercentage(student)});
}
}
}
private void updateTable() {
tableModel.setRowCount(0);
for (Student student : attendance.getAllStudents()) {
tableModel.addRow(new Object[]{student.getId(), student.getName(),
attendance.getAttendancePercentage(student)});
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new AttendanceManagerGUI().setVisible(true));
}
}

Output:
Conclusion:
An Attendance Management System (AMS) using Java is a powerful application of advanced programming
concepts, combining Object-Oriented Programming, database connectivity, user interface design, and
security. It improves attendance management efficiency, allows for easy scalability, and is modular,
allowing developers to add new features with minimal changes. Its platform independence ensures it can be
deployed across various environments, making it an excellent project for students learning advanced Java
concepts.

Skill Developed:
1. Database Integration and SQL Handling.
2. Graphical User Interface (GUI) Design.

Application:
 Student Attendance Tracking
 Employee Attendance Management
 Real-Time Attendance Monitoring
 Automated Report Generation and Notifications

Subject In-charge
(Ms. Smita Kuldiwar)

You might also like