School Control Operating System
School Control Operating System
PROGRAMMING
submitted by
RAHUL MIRZA
B.TECH
in the
at
Ardent Computech Pvt. Ltd.
CERTIFICATE FROM SUPERVISOR
This is to certify that RAHUL MIRZA, have completed the project titled "School Control
Operation System Using Java Programming" under my supervision during the period from
“02.08.2024” to “14.11.24” which is in partial fulfillment of requirements for the award of the
B.TECH degree and submitted to the Department of “Electronics and Communication
Engineering ” of “Kalyani Government Engineering College”.
___________________________
Signature of the Supervisor
Date: dd/mm/yy
Certified that this project work was carried out under my supervision
SIGNATURE
Name:
PROJECT MENTOR
SIGNATURE
EXAMINERS
The achievement associated with the successful completion of any task would be completed by
mentioning the names of those whose endless cooperation made it possible. Their constant
guidance and encouragement made all our efforts successful.
We take this opportunity to express our deep gratitude towards our project mentor, Mr Aninda
Mukharjee for giving such valuable suggestions, guidance, and encouragement during the
development of this project work.
Last but not least we are grateful to all Ardent Computech Pvt. Ltd. faculty members for their
support.
ABSTRACT OF THE PROJECT :-
The "School Control Operating System Using Java Programming" project aims to
streamline and enhance the administrative and academic management of a school environment
through a comprehensive software application. Developed using Java, this system automates key
school processes, including student registration, teacher registration etc. By centralizing these
functions, the system reduces manual tasks and minimizes the likelihood of human error, making
school operations more efficient and accessible.
This project also focuses on data security and accessibility, enabling authorized users,
such as teachers and administrators, to access and manage student information and records
quickly and securely. The Java-based platform leverages database integration to store, retrieve,
and update data seamlessly, ensuring real-time synchronization across modules. Additionally, the
system incorporates user-friendly interfaces and responsive layouts, allowing users to navigate
easily between different sections, perform tasks, and generate reports with minimal technical
expertise.
Ultimately, the "School Control Operating System Using Java Programming" addresses
common challenges faced in school administration, such as manual paperwork, limited
transparency, and data redundancy. By offering an all-in-one solution, this system enhances
communication, improves workflow efficiency, and provides accurate and timely insights into
school performance and student progress.
CONTENTS
1 Introduction
9 Conclusion
The School Control Operation System (SCOS) is a simple yet powerful software system
designed to manage and maintain records for students and teachers in an educational institution.
In this project, we will develop a Java-based application that interacts with a relational database
(like MySQL) to store and retrieve information regarding students and teachers. The system will
provide basic functionalities such as adding, updating, deleting, and viewing student and teacher
details.
The primary objective of this project is to:
1. Manage Student and Teacher Data: The system will allow for the efficient storage and
retrieval of information related to students and teachers. This includes personal details
such as name, age, grade (for students), subject (for teachers), and contact information
(address).
2. Interact with a Database: The project will use a database management system (DBMS)
like MySQL to persist data. JDBC (Java Database Connectivity) will be used to establish
a connection between the Java application and the MySQL database.
3. Create and Update Records: The system will allow users (typically administrators or
school staff) to add new records to the system (like registering new students or teachers).
Additionally, existing records can be updated to reflect changes.
4. Delete and View Records: The system will allow users to remove records (such as
deleting student or teacher data) and view or list the details of existing students and
teachers. This ensures easy access and maintenance of information.
Scope of the Project :-
The School Control Operation System (SCOS) is designed to manage essential data for
students and teachers in an educational institution. The scope of this project includes the
creation, storage, and management of student and teacher records in a MySQL database using
Java. The system allows for basic CRUD (Create, Read, Update, Delete) operations, enabling
administrators to add, modify, view, and delete student and teacher records, including details like
name, age, grade (for students), and subject (for teachers).
The project leverages JDBC (Java Database Connectivity) to interact with the MySQL
database, ensuring seamless data storage and retrieval. A simple console-based user interface
(UI) will allow users to interact with the system. This UI will support adding new records,
viewing existing ones, and updating or deleting data.
While the initial scope is focused on basic data management, the system is designed to be
extensible. Future enhancements may include advanced features such as search functionality,
reporting, role-based access control, and a more user-friendly Graphical User Interface (GUI).
The system also provides an opportunity to expand into other areas of school management, such
as class schedules, attendance, or financial tracking.
Overall, SCOS streamlines school administration by effectively organizing and managing
student and teacher data.
Software Requirement Specification :-
HARDWARE REQUIREMENTS:-
SOFTWARE REQUIREMENTS:-
JDK 17.0.8
Entity relationship diagram:-
The Entity-Relationship Diagram (ERD) is a visual representation of the system's data model
and describes the relationships between different entities (tables) in the database. Below is an
ERD that represents the entities for managing students and teachers in the School Control
Operation System (SCOS).
Entities:
1. Student: This entity represents students in the school. It contains attributes like student
ID, name, age, grade, and address.
2. Teacher: This entity represents teachers. It contains attributes such as teacher ID, name,
subject taught, age, and address.
Relationships:
One-to-Many Relationship: A teacher can teach multiple students (but each student has
one primary teacher, depending on school structure), which can be represented as a one-
to-many relationship between Teacher and Student.
This means each teacher can have many students associated with them, but each student
is assigned to one teacher. This can be further expanded to represent a more detailed
relationship, such as teacher-student classes or subjects.
Roll Id
Name Class
Name Subject
Relationship (One-to-Many):
A teacher can have multiple students, but each student is assigned to only one teacher.
This is represented by a one-to-many relationship between the Teacher and Student
entities.
Data flow diagram :-
A Data Flow Diagram (DFD) provides a visual representation of how data flows within a
system and how it is processed by various components. It shows the flow of data between
external entities, processes, data stores, and data flows. Below is the DFD for the School
Control Operation System (SCOS), which handles student and teacher data management.
The Level 0 DFD, also known as the Context Diagram, provides an overview of the system and
its interactions with external entities. At this level, the entire system is treated as a single process,
with data flows representing interactions with external entities (e.g., Admin, Database).
Student’s Teacher’s
Registration/Login School Control Registration/Login
Operation System Teacher
Student
0.0
Response to Student’s Response to Teacher’s
Registration/login Registration/login
The Level 1 DFD breaks down the main system process into smaller, more detailed sub-
processes. It shows the interaction between the sub-processes and how they communicate with
external entities and data stores.
Level 1 DFD:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
// Set the layout manager for the panel (null layout for
absolute positioning)
panel.setLayout(null);
frame.setContentPane(panel); // Set the panel as the
content pane of the frame
2. Student
Student.java:
package school;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
3. Insert Student
Insert_Student.java:
package school;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class Insert_Student {
b1=new JButton("SAVE");
b1.setBounds(50,400,100,50);
f.add(tf1);f.add(tf2);f.add(tf3);f.add(b1);
f.add(l1); f.add(l2); f.add(l3);
f.setSize(300,560);
f.setLayout(null);
f.setVisible(true);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int roll=Integer.parseInt(tf1.getText());
String name=tf2.getText();
int std=Integer.parseInt(tf3.getText());
Connection
con=Connection_Provider.createCon();
try {
PreparedStatement
pstm=con.prepareStatement("insert into student values(?,?,?)");
pstm.setInt(1, roll);
pstm.setString(2, name);
pstm.setInt(3, std);
pstm.executeUpdate();
JOptionPane.showMessageDialog(f,"Record
Updated Sucessfully!");
con.close();
}catch(Exception e1) {}
}
});
4. View Student
Search_Student.java:
package school;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
View_Student.java:
package school;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class View_Student {
Connection con=Connection_Provider.createCon();
try {
PreparedStatement pstm=con.prepareStatement("select
*from student where roll=?");
pstm.setInt(1, roll);
ResultSet rs=pstm.executeQuery();
//System.out.println(rs);
while(rs.next())
{
name=rs.getString(2);
std=rs.getInt(3);
}
System.out.println(name);
}catch(Exception e) {}
JFrame f= new JFrame("View Record");
JLabel l1,l2,l3,l4,l5,l6;
l1=new JLabel("Roll Is:");
l1.setBounds(10,10, 100,30);
l2=new JLabel();
l2.setText(String.valueOf(roll));
l2.setBounds(90,10,150,20);
l3=new JLabel("Name Is:");
l3.setBounds(10,80, 100,30);
l4=new JLabel();
l4.setText(name);
l4.setBounds(90,80,150,20);
l5=new JLabel("Class is:");
l5.setBounds(10,160,100,30);
l6=new JLabel();
l6.setText(String.valueOf(std));
l6.setBounds(90,160,150,20);
f.add(l1);f.add(l2);f.add(l3);f.add(l4);
f.add(l5); f.add(l6);
f.setSize(300,400);
f.setLayout(null);
f.setVisible(true);
5. Update Student
UpdateSearch_Student.java:
package school;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class UpdateSearch_Student {
static String str;
public static void main(String[] args) {
JFrame f=new JFrame();
str=JOptionPane.showInputDialog(f,"Enter roll to
Update:");
Update_Student.main(new String[]{});
}
Update_Student.java:
package school;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
try {
// Prepare and execute a query to fetch existing
student data
PreparedStatement pstm =
con.prepareStatement("select * from student where roll = ?");
pstm.setString(1, roll);
ResultSet rs = pstm.executeQuery();
} catch (Exception e) {
// Handle database connection and query execution
exceptions
JOptionPane.showMessageDialog(null, "Error
retrieving student data: " + e.getMessage());
return;
}
b1 = new JButton("Update");
b1.setBounds(90, 270, 150, 40);
// Frame settings
f.setSize(300, 400);
f.setLayout(null);
f.setVisible(true);
// Action listener for the "Update" button
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Get the values entered by the user
name = tf2.getText();
String classStr = tf3.getText();
// Validate input
if (name.isEmpty()) {
JOptionPane.showMessageDialog(f, "Name
cannot be empty!");
return;
}
try {
// Try to parse the class field to ensure
it's an integer
std = Integer.parseInt(classStr);
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(f, "Please
enter a valid class number.");
return;
}
int i = pstm.executeUpdate();
6. Delete Student
Delete_Student.java:
package school;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Delete_Student {
7. Teacher
Teacher.java:
Teacher.java:
package school;
import javax.swing.*;
import java.awt.Graphics;
import java.awt.event.*;
public class Teacher {
b4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Delete_Teacher.main(new String[]{});
//frame.dispose();
}
});
}
8. Insert Teacher
Insert_Teacher.java:
package school;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class Insert_Teacher {
b1=new JButton("SAVE");
b1.setBounds(50,400,100,50);
f.add(tf1);f.add(tf2);f.add(tf3);f.add(b1);
f.add(l1); f.add(l2); f.add(l3);
f.setSize(300,560);
f.setLayout(null);
f.setVisible(true);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int id=Integer.parseInt(tf1.getText());
String name=tf2.getText();
String subject=tf3.getText();
Connection
con=Connection_Provider.createCon();
try {
PreparedStatement
pstm=con.prepareStatement("insert into teacher values(?,?,?)");
pstm.setInt(1, id);
pstm.setString(2, name);
pstm.setString(3, subject);
pstm.executeUpdate();
JOptionPane.showMessageDialog(f,"Record
Updated Sucessfully!");
con.close();
}catch(Exception e1) {}
}
});
}
9. View Teacher
Search_Teacher.java:
package school;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Search_Teacher {
try {
// Parse the Roll to an integer
int id = Integer.parseInt(input);
View_Teacher.java:
package school;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class View_Teacher {
Connection con=Connection_Provider.createCon();
try {
PreparedStatement pstm=con.prepareStatement("select
*from teacher where id=?");
pstm.setInt(1, id);
ResultSet rs=pstm.executeQuery();
//System.out.println(rs);
while(rs.next())
{
name=rs.getString(2);
subject=rs.getString(3);
}
System.out.println(name);
}catch(Exception e) {}
JFrame f= new JFrame("View Record");
JLabel l1,l2,l3,l4,l5,l6;
l1=new JLabel("Id Is:");
l1.setBounds(10,10, 100,30);
l2=new JLabel();
l2.setText(String.valueOf(id));
l2.setBounds(90,10,150,20);
l3=new JLabel("Name Is:");
l3.setBounds(10,80, 100,30);
l4=new JLabel();
l4.setText(name);
l4.setBounds(90,80,150,20);
l5=new JLabel("Subject:");
l5.setBounds(10,160,100,30);
l6=new JLabel();
l6.setText(subject);
l6.setBounds(90,160,150,20);
f.add(l1);f.add(l2);f.add(l3);f.add(l4);
f.add(l5); f.add(l6);
f.setSize(300,400);
f.setLayout(null);
f.setVisible(true);
}
Update_Teacher.java:
package school;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
try {
// Fetch the teacher's existing information using
the id
PreparedStatement pstm =
con.prepareStatement("select * from teacher where id = ?");
pstm.setString(1, id);
ResultSet rs = pstm.executeQuery();
b1 = new JButton("Update");
b1.setBounds(90, 270, 150, 40);
Delete_Teacher.java:
package school;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Delete_Teacher {
}
12. Connection Provider
package school;
import java.sql.*;
public class Connection_Provider {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Sch
ool","root","mirza@2024");
}catch(Exception e1) {}
return con;
}
}
Implementation & Testing :-
Implementation: The School Control Operation System (SCOS) is implemented using Java
for the backend logic and MySQL for data storage. The system uses JDBC (Java Database
Connectivity) to interact with the MySQL database, handling CRUD operations for student and
teacher records. The program allows administrators to add, view, update, and delete data from
the Student and Teacher tables.
The backend logic is organized into separate Java classes:
1. Unit Testing: Individual methods in the CRUD classes are tested to ensure correct
functionality. For example, the method for adding students checks if records are correctly
inserted into the database.
2. Integration Testing: The interaction between Java classes and MySQL is tested by
performing end-to-end CRUD operations and verifying that the data is correctly stored
and retrieved from the database.
3. User Acceptance Testing (UAT): Admins test the system by performing typical
administrative tasks (adding, updating, deleting student and teacher records) to ensure the
system meets functional requirements and is easy to use.
The future scope of the School Control Operation System (SCOS) includes expanding the
system to handle additional school management functions such as attendance tracking, grading
systems, and class scheduling. A Graphical User Interface (GUI) using JavaFX or Swing
could be implemented for a more user-friendly experience. Additionally, role-based access
control can be added to allow different levels of user access (e.g., admin, teacher, student).
Search functionality and report generation for student performance and teacher assignments
are also potential enhancements. Cloud integration could be explored for better data storage and
accessibility across devices.
Conclusion :-
In conclusion, the development of a "School Control Operation System" in Java provides an
efficient and scalable solution for managing various administrative tasks within educational
institutions. By automating processes such as student registration, attendance tracking, grade
management, and communication between teachers, students, and parents, the system can
significantly reduce administrative workload and improve operational efficiency. Java’s object-
oriented features, robustness, and cross-platform capabilities make it an ideal choice for building
a reliable and future-proof system that can scale with the needs of schools of all sizes.
As schools continue to embrace digital transformation, the potential for further
enhancements to the system is vast. Integrating advanced technologies like AI, cloud computing,
and advanced analytics can not only improve student outcomes but also streamline school
management processes. Ultimately, a well-designed School Control Operation System can
empower educators, students, and administrators, fostering a more efficient, connected, and
effective learning environment. The continued evolution of such systems will play a pivotal role
in shaping the future of education.
References :-