Project 5 - PEN Management System
Project 5 - PEN Management System
2. Objective:
The aim of this project is to design a PEN Management System that helps in managing and
tracking the academic records of students using a unique Permanent Education Number
(PEN). Each student is assigned a PEN, which serves as a unique identifier throughout their
educational journey. This system will enable schools or educational institutions to manage
student enrollments, course assignments, academic performance, and generate various
performance reports using Python for logic, Pandas for data handling, Matplotlib for visual
reporting, and MySQL for data storage.
3. Project Description:
4. Technology Tools:
5. Features:
Student Registration: Add new students to the system and assign them a unique
Permanent Education Number (PEN).
Course Enrollment: Assign students to courses and record their academic
performance.
Academic Performance Tracking: Record and manage students' grades, attendance,
and other performance metrics.
Admin Panel: Allows administrators to manage student data, courses, instructors,
and generate performance reports.
Reporting and Analytics: Visualize students’ academic performance and class trends
using Matplotlib to generate graphs and charts.
6. Functional Requirements:
Student Functions:
o Register a new student and assign a unique PEN.
o View courses and academic records linked to the student's PEN.
o Track student performance over time.
Admin Functions:
o Add or update student details (name, address, date of birth).
o Assign students to courses and record grades.
o Generate reports on individual student performance, class performance, and
overall school performance using Matplotlib.
o Manage class, instructors, and academic schedules.
7. Non-Functional Requirements:
1. Main Menu:
Register Student
o Input student details (name, age, gender, address, date of birth) and generate a
unique PEN.
Assign Class to Students
o Select a student using the PEN and enroll them in available class.
Record Academic Performance
o Select a class and input the student’s grades, attendance, and other
performance data.
View Student Records
o Input the student’s PEN to view their complete academic history, including
enrolled class and performance.
Admin Login
o Access additional administrative functionalities by logging in as an admin.
2. Admin Menu:
Manage Classes
o Add, update, or remove class (class name, description, credits).
Manage Instructors
o Assign instructors to class and update their details.
Generate Performance Reports
o Generate individual and class-wide performance reports, including grades,
attendance, and progress.
o Visualize data trends using Matplotlib (e.g., student progress, etc).
Export/Import Data
User & Password Management
1. Table: students
Column
Data Type Constraints Description
Name
pen
PRIMARY KEY, Unique Permanent Education
VARCHAR(10)
UNIQUE Number (PEN) for each student.
student_name VARCHAR(100) NOT NULL Name of the student.
dob DATE NOT NULL Date of birth of the student.
gender ENUM('M', 'F') NOT NULL Gender of the student.
address VARCHAR(255) NOT NULL Student's address.
phone VARCHAR(15) NOT NULL Contact number of the student.
2. Table: Class
This table stores information about the courses offered by the educational institution.
Column
Data Type Constraints Description
Name
class_id
PRIMARY KEY,
INT Unique ID for each class.
AUTO_INCREMENT
class_name VARCHAR(100) NOT NULL Name of the class.
description TEXT Description of the course.
credits
Number of credits awarded
INT NOT NULL
for completing the course.
3. Table: enrollments
This table stores the class enrollment data for each student.
This table stores the academic performance of each student in their respective courses.
5. Table: instructors
This table stores the details of the instructors who teach the courses.
Student Records DataFrame: Using Pandas, all the students' data will be handled in
a DataFrame for efficient processing and querying (e.g., searching students by their
PEN or name).
Course Enrollment DataFrame: This will be used to manage course enrollment
data, filter by class or student, and track academic performance before committing to
the database.
Performance Analysis: A Pandas DataFrame will be used to analyze and
manipulate academic data for students, which can be visualized using Matplotlib.
Student Performance Reports: Matplotlib will be used to generate bar charts, line
graphs, or pie charts to represent student performance trends, grades, and attendance
statistics.
Class Performance Analysis: Graphs can show the performance distribution across
different classes, average grades, or attendance rates.
Attendance Reports: A bar graph showing the attendance percentages of all students
in a particular course or across courses.
Conclusion
The PEN Management System project introduces students to the practical applications of
database management and data visualization in a real-world setting. By working with this
project, students learn essential programming and data-handling skills through Python and
MySQL. They also explore the basics of data science by using Pandas for data manipulation
and Matplotlib for graphical reporting.