Skip to content

Student Data Management Portal built with Tkinter and MySQL

License

Notifications You must be signed in to change notification settings

asood-life/avishkaar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

Introduction

In the bustling corridors of educational institutions, administrators are constantly overwhelmed with the sheer volume of student data they must manage. From enrollment records and attendance logs to academic performance and personal details , the task is monumental. Recognizing this challenge, I set out to create Avishkaar, a Student Data Management Portal that transforms how educational institutions handle student data.

Overview

Avishkaar serves as a Student Data Management Portal, featuring a Tkinter-based Frontend integrated with MySQL as its Backend Database. The seamless connection and interaction with the database is facilitated by the mysql-connector-python package, empowering the Frontend to access and manipulate data stored in database.

However Avishkaar is more than just a archive for student data. It embodies an ambitious vision for elevating data management and manipulation to new heights. At its current stage, the application caters to the administrative domain by providing essential functionalities for administering student data in a methodical manner.

                +-------------------+
                |      Tkinter      |
                |   (Client Side)   |
                +--------+----------+
                         |
                         | User Input
                         v
            +------------+------------------+
            |    mysql-connector-python     |
            |      (Data Processing)        |
            +------------+------------------+
                         |
                         | SQL Queries
                         v
                +--------+----------+
                |     MySQL DB      |
                |  (Server Side)    |
                +-------------------+

The following diagram depicts the schema of the MySQL database, encompassing crucial student information such as roll number, name, class, section, gender, contact number, email, date of birth, and address. The roll number is designated as PK (Primary Key) and UQ (Unique Index), ensuring each student is allocated a distinct identifier.


Installation and Setup

It is recommended to set up a virtual environment to avoid conflicts between package versions installed on your system and keep your workspace organized. To create a virtual environment and activate it, please follow the instructions detailed on python venv page. The procedure to deactivate the environment is also provided here.

Please note that currently, the application may not be fully responsive on smaller screens, potentially leading to UI breakdowns. I am actively working on UI enhancements to ensure resposive behavior of the Portal.

  • Clone the git repo using git clone https://github.com/asood-life/avishkaar.git
  • Install the required packages using pip install -r requirements.txt
  • Create a MySQL database following the schema described above. Ensure to specify the database name and required access password in the credentials.json file.

Usage

Navigate to the project folder and execute python main.py to run the application.

Welcome to the Login Page! Please provide your Username and Password to access the Portal. The default credentials are both set to "admin." You can easily change the password later from the Portal.



After a successful login, the user is greeted with a window showcasing the Portal interface, which includes 8 Buttons (4 on each side). These buttons offer a range of functionalities:



VIEW STUDENTS: Enables user to access and view records of all students stored in the database in a tabular format.


ADD STUDENTS: Empowers the user to add student records to the database populating the following fields:

  • Roll Number
  • Name of Student
  • Section
  • Class
  • Gender
  • Contact Number
  • Date of Birth
  • Email
  • Address
Please note that the Roll Number holds fundamental significance for each student and cannot be shared with others. Hence, the portal strictly prohibits the duplication of roll numbers for multiple students. Furthermore, it is crucial to fill at least the Roll Number and Name of the Student. Other details can be updated later thorugh the Portal.



UPDATE STUDENTS: If you have entered incorrect details or missed some entries, don't fret! The portal allows you to update student records at your convenience. One of its most fascinating features for smooth operation is the Search functionality. User can easily search for a particular student using the following fields:

  • Roll Number
  • Name
  • Contact Number
  • Class
  • Section
  • Email
Leverage the search feature and get the results displayed in the table positioned on the right to locate the student for whom you wish to update details. Simply clicking on the student entry in the table will automatically populate the fields located on the left. From there, you can update any desired field. Once you are finished, use the Update button to apply the modifications and get them relfected in the database.



DELETE STUDENTS: If one of your students has recently left or transferred to another institution, it is crucial to promptly remove their relevant records from the database to prevent any confusion. The Search functionality mentioned above is also available for this purpose. Simply search for the concerned student, click on their entry in the table where the results are displayed, and then use the Delete button to remove them from the database.



CHANGE PASSWORD: If you have accidentally revealed your password to someone (well I have done at start :D) don't panic. You can change your password anytime you desire. However, before making the change, user must confirm their old password to ensure authentic access.

The login password is retrieved from the credentials.json file. If the validation is successful during the password change process, the new password is written to the JSON, overwriting the previous value.



EXIT: Enables the user to exit the portal and close the portal window. Please note that this button can only be used to close the main portal window and not any other active windows.

Future Work

  • Enhancing Responsiveness and Modularizing Codebase: Ensure the application adjusts to various screen sizes while modularizing the codebase for better organization and easier maintainence in the future.
  • Announcements: Introduce a feature for publishing announcements in the application.
  • Personalized Dashboards: Incorporate a personalized dashboard for students, showcasing their attendance and grades, courses taken, and other pertinent personal information already recorded in the database.
  • Bulk Operations: Allow the use of an excel sheet to add or update student details in the database ensuring minimal manual intervention and streamlining of the overall procedure.

Thank you for taking the time to go through this project! If you find it valuable, please consider giving it a ⭐ star. Your support is appreciated and helps others in discovering the project. Should you have any enhancement requests or encounter a bug, please report it in the Issues section. Your feedback is crucial in improving this project for all.

About

Student Data Management Portal built with Tkinter and MySQL

Resources

License

Stars

Watchers

Forks

Languages