Purple Learn Java Online Facebook Post

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

STUDENT MANAGEMENT

SYSTEM PROJECT : IN JAVA

Table of Contents
1 | INTRODUCTION
2 | LITERATURE REVIEW
3 | SYSTEM DESIGN
3.1 REQUIREMENTS ANALYSIS
3.2 DATABASE DESIGN
4 | IMPLEMENTATION
4.1 DEVELOPMENT ENVIRONMENT SETUP
4.2 CODE STRUCTURE
4.3 DATABASE CONNECTIVITY
4.4 USER INTERFACE
5 | CONCLUSION

STUDENT NAME : KENNOU KHADIJA


STUDENT ID : 229J85
1 | INTRODUCTION
My project will entreduce A well-designed management service
system can streamline operations, improve data accuracy, and
enhance the overall experience for students, faculty, and staff. This
project focuses on developing a comprehensive Management Service
System for a university using Java, with seamless integration with a
MySQL database managed through MySQL Workbench.
2 | Literature Review
Java
Robustness and Performance: Java is known for its robustness, high performance, and
scalability, making it suitable for large-scale applications like university management systems.
Cross-Platform Compatibility: Java applications can run on any platform with a compatible JVM,
ensuring broad accessibility.
Extensive Libraries and Frameworks: Java offers a rich set of libraries and frameworks (e.g.,
Spring, Hibernate) that simplify development and enhance functionality.
MySQL
Reliability and Performance: MySQL is a widely used, reliable, and high-performance relational
database management system.
Ease of Use: MySQL Workbench provides a user-friendly interface for database design,
administration, and querying, streamlining development.
Open-Source and Cost-Effective: As an open-source database, MySQL reduces costs while
offering robust community support and extensive documentation.

Eclipse
Integrated Development Environment (IDE): Eclipse is a powerful IDE that supports Java
development with features like code completion, debugging, and integrated version control.
Plugin Ecosystem: Eclipse’s extensive plugin ecosystem enhances development capabilities,
allowing integration with various tools and frameworks.
Community Support: A large and active community provides abundant resources, tutorials, and
forums for troubleshooting and learning.
3 | System Design
3.1 Requirements Analysis
Functional Requirements
Admin Management
personal information(view , update)
manage teachers(add , view , update)
manage students(add , view , update)

Student Management
pesonal information ( view)

Teacher Management
pesonal information ( view , update)

Non-Functional Requirements
Data encryption for sensitive information.
Intuitive and user-friendly interface
User authentication and authorization mechanisms.
3.2 Database Design
E-R Diagram
Data base tables
course table admin table

teacher table

student table
user table

teacher table

exam table

scholarship table
4 | Implementation
4.1 Development Environment Setup
i have downloaded each of mysql workbench from oracle official website
and also i have downloaded the main software that will help me to perform my java
project easily and efficiently
4.2 Code Structure
1- essencial Class
main Method:
Creates an instance of IdAndPassword to fetch login information.
Passes this login information to the LogInPage constructor to initialize the login page.

2- Login Page Class


-Components:
JFrame, JButton, JTextField, JPasswordField, JLabel are used to create the GUI.
logininfo stores the login credentials.
-Constructor:
Initializes the login page, sets bounds for components, and adds them to the frame.
Registers ActionListener for buttons.
-actionPerformed Method:
Handles the logic for login and reset buttons.
Checks user credentials and displays appropriate messages.
Invokes different pages (StudentInfoPage, TeacherInfoPage, AdminDashboard) based on user type.
-Helper Methods:
isStudent, isTeacher, isAdmin: Determine the type of user based on the username prefix.
3-IdAndPassword Class
Fields:
logininfo stores the login credentials fetched from the database.
Constructor:
Calls loadUserInfoFromDB to populate logininfo.
loadUserInfoFromDB Method:
Connects to a MySQL database and retrieves usernames and passwords.
Populates the logininfo HashMap with these credentials.
getLoginInfo Method:
Returns the logininfo HashMap.
4-AdminDashboard Class
Components and Methods:
Components:
JFrame frame: Main window frame.
JLabel adminLabel: Label for the admin
dashboard title.
JButton personalInfoButton,
manageTeachersButton,
manageStudentsButton: Buttons for navigation.
Constructor:
Sets up the layout and positions of
labels and buttons.
Adds action listeners to buttons to
open respective management pages.

5-AdminInfoPage Class
Components and Methods:
Components:
JFrame frame: Main window frame.
JLabel adminLabel: Label for the admin
dashboard title.
JButton personalInfoButton,
manageTeachersButton,
manageStudentsButton: Buttons for navigation.
Constructor:
Sets up the layout and positions of
labels and buttons.
Adds action listeners to buttons to
open respective management pages.
6-StudentManagementPage Class
Components and Methods:
Components:
JFrame frame: Main window frame.
JLabel studentManagementLabel: Label for the student management page.
JButton addStudentButton: Button to open the page for adding a new student.
JPanel studentPanel: Panel to display the list of students.
JScrollPane scrollPane: Scroll pane for the student panel.
Constructor:
Sets up the layout and positions of labels, buttons, and the panel.
Loads the list of students from the database.
Methods:
loadStudents(JPanel studentPanel): Fetches student usernames from the database and creates
buttons for each student.
7-TeacherManagementPage Class
Components and Methods:
Components:
JFrame frame: Main window frame.
JLabel teacherManagementLabel: Label for the teacher management page.
JButton addTeacherButton: Button to open the page for adding a new teacher.
JPanel teacherPanel: Panel to display the list of teachers.
JScrollPane scrollPane: Scroll pane for the teacher panel.
Constructor:
Sets up the layout and positions of labels, buttons, and the panel.
Loads the list of teachers from the database.
Methods:
loadTeachers(JPanel teacherPanel): Fetches teacher usernames from the database and
creates buttons for each teacher.
8-TeacherInfoPage Class
Properties
JFrame frame: The main window frame for the page.
JLabel teacherInfoLabel: Label for the title of the page.
JLabel emailLabel, JLabel phoneLabel, JLabel workHoursLabel: Labels for email, phone, and
work hours fields respectively.
JTextField emailField, JTextField phoneField, JTextField workHoursField: Text fields for
inputting or displaying the teacher's email, phone, and work hours.
JButton updateButton: Button to trigger updating the teacher's information.
JButton deleteButton: Button to delete the teacher's record from the database.
Constructor
Initializes the frame and components.
Calls loadTeacherInfo(username) to load the teacher's information from the database.
Sets bounds and adds components to the frame.
Adds action listeners to the update and delete buttons.
Methods
loadTeacherInfo(String username): Fetches teacher information from the database and
populates the text fields.
updateTeacher(String username, String field, String newValue): Updates a specific field of the
teacher's information in the database.
deleteTeacher(String username): Deletes the teacher's record from the database.
9-StudentInfoPage Class

Properties
JFrame frame: The main window frame for the page.
JLabel studentInfoLabel: Label for the title of the page.
JLabel emailLabel, JLabel phoneLabel, JLabel gradeLabel: Labels for email, phone, and grade
fields respectively.
JTextField emailField, JTextField phoneField, JTextField gradeField: Text fields for inputting or
displaying the student's email, phone, and grade.
JButton updateButton: Button to trigger updating the student's information.
JButton deleteButton: Button to delete the student's record from the database.
Constructor
Initializes the frame and components.
Calls loadStudentInfo(username) to load the student's information from the database.
Sets bounds and adds components to the frame.
Adds action listeners to the update and delete buttons.
Methods
loadStudentInfo(String username): Fetches student information from the database and
populates the text fields.
updateStudent(String username, String field, String newValue): Updates a specific field of the
student's information in the database.
deleteStudent(String username): Deletes the student's record from the database.
10-AdminInfoPage Class
Properties
JFrame frame: The main window frame for the page.
JLabel adminInfoLabel: Label for the title of the page.
JLabel emailLabel, JLabel phoneLabel, JLabel passwordLabel: Labels for email, phone, and
password fields respectively.
JTextField emailField, JTextField phoneField, JTextField passwordField: Text fields for inputting
or displaying the admin's email, phone, and password.
JButton updateButton: Button to trigger updating the admin's information.
Constructor
Initializes the frame and components.
Calls loadAdminInfo(username) to load the admin's information from the database.
Sets bounds and adds components to the frame.
Adds an action listener to the update button.
Methods
loadAdminInfo(String username): Fetches admin information from the database and populates
the text fields.
updateAdmin(String username, String field, String newValue): Updates a specific field of the
admin's information in the database.
11-User Class
Properties
String username: The user's username.
String password: The user's password.
String role: The user's role (e.g., admin, teacher, student).
Constructor
Initializes the user object with the provided username, password, and role.
Methods
getUsername(): Returns the username.
getPassword(): Returns the password.
getRole(): Returns the role.
12- TeacherPage Class
Properties:
JFrame frame: Main window frame.
JLabel teacherLabel: Label for the dashboard title.
JButton manageClassesButton: Button to manage classes and grades.
JButton teacherInfoButton: Button to view teacher information.
13- ManageClassesPage Class
Properties:
JFrame frame: Main window frame.
JLabel manageLabel: Label for the page title.
14- StudentPage Class
Properties:
JFrame frame: Main window frame.
JLabel studentLabel: Label for the dashboard title.
JButton viewGradesButton: Button to view grades.
JButton scholarshipInfoButton: Button to view scholarship information.
JButton personalInfoButton: Button to view personal information.
15- ViewGradesPage Classs
Properties:
JFrame frame: Main window frame.
JLabel gradesLabel: Label for the page title.
16- ScholarshipInfoPage Classs
properties
JFrame frame: Main window frame.
JLabel scholarshipLabel: Label for the page title.
17- AddStudentPage Class
Properties:
JFrame frame: Main window frame.
JLabel addStudentLabel: Label for the page title.
JLabel userLabel, emailLabel, phoneLabel, gradeLabel: Labels for form fields.
JTextField userField, emailField, phoneField, gradeField: Text fields for user input.
JButton addButton: Button to add student.
18- AddTeacherPage Class
Properties:
JFrame frame: Main window frame.
JLabel addTeacherLabel: Label for the page title.
JLabel userLabel, emailLabel, phoneLabel, workHoursLabel: Labels for form fields.
JTextField userField, emailField, phoneField, workHoursField: Text fields for user input.
JButton addButton: Button to add teacher.
4.3 Database Connectivity
4.4 User Interface
admin
teacher student
5 | CONCLUSION
This project demonstrates the effective use of Java Swing and JDBC to create a
functional and efficient educational management system. It addresses key
administrative needs, providing a solid foundation for further enhancements
and scalability. Through this project, significant progress has been made in
understanding and applying key concepts in GUI development, database
management, and event-driven programming. The system not only meets the
current requirements but also sets the stage for future improvements, making
it a valuable tool for educational institutions.

You might also like