A GUI Student Management System with Python & SQLite 3.
In an educational system or to be more specific, in any institutions like school or colleges, student’s data is maintained. But these data are used just for record purposes only. If one can use these efficiently, then an institution can get much more out of it. Every student’s performance can be tracked individually and respective teachers/faculties can get an overview about how well their students are performing and who needs special attention. To achieve, these objectives, we prepared our project “The Progress Book” to meet these requirements. The intended audience of this project is any institution/school.
This project makes managing students’ effortlessly, we have also introduced simple security features to further protect the admin accounts and their data. Data Insertion, deletion, data updating all these features are implemented in GUI, so the user can do all these operation in user friendly, hassle-free way.
We use database and database technology are having a major impact on the growing use of computers. The implementation of the system was done using Python, Tkinter, Python Imaging Library, bcrypt and SQLite technologies, allowing system to be run in Windows OS. Our project “The Progress Book” is specially designed to work with students’ data. We have designed 6 sections – LOGIN, VIEW, DATA ENTRY, MARKS ENTRY, RESULT, ADMIN PORTAL.
- In “Log In”, a username and password are required. There are two types of user, mainly one is “USER” and another is “ADMIN”. Certain types of actions like, deletion/addition of other users is restricted and also, ADMIN accounts can’t be deleted. Users/Admins can only access this program using a valid “username” and “password. In case of forget password / password recovery, this action must be done through System Administrator.
- In “View” section, all the enlisted students of the selected class and section/stream can be viewed and will allow data update for enlisted students.
- In “Data Entry” section, user will have to select the respective class first, and then user can add the details about student by filling some basic information like – Name, Class, Section, Roll No., Date of Birth, etc.
- In “Marks Entry” section, user should be able to enter marks details of respective students. Now, one thing to be noted that, to prevent ambiguation of higher secondary level subjects, we have omitted the normal section names and instead we are renaming these sections by their respective streams, i.e., “SCIENCE”, “ARTS”, “COMMERCE”.
- In “Results” section, important information like list of students in that class and student marks will be shown upon selecting the proper class and section.
- “Admin Portal” is only visible to admins, those who manage the database. Addition and deletion of users are available through this portal. As a security measures, some admin accounts are can’t be deleted. Even though while deleting, program may report that “This user is deleted” but it actually never deletes. These admin can safely re login again.
Our project is aimed towards the institution personnel and they are the intended recipients. As discussed earlier, the main objective is to maintain students’ data and storing it in a certain manner so that this can be used later to further improve the performance of the students itself. It is a cross platform app with simple user interface. This is an alpha version and it has some limitations too, which we have discussed in details later in the documentation.
- Python3 - As a standalone app, should be installed in user’s PC while using. ( This is the main programming language used to prepare the app. )
- Tkinter - Python3 (Built-in) ( Provides main GUI of this app. )
- Bcrypt - Python3 (installable through PIP installer) ( Important for security functions to work. )
- Pillow - Python3 (installable through PIP installer) ( For importing certain images )
- Sqlite3 - Python3 (Built-in) ( Provides maintenance and storage functions for database )
Default Username - admin
Deafault Password - admin
Our project “The Progress Book” is specially designed to work with students’ data. We have designed 6 sections – LOGIN, VIEW, DATA ENTRY, MARKS ENTRY, RESULT, ADMIN PORTAL.
- In “Log In”, a username and password are required. There are two types of user, mainly one is “USER” and another is “ADMIN”. Certain types of actions like, deletion/addition of other users is restricted and also, ADMIN accounts can’t be deleted. Users/Admins can only access this program using a valid “username” and “password. In case of forget password / password recovery, this action must be done through System Administrator.
- In “View” section, all the enlisted students of the selected class and section/stream can be viewed and will allow data update for enlisted students.
- In “Data Entry” section, user will have to select the respective class first, and then user can add the details about student by filling some basic information like – Name, Class, Section, Roll No., Date of Birth, etc.
- In “Marks Entry” section, user should be able to enter marks details of respective students. Now, one thing to be noted that, to prevent ambiguation of higher secondary level subjects, we have omitted the normal section names and instead we are renaming these sections by their respective streams, i.e., “SCIENCE”, “ARTS”, “COMMERCE”.
- In “Results” section, important information like list of students in that class and student marks will be shown upon selecting the proper class and section.
- “Admin Portal” is only visible to admins, those who manage the database. Addition and deletion of users are available through this portal. As a security measures, some admin accounts are can’t be deleted. Even though while deleting, program may report that “This user is deleted” but it actually never deletes. These admin can safely re login again.
Simple flow-chart to describe the project
A database management system (DBMS) is a collection of programs that enables you to store, modify, and extract information from a database. There are many different types of database management systems, ranging from small systems that run on personal computers to huge systems that run on mainframes. We use database and database technology are having a major impact on the growing use of computers. The implementation of the system was done using SQLite.
In database, USER table is used to make admin and user for this application, so that the said valid user can enter to this application. To validate, we take user id as primary key, also take user type, password, entry date as a not null entity.
To enter student’s marks into the database, we make three tables such as JUNIOR, MIDDLE and SENIOR. Those 3 tables can fetch any sort of exam marks from class 1 to class 12.
In JUNIOR table, we can fetch unit test marks, half yearly marks and final exam marks for the student from class 1 to class 4. In this database, we also categorized classes into sections such as section A, section B and section C. In this table we take student roll number as primary key. Also take user name, user class and user section, date of birth, gender, guardian’s name and address as a not null integrity.
In Middle table, we can fetch unit test marks, half yearly marks and final exam marks for the student from class 5 to class 10. In this database, we also categorized classes into sections such as section A, section B and section C. In this table we take student roll number as primary key. Also take user name, user class and user section, date of birth, gender, guardian’s name and address as a not null integrity.
In Senior table, we can fetch unit test marks, half yearly marks and final exam marks for the student from class 11 and class 10. In this database, we also categorized classes into various streams such as Arts, Commerce and Science. The extra column we added to this table is optional subject. Here, any student can choose their favourite optional subject into their stream such as in arts anyone can choose their optional subject between Education and Political Science. In this table we take student roll number as primary key. Also take user name, user class and user stream, optional Subject, date of birth, gender, guardian’s name and address as a not null integrity.
We have designed 6 sections – LOGIN, VIEW, DATA ENTRY, MARKS ENTRY, RESULT, ADMIN PORTAL.
In “Log In”, a username and password are required. There are two types of user, mainly one is “USER” and another is “ADMIN”. Certain types of actions like, deletion/addition of other users is restricted and also, ADMIN accounts can’t be deleted. Users/Admins can only access this program using a valid “username” and “password. In case of forget password / password recovery, this action must be done through System Administrator.
Login Window
While logging in, without any valid credentials input, i.e., blank input, a message will be thrown, “All fields are required”.
If one of the fields are incorrect, either “Username” or “Password” then an error message will be shown “Incorrect Username/Password Entered”.
If you click “Forgot Password”, then a message will appear “Please contact system admin!”. Please note, all fields are CASE SENSITIVE.
After Logging In successfully
“Admin Portal” is only visible to admins, those who manage the database. Addition and deletion of users are available through this portal. As a security measures, some admin accounts are can’t be deleted. Even though while deleting, program may report that “This user is deleted” but it actually never deletes. These admin can safely re-login again.
Admin Portal Window
As we have mentioned earlier, an admin account is required to add/remove users further, so program while running at first time in a new system, it checks whether a valid admin user is available in the system, if not available then it automatically creates one with the credential which is hardcoded in the program itself. One cannot remove this SUPERADMIN without editing the source code. It is designed to discourage any mistake which can make this app inoperable.
Create ( ) function checking and creating Superadmin account when required.
Adding User through Admin Portal
In “Data Entry” section, user will have to select the respective class first, and then user can add the details about student by filling some basic information like – Name, Class, Section, Roll No., Date of Birth, etc.
Data Entry Window
Adding Student details in Data Entry
Confirmation Box before Adding Student Details in Data Entry
All fields are needed to be filled up before proceeding, an error message “All fields are required” will appear if one proceeds without filling. Also, “ROLL NUMBER” can take only INTEGER VALUES, if other type of value is entered, then “Please check Roll Number! Only Integer Values are accepted!” will be shown. And as “ROLL NUMBER” is used as primary key in our database, the application doesn’t allow to Add students to have same “ROLL NUMBER” in Data Entry.
Restricting User to Add Students with Existing Roll No.
In “View” section, all the enlisted students of the selected class and section/stream can be viewed and will allow data update for enlisted students. One can’t update any student’s section, roll, class further once created. This is done to prevent database anomalies. To do these operations, one should delete the student first, then re-create.
View Window
In “Marks Entry” section, user should be able to enter marks details of respective students. Now, one thing to be noted that, to prevent ambiguation of higher secondary level subjects, we have omitted the normal section names and instead we are renaming these sections by their respective streams, i.e., “SCIENCE”, “ARTS”, “COMMERCE”.
Marks Entry Window
In “Results” section, important information like list of students in that class and student marks will be shown upon selecting the proper class and section.
Result Window
Result Window after selecting class and section/stream
Result of a student shown in a window
The progress book has been specially created both for helping out teachers as well as students. For teachers, this would help to keep track of the academic quality as well as improvement level of students. This allows the teacher to manage student’s results academic wise, as well as class wise and stream wise. Students too can check their academic performance through this progress book.
A progress book at hand is beneficial, as it helps improvement of the general performance of students, it can be accessed easily, anywhere anytime – a record of everything can be kept due to its easy accessibility. It helps teachers keep track of students and as well as manage their activities. It even helps reducing the workload of teachers. It even improves student-teacher collaboration by increasing the interaction between teachers and students.
- A few operations are still static.
- The process of automation could not be performed due to lack of resources, manpower as well as timeframe. For example – The feature of Forget Password can only be controlled and handled by the Admin.
- Moreover, the authentication process could still be improved, it’s still in the basic level currently (due to unavailability of API).
- The authentication process could still be improved, which is currently in basic level will be worked upon.
- There will be upgradation of graphical interface in the future.
- More of analytics will be included.
- This shall be connected with cloud database.
- This shall be managed remotely.