The Student Management System (SMS) is a comprehensive application designed to manage student and teacher activities in an educational institution. It provides separate environments for students and teachers, allowing them to interact with the system based on their roles. The system is built using Python, SQLite for database management, and CustomTkinter for the graphical user interface (GUI).
- Upload Marks: Teachers can upload marks for students for each semester.
- Manage Attendance: Teachers can mark attendance for students (Present/Absent).
- Assign Assignments: Teachers can assign assignments to students with deadlines.
- Assign Projects: Teachers can assign projects to students with deadlines.
- View Submissions: Teachers can view student submissions for assignments and projects.
- Notifications: Teachers can view important notifications.
- Events: Teachers can view upcoming events.
- Profile Management: Students can view their profile details.
- Attendance: Students can view their attendance records as a pie chart.
- Marks: Students can view their marks for each semester.
- Assignments: Students can view and submit assignments.
- Projects: Students can view and submit projects.
- Notifications: Students can view important notifications.
- Events: Students can view upcoming events.
- Python: The core programming language used for development.
- SQLite: A lightweight database used to store all data.
- CustomTkinter: A modern GUI library for creating the user interface.
- Matplotlib: Used to generate pie charts for attendance visualization.
The SQLite database contains the following tables:
-
users:
- Stores user login credentials and profiles.
- Columns:
id
,username
,password
,name
,email
,role
.
-
attendance:
- Stores attendance records for students.
- Columns:
id
,user_id
,date
,status
.
-
marks:
- Stores marks for each semester.
- Columns:
id
,user_id
,semester
,subject
,marks
.
-
assignments:
- Stores assignment details.
- Columns:
id
,user_id
,title
,description
,deadline
,status
.
-
projects:
- Stores project details.
- Columns:
id
,user_id
,title
,description
,deadline
,status
.
-
notifications:
- Stores notifications for users.
- Columns:
id
,user_id
,message
,date
.
-
events:
- Stores upcoming events.
- Columns:
id
,title
,description
,date
.
- Install Python 3.x from python.org.
- Install the required libraries using pip:
pip install customtkinter matplotlib
- Download or clone the repository.
- Navigate to the project directory.
- Run the application:
python student_management.py
- Use the GUI to interact with the system.
-
Login:
- Enter your username and password to log in.
- Teachers and students have separate dashboards based on their roles.
-
Signup:
- New users can sign up by providing a username, password, name, email, and role (student/teacher).
-
Upload Marks:
- Enter the student ID, semester, subject, and marks to upload marks.
-
Manage Attendance:
- Enter the student ID, date, and status (Present/Absent) to mark attendance.
-
Assign Assignments:
- Enter the student ID, title, description, and deadline to assign an assignment.
-
Assign Projects:
- Enter the student ID, title, description, and deadline to assign a project.
-
View Submissions:
- View all assignments and projects submitted by students.
-
Notifications:
- View important notifications.
-
Events:
- View upcoming events.
-
Profile:
- View your profile details (name, email, role).
-
Attendance:
- View your attendance records as a pie chart.
-
Marks:
- View your marks for each semester.
-
Assignments:
- View and submit assignments.
-
Projects:
- View and submit projects.
-
Notifications:
- View important notifications.
-
Events:
- View upcoming events.
The code is modular and organized into the following sections:
- Database Setup:
- Functions to create a database connection and tables.
- CRUD Operations:
- Functions to add, update, delete, and fetch data from the database.
- GUI:
- CustomTkinter-based GUI for the application.
- Teacher Environment:
- Functions and GUI components for teacher-specific features.
- Student Environment:
- Functions and GUI components for student-specific features.
This project is licensed under the MIT License. See the LICENSE file for details.
Thank you for using the Student Management System! We hope it simplifies your educational management tasks.