Project Report

You might also like

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

‭PROJECT REPORT‬

‭ON‬

‭STUDENT MANAGEMENT SYSTEM‬

‭Department of Computer Application‬


‭CHANDIGARH SCHOOL OF BUSINESS JHANJERI, MOHAL‬‭I‬

‭In partial fulfilment of the requirement for the award of the Degree of‬

‭Bachelor of Computer Applications‬

‭SUBMITTED BY: UNDER THE GUIDANCE OF‬


‭Lavish (2133104) Ms. Anjali‬
‭Mandeep Gautam (2133109) Asst. Prof.‬

‭Nov 2023‬

‭Affiliated to I.K Gujral Punjab Technical University, Jalandhar‬


‭(Batch: 2021-2024)‬
‭DECLARATION‬

‭We,‬ ‭Lavish‬ ‭and‬ ‭Mandeep‬ ‭Gautam‬ ‭hereby‬ ‭declare‬ ‭that‬ ‭the‬ ‭report‬ ‭of‬ ‭the‬ ‭project‬ ‭entitled‬
‭“Student‬‭Management‬‭System”‬‭has‬‭not‬‭presented‬‭as‬‭a‬‭part‬‭of‬‭any‬‭other‬‭academic‬‭work‬‭to‬‭get‬
‭my‬‭degree‬‭or‬‭certificate‬‭except‬‭Chandigarh‬‭School‬‭of‬‭Business‬‭Jhanjeri‬‭Mohali,‬‭affiliated‬‭to‬
‭I.K.‬‭Gujral‬‭Punjab‬‭Technical‬‭University,‬‭Jalandhar,‬‭for‬‭the‬‭fulfilment‬‭of‬‭the‬‭requirements‬‭for‬
‭the degree of bachelor’s in computer applications.‬

‭(SIGNATURE OF MENTOR) (SIGNATURE OF STUDENT)‬

‭NAME OF MENTOR NAME OF STUDENT‬


‭Ms. Anjali Lavish (2133104)‬
‭Mandeep Gautam (2133109)‬

‭(SIGNATURE OF PROJECT COORDINATOR)‬


‭PROJECT COORDINATOR‬
‭Ms. Shivani Thakur‬

‭ii‬
‭ACKNOWLEDGEMENT‬

‭I‬ ‭wish‬ ‭to‬ ‭express‬ ‭my‬ ‭heartfelt‬ ‭appreciation‬ ‭for‬ ‭the‬ ‭successful‬ ‭completion‬ ‭of‬ ‭the‬ ‭"Student‬
‭Management System" project.‬
‭I‬ ‭extend‬ ‭my‬ ‭deepest‬ ‭gratitude‬ ‭to‬ ‭Ms.‬ ‭Anjali‬ ‭for‬ ‭her‬ ‭invaluable‬ ‭guidance‬ ‭and‬ ‭unwavering‬
‭support throughout the development of this project.‬
‭I‬ ‭am‬ ‭indebted‬ ‭to‬ ‭the‬ ‭Chandigarh‬ ‭School‬ ‭of‬ ‭Business‬ ‭for‬ ‭providing‬ ‭the‬ ‭necessary‬‭resources‬
‭and fostering an environment conducive to learning and innovation.‬
‭Special‬‭thanks‬‭to‬‭my‬‭teammate,‬‭Mandeep‬‭Gautam,‬‭for‬‭their‬‭collaboration‬‭and‬‭support‬‭during‬
‭this project.‬
‭Lastly,‬ ‭I‬ ‭am‬ ‭grateful‬ ‭to‬ ‭all‬ ‭individuals‬‭who‬‭offered‬‭their‬‭support‬‭and‬‭motivation‬‭during‬‭this‬
‭endeavour.‬

‭SIGNATURE OF STUDENT:‬
‭Lavish (2133104)‬
‭Mandeep Gautam (2133109)‬
‭BCA‬

‭iii‬
‭Table of Contents‬

‭PARTICULARS‬ ‭Page No.‬


‭Title Page‬ ‭i‬

‭Declaration‬ ‭ii‬

‭Acknowledgement‬ ‭iii‬

‭Table of Contents‬ ‭iv-v‬

‭Abstract‬ ‭vi‬

‭CHAPTER -1 INTRODUCTION‬ ‭1-3‬

‭1.1 Background‬

‭1.2 Objectives‬

‭1.3 Scope‬

‭CHAPTER -2 REQUIREMENT ANALYSIS‬ ‭4-8‬

‭2.1 Functional Requirement‬

‭2.2 Non- Functional Requirement‬

‭2.3 Use Case Diagram‬

‭CHAPTER -3 SYSTEM DESIGN‬ ‭9-11‬

‭3.1 Overview‬

‭3.2 System Architecture‬

‭3.3 Database Design‬

‭CHAPTER -4 IMPLEMENTATION‬ ‭12-36‬

‭4.1 Technologies Used‬

‭4.2 Code Structure‬

‭4.3 Features Implemented‬

‭4.4 Code Snippets‬

‭iv‬
‭CHAPTER -5 TESTING‬ ‭37-38‬

‭5.1 Testing Strategy‬

‭5.2 Test Cases‬

‭5.3 Result and Observations‬

‭CHAPTER -6 USER MANUAL‬ ‭39-40‬

‭6.1 Installation Guide‬

‭6.2 How to Use the System‬

‭6.3 Troubleshooting‬

‭CHAPTER -7 FUTURE ENHANCEMENT‬ ‭41-42‬

‭7.1 Potential Upgrades‬

‭7.2 Additional Features‬

‭CONCLUSION‬ ‭43‬

‭REFERENCES‬ ‭44‬

‭v‬
‭ABSTRACT‬

‭The‬ ‭Student‬ ‭Management‬ ‭System‬ ‭(SMS)‬ ‭is‬ ‭an‬ ‭innovative‬ ‭software‬ ‭solution‬ ‭designed‬ ‭to‬

‭streamline‬ ‭administrative‬ ‭tasks‬ ‭and‬ ‭enhance‬ ‭the‬‭management‬‭of‬‭student-related‬‭information‬

‭within‬ ‭educational‬ ‭institutions.‬ ‭Developed‬ ‭using‬ ‭Python‬ ‭and‬ ‭Tkinter,‬ ‭this‬ ‭system‬ ‭offers‬ ‭a‬

‭user-friendly interface accessible across diverse operating systems.‬

‭At‬‭its‬‭core,‬‭the‬‭SMS‬‭integrates‬‭seamlessly‬‭with‬‭SQLite‬‭or‬‭MySQL‬‭databases,‬‭ensuring‬‭secure‬

‭storage‬ ‭and‬ ‭retrieval‬ ‭of‬ ‭student‬ ‭records.‬ ‭Its‬ ‭functionalities‬ ‭encompass‬ ‭student‬ ‭registration,‬

‭academic‬ ‭record‬ ‭management,‬ ‭grade‬ ‭tracking,‬ ‭and‬ ‭report‬ ‭generation.‬ ‭Administrators‬ ‭can‬

‭effortlessly‬ ‭add,‬ ‭modify,‬ ‭or‬ ‭remove‬ ‭student‬ ‭details,‬ ‭while‬ ‭teachers‬ ‭can‬ ‭efficiently‬ ‭update‬

‭grades‬‭and‬‭attendance‬‭records.‬‭The‬‭system's‬‭customizable‬‭report‬‭generation‬‭feature‬‭provides‬

‭comprehensive insights into student performance and academic trends.‬

‭Built‬‭on‬‭a‬‭modular‬‭architecture,‬‭the‬‭SMS‬‭boasts‬‭scalability,‬‭allowing‬‭for‬‭future‬‭enhancements‬

‭and‬ ‭adaptations‬ ‭to‬ ‭evolving‬ ‭educational‬ ‭requirements.‬‭Its‬‭robust‬‭authentication‬‭mechanisms‬

‭guarantee data security and access control, safeguarding sensitive student information.‬

‭The‬ ‭SMS‬ ‭serves‬ ‭as‬ ‭an‬ ‭invaluable‬ ‭tool‬ ‭for‬ ‭educational‬ ‭institutions,‬ ‭offering‬ ‭centralised‬

‭management‬ ‭of‬ ‭student‬ ‭data‬ ‭and‬ ‭automating‬ ‭routine‬ ‭tasks.‬ ‭By‬ ‭reducing‬ ‭administrative‬

‭burdens,‬ ‭it‬ ‭empowers‬ ‭educators‬ ‭to‬ ‭focus‬ ‭more‬ ‭on‬ ‭fostering‬ ‭quality‬ ‭education‬ ‭and‬ ‭student‬

‭development.‬ ‭Overall,‬ ‭the‬ ‭SMS‬ ‭revolutionises‬ ‭the‬ ‭educational‬ ‭landscape‬ ‭by‬ ‭providing‬ ‭an‬

‭efficient, secure, and user-friendly platform for managing student information.‬

‭vi‬
‭CHAPTER -1‬
‭INTRODUCTION‬
‭1.1 Background and Context‬
‭Educational‬ ‭institutions‬ ‭serve‬ ‭as‬ ‭hubs‬ ‭for‬ ‭learning,‬ ‭growth,‬ ‭and‬ ‭development.‬ ‭However,‬
‭managing‬ ‭the‬ ‭diverse‬‭array‬‭of‬‭student-related‬‭data‬‭has‬‭emerged‬‭as‬‭a‬‭significant‬‭challenge‬‭in‬
‭ensuring‬ ‭smooth‬ ‭administrative‬ ‭operations‬ ‭and‬ ‭effective‬ ‭academic‬ ‭management.‬ ‭Our‬
‭institution,‬ ‭in‬ ‭line‬ ‭with‬ ‭this‬ ‭trend,‬ ‭has‬ ‭encountered‬ ‭notable‬ ‭hurdles‬ ‭in‬ ‭managing‬ ‭the‬
‭burgeoning‬ ‭student‬ ‭population‬ ‭and‬ ‭their‬ ‭associated‬ ‭data.‬ ‭The‬ ‭prevailing‬ ‭system,‬
‭predominantly‬ ‭reliant‬ ‭on‬ ‭manual‬ ‭record-keeping‬ ‭and‬ ‭outdated‬ ‭databases,‬ ‭has‬ ‭proven‬
‭inadequate in coping with the increasing complexities and demands of modern academia.‬
‭The‬ ‭existing‬ ‭methods‬ ‭of‬ ‭maintaining‬ ‭student‬ ‭records‬ ‭involve‬ ‭fragmented,‬ ‭paper-based‬
‭systems‬‭or‬‭rudimentary‬‭databases‬‭that‬‭hinder‬‭seamless‬‭data‬‭retrieval,‬‭impede‬‭timely‬‭access‬‭to‬
‭information,‬‭and‬‭pose‬‭a‬‭substantial‬‭risk‬‭of‬‭errors‬‭due‬‭to‬‭manual‬‭entry.‬‭These‬‭limitations‬‭have‬
‭resulted‬ ‭in‬ ‭administrative‬ ‭inefficiencies,‬ ‭delayed‬ ‭decision-making‬ ‭processes,‬ ‭and‬ ‭a‬ ‭lack‬ ‭of‬
‭holistic insights into student performance and trends.‬

‭Identified Challenges and Limitations‬


‭1.‬ ‭Data‬ ‭Fragmentation:‬ ‭Student‬ ‭information‬ ‭is‬ ‭scattered‬ ‭across‬ ‭multiple‬ ‭systems,‬
‭making‬‭it‬‭cumbersome‬‭to‬‭retrieve‬‭comprehensive‬‭details‬‭and‬‭creating‬‭a‬‭challenge‬‭for‬
‭cross-referencing data.‬
‭2.‬ ‭Manual‬ ‭Processes:‬ ‭The‬ ‭reliance‬ ‭on‬ ‭manual‬ ‭data‬ ‭entry‬ ‭not‬ ‭only‬ ‭increases‬ ‭the‬
‭likelihood‬‭of‬‭errors‬‭but‬‭also‬‭consumes‬‭significant‬‭time‬‭and‬‭resources‬‭in‬‭administrative‬
‭tasks.‬
‭3.‬ ‭Limited‬ ‭Accessibility‬‭:‬ ‭The‬ ‭lack‬ ‭of‬ ‭a‬ ‭centralised‬‭system‬‭restricts‬‭the‬‭accessibility‬‭of‬
‭critical‬ ‭information‬ ‭to‬ ‭authorised‬ ‭personnel,‬ ‭hindering‬ ‭efficient‬ ‭decision-making‬
‭processes.‬

‭1.2 Objectives and Goals‬

‭1‬
‭Core Objectives‬
‭1.‬ ‭The‬ ‭Student‬ ‭Management‬ ‭System‬ ‭(SMS)‬ ‭project‬ ‭aims‬‭to‬‭overcome‬‭these‬‭challenges‬
‭and‬ ‭redefine‬ ‭the‬ ‭management‬ ‭of‬ ‭student-related‬ ‭data‬ ‭within‬ ‭our‬ ‭institution.‬ ‭The‬
‭primary objectives of the SMS project encompass:‬
‭2.‬ ‭Efficient‬ ‭Data‬ ‭Management:‬ ‭Creating‬ ‭a‬ ‭comprehensive‬ ‭and‬ ‭centralised‬ ‭repository‬
‭for‬ ‭student‬ ‭information‬ ‭to‬ ‭ensure‬ ‭accuracy,‬ ‭consistency,‬ ‭and‬ ‭accessibility‬ ‭across‬
‭administrative functions.‬
‭3.‬ ‭User-Centric‬ ‭Interface:‬ ‭Designing‬ ‭an‬ ‭intuitive‬ ‭and‬ ‭ergonomic‬ ‭interface‬ ‭that‬
‭promotes ease of use and minimises the learning curve for administrative staff.‬

‭Functional Objectives‬
‭1.‬ ‭Registration‬ ‭and‬ ‭Profile‬ ‭Management:‬ ‭Enabling‬ ‭the‬ ‭efficient‬ ‭registration‬ ‭of‬
‭students‬ ‭into‬ ‭the‬ ‭system‬ ‭and‬ ‭providing‬ ‭functionalities‬ ‭for‬ ‭updating‬ ‭and‬ ‭maintaining‬
‭student profiles.‬
‭2.‬ ‭Academic‬ ‭Progress‬ ‭Tracking:‬ ‭Implementing‬ ‭mechanisms‬ ‭to‬ ‭record‬ ‭and‬ ‭monitor‬
‭academic performance, including grades, attendance, and disciplinary records.‬
‭3.‬ ‭Reporting‬ ‭and‬ ‭Analytics:‬ ‭Developing‬ ‭robust‬ ‭reporting‬ ‭functionalities‬ ‭to‬ ‭generate‬
‭detailed‬ ‭reports,‬ ‭analytics,‬ ‭and‬ ‭insights‬ ‭into‬ ‭student‬ ‭performance‬ ‭for‬ ‭informed‬
‭decision-making.‬
‭4.‬ ‭Automation‬ ‭and‬ ‭Workflow‬ ‭Enhancement‬‭:‬ ‭Introducing‬ ‭automation‬ ‭in‬ ‭routine‬
‭administrative‬ ‭tasks‬ ‭to‬ ‭streamline‬ ‭processes‬ ‭and‬ ‭reduce‬ ‭manual‬ ‭efforts,‬ ‭thereby‬
‭improving overall workflow efficiency.‬

‭1.3 Scope of the Project‬


‭The‬ ‭scope‬ ‭of‬ ‭the‬ ‭Student‬ ‭Management‬ ‭System‬ ‭encompasses‬ ‭a‬‭wide‬‭array‬‭of‬‭administrative‬
‭functionalities related to student management. These include but are not limited to:‬
‭1.‬ ‭Student‬ ‭Information‬ ‭Management:‬ ‭Gathering,‬ ‭storing,‬ ‭and‬ ‭managing‬ ‭personal‬
‭details,‬ ‭contact‬ ‭information,‬ ‭enrollment‬ ‭status,‬ ‭academic‬ ‭history,‬ ‭and‬ ‭disciplinary‬
‭records.‬

‭2‬
‭2.‬ ‭Administrative‬ ‭Functions:‬ ‭Implementing‬ ‭user‬ ‭authentication,‬ ‭access‬ ‭control‬
‭mechanisms, and managing administrative roles and privileges within the system.‬
‭3.‬ ‭Academic‬ ‭Performance‬ ‭Tracking:‬ ‭Facilitating‬ ‭the‬ ‭recording‬ ‭of‬ ‭student‬ ‭grades,‬
‭performance‬‭indicators,‬‭generating‬‭comprehensive‬‭reports,‬‭and‬‭providing‬‭analytics‬‭for‬
‭academic progression and evaluation.‬

‭Rationale and Significance‬


‭The‬ ‭rationale‬ ‭behind‬ ‭initiating‬ ‭the‬ ‭SMS‬ ‭project‬ ‭is‬ ‭deeply‬ ‭rooted‬ ‭in‬ ‭addressing‬‭the‬‭inherent‬
‭inefficiencies‬ ‭of‬ ‭the‬ ‭existing‬ ‭administrative‬ ‭infrastructure.‬ ‭By‬ ‭modernising‬‭our‬‭systems,‬‭we‬
‭aim to achieve the following:‬
‭1.‬ ‭Enhanced‬ ‭Efficiency:‬ ‭Streamlining‬ ‭administrative‬ ‭processes‬ ‭to‬ ‭reduce‬ ‭redundancy‬
‭and manual efforts, leading to more efficient use of resources.‬
‭2.‬ ‭Improved‬ ‭Decision‬ ‭Making:‬ ‭Providing‬ ‭timely‬ ‭and‬ ‭accurate‬ ‭insights‬ ‭into‬ ‭student‬
‭performance‬ ‭to‬ ‭facilitate‬ ‭informed‬ ‭decision-making‬ ‭by‬ ‭academic‬ ‭and‬ ‭administrative‬
‭staff.‬
‭3.‬ ‭Better‬ ‭Service‬ ‭Delivery:‬ ‭Elevating‬ ‭the‬ ‭quality‬ ‭of‬ ‭services‬ ‭provided‬‭to‬‭students‬‭and‬
‭stakeholders through improved data accessibility and streamlined processes.‬
‭4.‬ ‭Alignment‬ ‭with‬ ‭Technological‬ ‭Trends:‬ ‭Embracing‬ ‭technology‬ ‭to‬ ‭keep‬ ‭pace‬ ‭with‬
‭evolving educational methodologies and industry standards.‬

‭3‬
‭CHAPTER -2‬
‭REQUIREMENTS ANALYSIS‬

‭2.1 Functional Requirements‬


‭Student Information Management‬
‭Requirement‬
‭The system should support the addition, modification, and deletion of student records.‬
‭Details‬
‭1.‬ ‭Student‬ ‭Profile‬ ‭Creation:‬ ‭Users‬ ‭should‬ ‭be‬ ‭able‬ ‭to‬ ‭input‬ ‭and‬ ‭update‬ ‭student‬ ‭details‬
‭including‬‭name,‬‭address,‬‭contact‬‭information,‬‭enrollment‬‭status,‬‭courses‬‭enrolled,‬‭and‬
‭academic records.‬
‭2.‬ ‭Modification‬‭and‬‭Deletion:‬‭Administrators‬‭should‬‭have‬‭the‬‭ability‬‭to‬‭modify‬‭existing‬
‭student information and delete student records when necessary.‬
‭User Authentication and Access Control‬
‭Requirement‬
‭Implement secure user authentication and access control mechanisms.‬
‭Details‬
‭1.‬ ‭Authentication:‬ ‭Users‬ ‭must‬ ‭log‬ ‭in‬ ‭using‬ ‭secure‬ ‭credentials‬ ‭(username/password)‬ ‭or‬
‭other authentication methods.‬
‭2.‬ ‭Role-Based‬ ‭Access:‬ ‭Different‬ ‭user‬ ‭roles‬ ‭(e.g.,‬ ‭administrators,‬ ‭teachers,‬ ‭students)‬
‭should have specific access rights to functionalities and data within the system.‬
‭Academic Tracking and Reporting‬
‭Requirement‬
‭Enable the tracking of student academic performance and generate reports.‬
‭Details‬
‭1.‬ ‭Grade‬ ‭Tracking:‬ ‭Record‬ ‭and‬ ‭maintain‬‭student‬‭grades,‬‭attendance,‬‭course‬‭completion‬
‭status, and disciplinary actions.‬
‭2.‬ ‭Reporting:‬‭Provide‬‭functionalities‬‭to‬‭generate‬‭comprehensive‬‭reports,‬‭analyse‬‭student‬
‭performance, and produce statistical data for individual students or groups.‬

‭4‬
‭Communication and Notification‬
‭Requirement‬
‭Facilitate communication between faculty, administrators, and students.‬
‭Details‬
‭1.‬ ‭Messaging‬ ‭System:‬ ‭Implement‬ ‭a‬ ‭messaging‬ ‭platform‬ ‭to‬ ‭enable‬ ‭communication‬
‭between users within the system.‬
‭2.‬ ‭Notification‬ ‭System:‬ ‭Provide‬ ‭a‬ ‭mechanism‬ ‭for‬ ‭sending‬‭notifications,‬‭reminders,‬‭and‬
‭updates‬ ‭to‬ ‭relevant‬ ‭stakeholders‬ ‭regarding‬ ‭academic‬ ‭progress‬ ‭or‬ ‭administrative‬
‭matters.‬
‭Automation of Administrative Tasks‬
‭Requirement‬
‭Automate routine administrative tasks to improve workflow efficiency.‬
‭Details‬
‭1.‬ ‭Automated‬ ‭Processes:‬ ‭Implement‬ ‭automated‬ ‭routines‬ ‭for‬ ‭tasks‬ ‭such‬ ‭as‬ ‭grade‬
‭calculation,‬ ‭report‬ ‭generation,‬ ‭data‬ ‭backups,‬ ‭and‬ ‭reminders‬ ‭for‬ ‭administrative‬
‭deadlines.‬
‭2.‬ ‭Scheduled‬‭Tasks:‬‭Enable‬‭scheduling‬‭of‬‭recurring‬‭tasks‬‭to‬‭reduce‬‭manual‬‭intervention‬
‭and streamline administrative processes.‬
‭2.2 Non-Functional Requirements‬
‭Performance‬
‭Requirement‬
‭The system must respond within acceptable time frames.‬
‭Details‬
‭Response‬ ‭Time:‬ ‭Ensure‬ ‭that‬‭system‬‭operations,‬‭such‬‭as‬‭data‬‭retrieval‬‭and‬‭report‬‭generation,‬
‭occur within defined response time thresholds.‬
‭Scalability:‬ ‭Maintain‬ ‭optimal‬ ‭performance‬ ‭as‬ ‭the‬ ‭system‬ ‭scales‬ ‭up‬ ‭with‬ ‭increased‬ ‭data‬‭and‬
‭user load.‬
‭Usability and User Interface‬
‭Requirement‬
‭The system should have an intuitive and user-friendly interface.‬

‭5‬
‭Details‬
‭1.‬ ‭Intuitiveness:‬‭Design‬‭the‬‭interface‬‭to‬‭be‬‭easily‬‭navigable‬‭and‬‭understandable‬‭for‬‭users‬
‭with varying technical proficiencies.‬
‭2.‬ ‭Accessibility:‬ ‭Ensure‬ ‭accessibility‬ ‭features‬ ‭for‬ ‭users‬ ‭with‬ ‭disabilities‬ ‭to‬ ‭promote‬
‭inclusivity.‬
‭Security‬
‭Requirement‬
‭Ensure data security and privacy.‬
‭Details‬
‭1.‬ ‭Data‬ ‭Encryption:‬ ‭Implement‬ ‭robust‬ ‭encryption‬ ‭methods‬ ‭to‬ ‭protect‬ ‭sensitive‬ ‭student‬
‭information.‬
‭2.‬ ‭Access‬ ‭Controls:‬ ‭Enforce‬ ‭strict‬ ‭access‬ ‭controls‬ ‭and‬ ‭permissions‬ ‭to‬ ‭prevent‬
‭unauthorised access to student records.‬
‭Scalability and Flexibility‬
‭Requirement‬
‭The system should accommodate future growth and changes.‬
‭Details‬
‭1.‬ ‭Scalability:‬ ‭Design‬ ‭the‬ ‭system‬ ‭architecture‬ ‭to‬ ‭be‬ ‭scalable,‬ ‭allowing‬ ‭for‬ ‭additional‬
‭functionalities and increased data volumes without significant reengineering.‬
‭2.‬ ‭Flexibility:‬ ‭Maintain‬ ‭flexibility‬ ‭to‬ ‭adapt‬ ‭to‬‭changing‬‭requirements‬‭and‬‭technological‬
‭advancements.‬
‭Reliability and Availability‬
‭Requirement‬
‭The system must be available during essential operational hours.‬
‭Details‬
‭1.‬ ‭Uptime‬‭Guarantee:‬‭Ensure‬‭high‬‭system‬‭availability‬‭during‬‭critical‬‭operational‬‭hours‬‭to‬
‭support administrative functions without significant interruptions.‬
‭2.‬ ‭Backup‬ ‭and‬ ‭Recovery:‬ ‭Implement‬ ‭robust‬ ‭backup‬ ‭mechanisms‬ ‭and‬ ‭disaster‬‭recovery‬
‭plans to ensure data integrity and minimise downtime in case of system failures.‬
‭2.3 Use Case Diagrams‬

‭6‬
‭Student Registration Use Case‬
‭Description‬
‭This‬ ‭use‬ ‭case‬ ‭illustrates‬ ‭the‬ ‭interaction‬ ‭between‬ ‭actors‬ ‭(administrators,‬ ‭students)‬ ‭and‬ ‭the‬
‭system for registering new students.‬
‭Key Actors‬
‭Administrator, Student‬
‭Activities‬
‭1.‬ ‭Inputting student details‬
‭2.‬ ‭Verifying information‬
‭3.‬ ‭Adding student to the system‬
‭Student Registration Use Case Diagram‬
‭Generate Student Report Use Case‬
‭Description‬
‭This‬ ‭use‬ ‭case‬ ‭demonstrates‬ ‭how‬ ‭administrators‬ ‭generate‬ ‭comprehensive‬ ‭reports‬ ‭for‬ ‭student‬
‭performance.‬
‭Key Actors‬
‭Administrator‬
‭Activities‬
‭1.‬ ‭Selecting student(s)‬
‭2.‬ ‭Specifying report parameters‬
‭3.‬ ‭Generating and viewing the report‬
‭Generate Student Report Use Case Diagram‬
‭Update Student Information Use Case‬
‭Description‬
‭This use case showcases the process of modifying student information in the system.‬
‭Key Actors‬
‭Administrator‬
‭Activities‬
‭1.‬ ‭Accessing student records‬
‭2.‬ ‭Making necessary updates‬

‭7‬
‭3.‬ ‭Saving changes‬
‭Update Student Information Use Case Diagram‬
‭User Authentication Use Case‬
‭Description‬
‭This use case illustrates the login process and access control mechanisms.‬
‭Key Actors‬
‭System, User‬
‭Activities‬
‭1.‬ ‭Providing credentials‬
‭2.‬ ‭Authentication‬
‭3.‬ ‭Granting access based on user role‬
‭User Authentication Use Case Diagram‬
‭Expanding‬‭on‬‭these‬‭requirements‬‭provides‬‭a‬‭detailed‬‭understanding‬‭of‬‭the‬‭functionalities‬‭and‬
‭qualities‬ ‭expected‬ ‭from‬ ‭the‬ ‭Student‬ ‭Management‬ ‭System.‬ ‭These‬ ‭specifications‬‭serve‬‭as‬‭the‬
‭foundation‬ ‭for‬ ‭the‬ ‭system's‬ ‭development‬ ‭and‬ ‭ensure‬ ‭alignment‬ ‭with‬ ‭user‬ ‭expectations‬ ‭and‬
‭institutional needs.‬

‭8‬
‭CHAPTER -3‬
‭SYSTEM DESIGN‬
‭3.1 Overview‬
‭The‬‭System‬‭Design‬‭segment‬‭outlines‬‭the‬‭fundamental‬‭structure‬‭and‬‭functional‬‭components‬‭of‬
‭the‬‭Student‬‭Management‬‭System.‬‭This‬‭section‬‭provides‬‭a‬‭comprehensive‬‭view‬‭of‬‭the‬‭system's‬
‭architecture, database design, and user interface layout.‬
‭3.2 System Architecture‬
‭Description‬
‭The‬ ‭architecture‬ ‭of‬ ‭the‬ ‭Student‬ ‭Management‬ ‭System‬ ‭is‬ ‭structured‬ ‭around‬ ‭a‬ ‭three-tier‬
‭architecture model, ensuring modularity, scalability, and maintainability.‬
‭Key Components‬
‭1.‬ ‭Presentation‬‭Layer:‬‭This‬‭layer‬‭encompasses‬‭the‬‭graphical‬‭user‬‭interface‬‭(GUI)‬‭using‬
‭Tkinter,‬ ‭providing‬ ‭a‬ ‭user-friendly‬ ‭interaction‬ ‭platform‬ ‭for‬ ‭administrators,‬ ‭teachers,‬
‭and users of the system.‬
‭2.‬ ‭Application‬ ‭Layer:‬ ‭The‬ ‭core‬ ‭logic‬ ‭and‬ ‭functionalities‬ ‭of‬ ‭the‬ ‭system‬ ‭reside‬ ‭in‬ ‭this‬
‭layer,‬ ‭developed‬ ‭in‬ ‭Python.‬ ‭It‬ ‭manages‬ ‭the‬ ‭data‬ ‭flow,‬ ‭business‬ ‭logic,‬ ‭and‬
‭communication between the presentation and database layers.‬
‭3.‬ ‭Database‬‭Layer:‬‭At‬‭the‬‭lowest‬‭level,‬‭the‬‭system‬‭interacts‬‭with‬‭the‬‭database‬‭layer.‬‭It‬
‭manages‬ ‭student-related‬ ‭data‬ ‭storage,‬ ‭retrieval,‬ ‭and‬ ‭manipulation‬ ‭using‬ ‭a‬ ‭relational‬
‭database system like MySQL or SQLite.‬
‭Architecture Type‬
‭The‬‭system‬‭adopts‬‭a‬‭modularized‬‭architecture,‬‭promoting‬‭separation‬‭of‬‭concerns‬‭and‬‭ease‬‭of‬
‭maintenance.‬ ‭The‬ ‭presentation,‬ ‭application,‬ ‭and‬ ‭database‬ ‭tiers‬ ‭are‬ ‭distinctly‬ ‭separated,‬
‭enabling‬‭scalability‬‭and‬‭easier‬‭modifications‬‭or‬‭updates‬‭to‬‭individual‬‭layers‬‭without‬‭affecting‬
‭the entire system.‬
‭3.3 Database Design‬
‭Description‬
‭The‬‭database‬‭design‬‭emphasises‬‭the‬‭structuring‬‭and‬‭organisation‬‭of‬‭data‬‭to‬‭ensure‬‭efficiency,‬
‭integrity, and optimal retrieval.‬

‭9‬
‭Database Schema‬
‭1.‬ ‭Students‬ ‭Table:‬ ‭Contains‬ ‭fields‬ ‭for‬ ‭student‬ ‭information‬ ‭such‬ ‭as‬ ‭student‬ ‭ID,‬ ‭name,‬
‭contact details, enrollment status, courses enrolled, and academic records.‬
‭2.‬ ‭Users‬ ‭Table:‬ ‭Stores‬ ‭information‬ ‭about‬ ‭system‬ ‭users‬ ‭including‬ ‭administrators,‬
‭teachers,‬ ‭and‬ ‭other‬ ‭users,‬ ‭with‬ ‭fields‬ ‭for‬ ‭login‬ ‭credentials,‬ ‭access‬ ‭rights,‬ ‭and‬
‭associated student IDs where applicable.‬
‭3.‬ ‭Grades‬ ‭Table:‬ ‭Tracks‬ ‭student‬ ‭grades,‬ ‭course‬ ‭information,‬ ‭and‬ ‭performance‬ ‭data,‬
‭linked to respective student IDs and course IDs.‬
‭4.‬ ‭Messages‬‭Table:‬‭Stores‬‭communication‬‭records‬‭between‬‭system‬‭users,‬‭with‬‭fields‬‭for‬
‭sender, receiver, message content, timestamps, and related IDs.‬
‭Relationships‬
‭1.‬ ‭Students‬ ‭-‬ ‭Grades:‬ ‭Establishes‬‭a‬‭one-to-many‬‭relationship,‬‭linking‬‭students‬‭to‬‭their‬
‭respective grades and course details.‬
‭2.‬ ‭Users‬ ‭-‬ ‭Students‬‭:‬ ‭Facilitates‬ ‭associations‬ ‭between‬ ‭users‬ ‭and‬ ‭students,‬ ‭enabling‬
‭administrators‬ ‭and‬ ‭teachers‬ ‭to‬ ‭interact‬ ‭with‬ ‭student‬ ‭data‬ ‭and‬‭perform‬‭administrative‬
‭functions.‬
‭3.4 User Interface Design‬
‭Description‬
‭The‬ ‭user‬ ‭interface‬ ‭design‬ ‭focuses‬ ‭on‬ ‭delivering‬ ‭an‬ ‭intuitive,‬ ‭user-friendly‬ ‭interface‬ ‭for‬
‭seamless interaction with the system functionalities.‬
‭Interface Elements‬
‭1.‬ ‭Input‬ ‭Forms:‬ ‭Tailored‬ ‭forms‬‭for‬‭inputting‬‭and‬‭updating‬‭student‬‭details,‬‭grades,‬‭and‬
‭user information, designed for clarity and ease of use.‬
‭2.‬ ‭Navigation‬ ‭Menus:‬ ‭Intuitive‬ ‭navigation‬ ‭menus‬ ‭enabling‬ ‭smooth‬ ‭traversal‬ ‭between‬
‭different sections and functionalities within the system.‬
‭3.‬ ‭Report‬ ‭Generation‬ ‭Interface:‬ ‭An‬ ‭accessible‬ ‭and‬ ‭straightforward‬ ‭interface‬ ‭for‬
‭generating‬ ‭comprehensive‬ ‭reports‬ ‭and‬ ‭analytics,‬ ‭providing‬ ‭necessary‬ ‭parameters‬‭for‬
‭report customization.‬

‭10‬
‭Design Principles‬
‭1.‬ ‭Consistency:‬ ‭Ensuring‬ ‭uniformity‬ ‭in‬ ‭design‬ ‭elements,‬ ‭colour‬ ‭schemes,‬ ‭and‬
‭navigation‬ ‭patterns‬ ‭across‬ ‭the‬ ‭entire‬ ‭system,‬ ‭enhancing‬ ‭user‬ ‭familiarity‬ ‭and‬ ‭ease‬ ‭of‬
‭navigation.‬
‭2.‬ ‭Accessibility:‬ ‭Designing‬ ‭the‬ ‭interface‬ ‭to‬ ‭be‬ ‭accessible‬ ‭and‬ ‭usable‬ ‭for‬ ‭users‬ ‭with‬
‭varying levels of technical expertise or potential disabilities.‬
‭3.‬ ‭Usability:‬ ‭Prioritising‬ ‭user‬ ‭experience‬ ‭by‬ ‭creating‬‭an‬‭interface‬‭that‬‭is‬‭intuitive,‬‭easy‬
‭to understand, and minimises the learning curve for users interacting with the system.‬

‭11‬
‭CHAPTER -4‬
‭IMPLEMENTATION‬

‭4.1 Technologies Used‬


‭The‬‭implementation‬‭of‬‭the‬‭Student‬‭Management‬‭System‬‭(SMS)‬‭relied‬‭on‬‭a‬‭carefully‬‭chosen‬
‭set of technologies to ensure robust functionality and efficient operation.‬

‭Programming Languages and Frameworks‬


‭1.‬ ‭Python:‬ ‭Selected‬ ‭as‬ ‭the‬ ‭primary‬ ‭programming‬ ‭language‬ ‭due‬ ‭to‬ ‭its‬ ‭versatility,‬
‭extensive‬ ‭libraries,‬ ‭and‬‭simplicity.‬‭Python‬‭served‬‭as‬‭the‬‭backbone‬‭for‬‭backend‬‭logic,‬
‭data handling, and implementing various system functionalities.‬
‭2.‬ ‭Tkinter:‬‭Utilised‬‭as‬‭the‬‭GUI‬‭toolkit‬‭for‬‭creating‬‭the‬‭system's‬‭graphical‬‭user‬‭interface.‬
‭Tkinter's‬ ‭integration‬ ‭with‬ ‭Python‬ ‭provided‬‭an‬‭intuitive‬‭and‬‭native‬‭interface‬‭for‬‭users‬
‭to interact with the system.‬

‭Database‬
‭For data management and storage, two database management systems were considered:‬
‭1.‬ ‭SQLite:‬ ‭Employed‬ ‭during‬ ‭development‬ ‭and‬ ‭testing‬ ‭phases‬ ‭due‬ ‭to‬ ‭its‬ ‭lightweight‬
‭nature‬ ‭and‬ ‭ease‬ ‭of‬ ‭setup,‬ ‭aiding‬ ‭rapid‬ ‭prototyping‬ ‭and‬ ‭testing‬ ‭of‬ ‭system‬
‭functionalities.‬
‭2.‬ ‭MySQL:‬‭Considered‬‭for‬‭larger‬‭deployments,‬‭owing‬‭to‬‭its‬‭scalability‬‭and‬‭robustness,‬
‭ensuring‬ ‭efficient‬ ‭handling‬ ‭of‬ ‭large‬ ‭volumes‬ ‭of‬ ‭student-related‬ ‭data‬ ‭in‬ ‭production‬
‭environments.‬
‭4.2 Code Structure‬
‭Modular Architecture‬
‭The‬ ‭SMS‬ ‭was‬ ‭architectured‬ ‭using‬‭a‬‭modular‬‭approach‬‭to‬‭ensure‬‭scalability,‬‭maintainability,‬
‭and reusability of code components.‬
‭1.‬ ‭Modularization:‬ ‭System‬ ‭functionalities‬ ‭were‬ ‭compartmentalised‬ ‭into‬ ‭distinct‬
‭modules‬ ‭and‬ ‭packages.‬ ‭For‬ ‭instance,‬‭modules‬‭were‬‭dedicated‬‭to‬‭user‬‭authentication,‬

‭12‬
‭student‬‭data‬‭management,‬‭report‬‭generation,‬‭etc.,‬‭ensuring‬‭a‬‭clear‬‭organisation‬‭of‬‭the‬
‭codebase.‬
‭2.‬ ‭Separation‬‭of‬‭Concerns:‬‭Each‬‭module‬‭focused‬‭on‬‭a‬‭specific‬‭aspect‬‭or‬‭concern‬‭of‬‭the‬
‭system,‬ ‭promoting‬ ‭code‬ ‭readability‬ ‭and‬ ‭allowing‬ ‭for‬ ‭independent‬ ‭development‬ ‭and‬
‭maintenance of different system components.‬
‭Backend Logic‬
‭The‬ ‭backend‬ ‭logic‬ ‭of‬ ‭the‬ ‭system‬ ‭was‬ ‭developed‬ ‭adhering‬ ‭to‬ ‭object-oriented‬ ‭programming‬
‭principles for enhanced flexibility and code organisation.‬
‭1.‬ ‭Object-Oriented‬ ‭Approach:‬ ‭Data‬ ‭and‬ ‭functionalities‬ ‭were‬ ‭encapsulated‬ ‭within‬
‭classes‬‭and‬‭methods,‬‭promoting‬‭code‬‭reusability,‬‭maintainability,‬‭and‬‭allowing‬‭for‬‭an‬
‭efficient division of responsibilities among different components.‬
‭2.‬ ‭Functionalities:‬ ‭Backend‬ ‭processing‬ ‭encompassed‬ ‭data‬ ‭validation,‬ ‭database‬
‭interactions,‬‭business‬‭logic‬‭handling,‬‭and‬‭implementing‬‭various‬‭system‬‭features‬‭such‬
‭as user authentication, student record management, and report generation.‬
‭4.3 Features Implemented‬
‭Student Management‬
‭The SMS offered comprehensive functionalities for managing student-related information:‬
‭1.‬ ‭Student‬‭Registration:‬‭Administrators‬‭could‬‭add,‬‭modify,‬‭and‬‭delete‬‭student‬‭records,‬
‭capturing‬ ‭details‬ ‭such‬ ‭as‬ ‭name,‬ ‭contact‬ ‭information,‬ ‭enrollment‬ ‭status,‬ ‭and‬ ‭courses‬
‭selected.‬
‭2.‬ ‭User‬ ‭Authentication:‬ ‭Secure‬ ‭login‬ ‭mechanisms‬ ‭were‬ ‭implemented‬ ‭to‬ ‭authenticate‬
‭users, ensuring access control based on different user roles within the system.‬
‭3.‬ ‭Grade‬‭Tracking:‬‭The‬‭system‬‭recorded‬‭and‬‭managed‬‭student‬‭grades,‬‭attendance,‬‭and‬
‭course-related‬ ‭information,‬ ‭enabling‬ ‭efficient‬ ‭academic‬ ‭tracking‬ ‭and‬ ‭performance‬
‭analysis.‬
‭4.‬ ‭Report‬ ‭Generation:‬‭Administrators‬‭could‬‭generate‬‭detailed‬‭reports‬‭and‬‭analytics‬‭on‬
‭student performance, providing insights into academic progress and trends.‬

‭13‬
‭4.4 Code Snippets‬
‭def addstudent():‬
‭def submitadd():‬
‭id = idval.get()‬
‭name = nameval.get()‬
‭mobile = mobileval.get()‬
‭email = emailval.get()‬
‭address = addressval.get()‬
‭gender = genderval.get()‬
‭dob = dobval.get()‬
‭addedtime = time.strftime("%H:%M:%S")‬
‭addeddate = time.strftime("%d/%m/%Y")‬
‭try:‬
‭strr = 'insert into studentdata1 values(%s,%s,%s,%s,%s,%s,%s,%s,%s)'‬

‭mycursor.execute(strr,(id,name,mobile,email,address,gender,dob,addeddate,addedtime))‬
‭con.commit()‬
‭res‬‭=‬‭messagebox.askyesnocancel('Notificatrions','Id‬‭{}‬‭Name‬‭{}‬‭Added‬‭sucessfully..‬
‭and want to clean the form'.format(id,name),parent=addroot)‬
‭if(res==True):‬
‭idval.set('')‬
‭nameval.set('')‬
‭mobileval.set('')‬
‭emailval.set('')‬
‭addressval.set('')‬
‭genderval.set('')‬
‭dobval.set('')‬
‭except:‬
‭messagebox.showerror('Notifications','Id‬ ‭Already‬ ‭Exist‬ ‭try‬ ‭another‬
‭id...',parent=addroot)‬

‭14‬
‭strr = 'select * from studentdata1'‬
‭mycursor.execute(strr)‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8]]‬
‭studenmttable.insert('',END,values=vv)‬

‭addroot = Toplevel(master=DataEntryFrame)‬
‭addroot.grab_set()‬
‭addroot.geometry('470x470+220+200')‬
‭addroot.title('Student Management System')‬
‭addroot.config(bg='blue')‬
‭addroot.iconbitmap('mana.ico')‬
‭addroot.resizable(False,False)‬
‭#--------------------------------------------------- Add studenmt Labels‬
‭idlabel‬ ‭=‬ ‭Label(addroot,text='Enter‬ ‭Id‬ ‭:‬
‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭idlabel.place(x=10,y=10)‬

‭namelabel‬ ‭=‬ ‭Label(addroot,text='Enter‬ ‭Name‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭namelabel.place(x=10,y=70)‬

‭mobilelabel‬ ‭=‬ ‭Label(addroot,text='Enter‬ ‭Mobile‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭mobilelabel.place(x=10,y=130)‬

‭emaillabel‬ ‭=‬ ‭Label(addroot,text='Enter‬ ‭Email‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭emaillabel.place(x=10,y=190)‬

‭15‬
‭addresslabel‬ ‭=‬ ‭Label(addroot,text='Enter‬ ‭Address‬ ‭:‬
‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭addresslabel.place(x=10,y=250)‬

‭genderlabel‬ ‭=‬ ‭Label(addroot,text='Enter‬ ‭Gender‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭genderlabel.place(x=10,y=310)‬

‭doblabel‬ ‭=‬ ‭Label(addroot,text='Enter‬ ‭D.O.B‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭doblabel.place(x=10,y=370)‬

‭##----------------------------------------------------------- Add student Entry‬


‭idval = StringVar()‬
‭nameval = StringVar()‬
‭mobileval = StringVar()‬
‭emailval = StringVar()‬
‭addressval = StringVar()‬
‭genderval = StringVar()‬
‭dobval = StringVar()‬

‭identry = Entry(addroot,font=('roman',15,'bold'),bd=5,textvariable=idval)‬
‭identry.place(x=250,y=10)‬

‭nameentry = Entry(addroot,font=('roman',15,'bold'),bd=5,textvariable=nameval)‬
‭nameentry.place(x=250,y=70)‬

‭mobileentry = Entry(addroot,font=('roman',15,'bold'),bd=5,textvariable=mobileval)‬
‭mobileentry.place(x=250,y=130)‬

‭16‬
‭emailentry = Entry(addroot,font=('roman',15,'bold'),bd=5,textvariable=emailval)‬
‭emailentry.place(x=250,y=190)‬

‭addressentry = Entry(addroot,font=('roman',15,'bold'),bd=5,textvariable=addressval)‬
‭addressentry.place(x=250,y=250)‬

‭genderentry = Entry(addroot,font=('roman',15,'bold'),bd=5,textvariable=genderval)‬
‭genderentry.place(x=250,y=310)‬

‭dobentry = Entry(addroot,font=('roman',15,'bold'),bd=5,textvariable=dobval)‬
‭dobentry.place(x=250,y=370)‬
‭############------------------------- add button‬
‭submitbtn‬ ‭=‬
‭Button(addroot,text='Submit',font=('roman',15,'bold'),width=20,bd=5,activebackground='blue‬
‭',activeforeground='white',‬
‭bg='red',command=submitadd)‬
‭submitbtn.place(x=150,y=420)‬

‭addroot.mainloop()‬

‭def searchstudent():‬
‭def search():‬
‭id = idval.get()‬
‭name = nameval.get()‬
‭mobile = mobileval.get()‬
‭email = emailval.get()‬
‭address = addressval.get()‬
‭gender = genderval.get()‬
‭dob = dobval.get()‬

‭17‬
‭addeddate = time.strftime("%d/%m/%Y")‬
‭if(id != ''):‬
‭strr = 'select *from studentdata1 where id=%s'‬
‭mycursor.execute(strr,(id))‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬
‭elif(name != ''):‬
‭strr = 'select *from studentdata1 where name=%s'‬
‭mycursor.execute(strr,(name))‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬
‭elif(mobile != ''):‬
‭strr = 'select *from studentdata1 where mobile=%s'‬
‭mycursor.execute(strr,(mobile))‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬
‭elif(email != ''):‬
‭strr = 'select *from studentdata1 where email=%s'‬
‭mycursor.execute(strr,(email))‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬

‭18‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬
‭elif(address != ''):‬
‭strr = 'select *from studentdata1 where address=%s'‬
‭mycursor.execute(strr,(address))‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬
‭elif(gender != ''):‬
‭strr = 'select *from studentdata1 where gender=%s'‬
‭mycursor.execute(strr,(gender))‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬
‭elif(dob != ''):‬
‭strr = 'select *from studentdata1 where dob=%s'‬
‭mycursor.execute(strr,(dob))‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬

‭elif(addeddate != ''):‬
‭strr = 'select *from studentdata1 where addeddate=%s'‬
‭mycursor.execute(strr,(addeddate))‬
‭datas = mycursor.fetchall()‬

‭19‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬

‭searchroot = Toplevel(master=DataEntryFrame)‬
‭searchroot.grab_set()‬
‭searchroot.geometry('470x540+220+200')‬
‭searchroot.title('Student Management System')‬
‭searchroot.config(bg='firebrick1')‬
‭searchroot.iconbitmap('mana.ico')‬
‭searchroot.resizable(False,False)‬
‭#--------------------------------------------------- Add studenmt Labels‬
‭idlabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭Id‬ ‭:‬
‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭idlabel.place(x=10,y=10)‬

‭namelabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭Name‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭namelabel.place(x=10,y=70)‬

‭mobilelabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭Mobile‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭mobilelabel.place(x=10,y=130)‬

‭emaillabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭Email‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭emaillabel.place(x=10,y=190)‬

‭addresslabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭Address‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬

‭20‬
‭addresslabel.place(x=10,y=250)‬

‭genderlabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭Gender‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭genderlabel.place(x=10,y=310)‬

‭doblabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭D.O.B‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭doblabel.place(x=10,y=370)‬

‭datelabel‬ ‭=‬ ‭Label(searchroot,text='Enter‬ ‭Date‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭datelabel.place(x=10,y=430)‬

‭##----------------------------------------------------------- Add student Entry‬


‭idval = StringVar()‬
‭nameval = StringVar()‬
‭mobileval = StringVar()‬
‭emailval = StringVar()‬
‭addressval = StringVar()‬
‭genderval = StringVar()‬
‭dobval = StringVar()‬
‭dateval = StringVar()‬

‭identry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=idval)‬
‭identry.place(x=250,y=10)‬

‭nameentry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=nameval)‬
‭nameentry.place(x=250,y=70)‬

‭mobileentry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=mobileval)‬

‭21‬
‭mobileentry.place(x=250,y=130)‬

‭emailentry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=emailval)‬
‭emailentry.place(x=250,y=190)‬

‭addressentry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=addressval)‬
‭addressentry.place(x=250,y=250)‬

‭genderentry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=genderval)‬
‭genderentry.place(x=250,y=310)‬

‭dobentry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=dobval)‬
‭dobentry.place(x=250,y=370)‬

‭dateentry = Entry(searchroot,font=('roman',15,'bold'),bd=5,textvariable=dateval)‬
‭dateentry.place(x=250,y=430)‬
‭############------------------------- add button‬
‭submitbtn‬ ‭=‬
‭Button(searchroot,text='Submit',font=('roman',15,'bold'),width=20,bd=5,activebackground='b‬
‭lue',activeforeground='white',‬
‭bg='red',command=search)‬
‭submitbtn.place(x=150,y=480)‬

‭searchroot.mainloop()‬
‭def deletestudent():‬
‭cc = studenmttable.focus()‬
‭content = studenmttable.item(cc)‬
‭pp = content['values'][0]‬
‭strr = 'delete from studentdata1 where id=%s'‬

‭22‬
‭mycursor.execute(strr,(pp))‬
‭con.commit()‬
‭messagebox.showinfo('Notifications','Id {} deleted sucessfully...'.format(pp))‬
‭strr = 'select *from studentdata1'‬
‭mycursor.execute(strr)‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬

‭def updatestudent():‬
‭def update():‬
‭id = idval.get()‬
‭name = nameval.get()‬
‭mobile = mobileval.get()‬
‭email = emailval.get()‬
‭address = addressval.get()‬
‭gender = genderval.get()‬
‭dob = dobval.get()‬
‭date = dateval.get()‬
‭time = timeval.get()‬

‭strr‬ ‭=‬ ‭'update‬ ‭studentdata1‬ ‭set‬


‭name=%s,mobile=%s,email=%s,address=%s,gender=%s,dob=%s,date=%s,time=%s‬ ‭where‬
‭id=%s'‬
‭mycursor.execute(strr,(name,mobile,email,address,gender,dob,date,time,id))‬
‭con.commit()‬
‭messagebox.showinfo('Notifications',‬ ‭'Id‬ ‭{}‬ ‭Modified‬
‭sucessfully...'.format(id),parent=updateroot)‬

‭23‬
‭strr = 'select *from studentdata1'‬
‭mycursor.execute(strr)‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬

‭updateroot = Toplevel(master=DataEntryFrame)‬
‭updateroot.grab_set()‬
‭updateroot.geometry('470x585+220+160')‬
‭updateroot.title('Student Management System')‬
‭updateroot.config(bg='firebrick1')‬
‭updateroot.iconbitmap('mana.ico')‬
‭updateroot.resizable(False,False)‬
‭#--------------------------------------------------- Add studenmt Labels‬
‭idlabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Id‬ ‭:‬
‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭idlabel.place(x=10,y=10)‬

‭namelabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Name‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭namelabel.place(x=10,y=70)‬

‭mobilelabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Mobile‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭mobilelabel.place(x=10,y=130)‬

‭emaillabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Email‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬

‭24‬
‭emaillabel.place(x=10,y=190)‬

‭addresslabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Address‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭addresslabel.place(x=10,y=250)‬

‭genderlabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Gender‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭genderlabel.place(x=10,y=310)‬

‭doblabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭D.O.B‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭doblabel.place(x=10,y=370)‬

‭datelabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Date‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭datelabel.place(x=10,y=430)‬

‭timelabel‬ ‭=‬ ‭Label(updateroot,text='Enter‬ ‭Time‬ ‭:‬


‭',bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=12,anchor='w')‬
‭timelabel.place(x=10,y=490)‬

‭##----------------------------------------------------------- Add student Entry‬


‭idval = StringVar()‬
‭nameval = StringVar()‬
‭mobileval = StringVar()‬
‭emailval = StringVar()‬
‭addressval = StringVar()‬
‭genderval = StringVar()‬
‭dobval = StringVar()‬
‭dateval = StringVar()‬

‭25‬
‭timeval = StringVar()‬

‭identry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=idval)‬
‭identry.place(x=250,y=10)‬

‭nameentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=nameval)‬
‭nameentry.place(x=250,y=70)‬

‭mobileentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=mobileval)‬
‭mobileentry.place(x=250,y=130)‬

‭emailentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=idval)‬
‭emailentry.place(x=250,y=190)‬

‭addressentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=addressval)‬
‭addressentry.place(x=250,y=250)‬

‭genderentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=genderval)‬
‭genderentry.place(x=250,y=310)‬

‭dobentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=dobval)‬
‭dobentry.place(x=250,y=370)‬

‭dateentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=dateval)‬
‭dateentry.place(x=250,y=430)‬

‭timeentry = Entry(updateroot,font=('roman',15,'bold'),bd=5,textvariable=dateval)‬
‭timeentry.place(x=250,y=490)‬
‭############------------------------- add button‬

‭26‬
‭submitbtn‬ ‭=‬
‭Button(updateroot,text='Submit',font=('roman',15,'bold'),width=20,bd=5,activebackground='b‬
‭lue',activeforeground='white',‬
‭bg='red',command=update)‬
‭submitbtn.place(x=150,y=540)‬
‭cc = studenmttable.focus()‬
‭content = studenmttable.item(cc)‬
‭pp = content['values']‬
‭if(len(pp) != 0):‬
‭idval.set(pp[0])‬
‭nameval.set(pp[1])‬
‭mobileval.set(pp[2])‬
‭emailval.set(pp[3])‬
‭addressval.set(pp[4])‬
‭genderval.set(pp[5])‬
‭dobval.set(pp[6])‬
‭dateval.set(pp[7])‬
‭timeval.set(pp[8])‬

‭updateroot.mainloop()‬
‭def showstudent():‬
‭strr = 'select *from studentdata1'‬
‭mycursor.execute(strr)‬
‭datas = mycursor.fetchall()‬
‭studenmttable.delete(*studenmttable.get_children())‬
‭for i in datas:‬
‭vv = [i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8]]‬
‭studenmttable.insert('', END, values=vv)‬

‭def exportstudent():‬
‭ff = filedialog.asksaveasfilename()‬

‭27‬
‭gg = studenmttable.get_children()‬
‭id,name,mobile,email,address,gender,dob,addeddate,addedtime=[],[],[],[],[],[],[],[],[]‬
‭for i in gg:‬
‭content = studenmttable.item(i)‬
‭pp = content['values']‬

‭id.append(pp[0]),name.append(pp[1]),mobile.append(pp[2]),email.append(pp[3]),address.app‬
‭end(pp[4]),gender.append(pp[5]),‬
‭dob.append(pp[6]),addeddate.append(pp[7]),addedtime.append(pp[8])‬
‭dd = ['Id','Name','Mobile','Email','Address','Gender','D.O.B','Added Date','Added Time']‬
‭df‬ ‭=‬
‭pandas.DataFrame(list(zip(id,name,mobile,email,address,gender,dob,addeddate,addedtime)),‬
‭columns=dd)‬
‭paths = r'{}.csv'.format(ff)‬
‭df.to_csv(paths,index=False)‬
‭messagebox.showinfo('Notifications', 'Student data is Saved {}'.format(paths))‬

‭def exitstudent():‬
‭res = messagebox.askyesnocancel('Notification','Do you want to exit?')‬
‭if(res == True):‬
‭root.destroy()‬

‭###########################################################################‬
‭########Connecttion of Database‬
‭def Connectdb():‬
‭def submitdb():‬
‭global con,mycursor‬
‭host = hostval.get()‬
‭user = userval.get()‬

‭28‬
‭password = passwordval.get()‬
‭try:‬
‭con = pymysql.connect(host=host,user=user,password=password)‬
‭mycursor = con.cursor()‬
‭except:‬
‭messagebox.showerror('Notifications','Data‬ ‭is‬ ‭incorrect‬ ‭please‬ ‭try‬
‭again',parent=dbroot)‬
‭return‬
‭try:‬
‭strr = 'create database studentmanagementsystem1'‬
‭mycursor.execute(strr)‬
‭strr = 'use studentmanagementsystem1'‬
‭mycursor.execute(strr)‬
‭strr‬‭=‬‭'create‬‭table‬‭studentdata1(id‬‭int,name‬‭varchar(20),mobile‬‭varchar(12),email‬
‭varchar(30),address‬ ‭varchar(100),gender‬ ‭varchar(50),dob‬ ‭varchar(50),date‬ ‭varchar(50),time‬
‭varchar(50))'‬
‭mycursor.execute(strr)‬
‭strr = 'alter table studentdata1 modify column id int not null'‬
‭mycursor.execute(strr)‬
‭strr = 'alter table studentdata1 modify column id int primary key'‬
‭mycursor.execute(strr)‬
‭messagebox.showinfo('Notification','database‬ ‭created‬ ‭and‬‭now‬‭you‬‭are‬‭connected‬
‭connected to the database ....',parent=dbroot)‬

‭except:‬
‭strr = 'use studentmanagementsystem1'‬
‭mycursor.execute(strr)‬
‭messagebox.showinfo('Notification','Now‬ ‭you‬ ‭are‬ ‭connected‬ ‭to‬ ‭the‬ ‭database‬
‭....',parent=dbroot)‬
‭dbroot.destroy()‬

‭29‬
‭dbroot = Toplevel()‬
‭dbroot.grab_set()‬
‭dbroot.geometry('470x250+800+230')‬
‭dbroot.iconbitmap('mana.ico')‬
‭dbroot.resizable(False,False)‬
‭dbroot.config(bg='blue')‬
‭#-------------------------------Connectdb Labels‬
‭hostlabel‬ ‭=‬ ‭Label(dbroot,text="Enter‬ ‭Host‬ ‭:‬
‭",bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=13,anchor='w')‬
‭hostlabel.place(x=10,y=10)‬

‭userlabel‬ ‭=‬ ‭Label(dbroot,text="Enter‬ ‭User‬ ‭:‬


‭",bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=13,anchor='w')‬
‭userlabel.place(x=10,y=70)‬

‭passwordlabel‬ ‭=‬ ‭Label(dbroot,text="Enter‬ ‭Password‬ ‭:‬


‭",bg='gold2',font=('times',20,'bold'),relief=GROOVE,borderwidth=3,width=13,anchor='w')‬
‭passwordlabel.place(x=10,y=130)‬

‭#-------------------------Connectdb Entry‬
‭hostval = StringVar()‬
‭userval = StringVar()‬
‭passwordval = StringVar()‬

‭hostentry = Entry(dbroot,font=('roman',15,'bold'),bd=5,textvariable=hostval)‬
‭hostentry.place(x=250,y=10)‬

‭userentry = Entry(dbroot,font=('roman',15,'bold'),bd=5,textvariable=userval)‬
‭userentry.place(x=250,y=70)‬

‭30‬
‭passwordentry = Entry(dbroot,font=('roman',15,'bold'),bd=5,textvariable=passwordval)‬
‭passwordentry.place(x=250,y=130)‬

‭#-------------------------------- Connectdb button‬


‭submitbutton‬ ‭=‬
‭Button(dbroot,text='Submit',font=('roman',15,'bold'),bg='red',bd=5,width=20,activebackgroun‬
‭d='blue',‬
‭activeforeground='white',command=submitdb)‬
‭submitbutton.place(x=150,y=190)‬

‭dbroot.mainloop()‬
‭###########################################‬
‭def tick():‬
‭time_string = time.strftime("%H:%M:%S")‬
‭date_string = time.strftime("%d/%m/%Y")‬
‭clock.config(text='Date :'+date_string+"\n"+"Time : "+time_string)‬
‭clock.after(200,tick)‬
‭#######################################INTRO SLIDER‬
‭import random‬
‭colors = ['red','green','blue','yellow','pink','red2','gold2']‬
‭def IntroLabelColorTick():‬
‭fg = random.choice(colors)‬
‭SliderLabel.config(fg=fg)‬
‭SliderLabel.after(2,IntroLabelColorTick)‬
‭def IntroLabelTick():‬
‭global count,text‬
‭if(count>=len(ss)):‬
‭count = 0‬
‭text = ''‬
‭SliderLabel.config(text=text)‬

‭31‬
‭else:‬
‭text = text+ss[count]‬
‭SliderLabel.config(text=text)‬
‭count += 1‬
‭SliderLabel.after(200,IntroLabelTick)‬

‭###########################################################################‬
‭###############################‬
‭from tkinter import *‬
‭from tkinter import Toplevel,messagebox,filedialog‬
‭from tkinter.ttk import Treeview‬
‭from tkinter import ttk‬
‭import pandas‬
‭import pymysql‬
‭import time‬
‭root = Tk()‬
‭root.title('Student Management System')‬
‭root.config(bg='gold2')‬
‭root.geometry('1174x700+200+50')‬
‭root.iconbitmap('mana.ico')‬
‭root.resizable(False,False)‬
‭###########################################################################‬
‭################################# Frames‬
‭##---------------------------------------------------------------------------- dataentry frame‬

‭DataEntryFrame = Frame(root,bg='gold2',relief=GROOVE,borderwidth=5)‬
‭DataEntryFrame.place(x=10,y=80,width=500,height=600)‬
‭frontlabel‬ ‭=‬
‭Label(DataEntryFrame,text='--------------Welcome--------------',width=30,font=('arial',22,'itali‬
‭c bold'),bg='gold2')‬
‭frontlabel.pack(side=TOP,expand=True)‬

‭32‬
‭addbtn‬ ‭=‬ ‭Button(DataEntryFrame,text='1.‬ ‭Add‬
‭Student',width=25,font=('chiller',20,'bold'),bd=6,bg='skyblue3',activebackground='blue',relief‬
‭=RIDGE,‬
‭activeforeground='white',command=addstudent)‬
‭addbtn.pack(side=TOP,expand=True)‬

‭searchbtn‬ ‭=‬ ‭Button(DataEntryFrame,text='2.‬ ‭Search‬


‭Student',width=25,font=('chiller',20,'bold'),bd=6,bg='skyblue3',activebackground='blue',relief‬
‭=RIDGE,‬
‭activeforeground='white',command=searchstudent)‬
‭searchbtn.pack(side=TOP,expand=True)‬

‭deletebtn‬ ‭=‬ ‭Button(DataEntryFrame,text='3.‬ ‭Delete‬


‭Student',width=25,font=('chiller',20,'bold'),bd=6,bg='skyblue3',activebackground='blue',relief‬
‭=RIDGE,‬
‭activeforeground='white',command=deletestudent)‬
‭deletebtn.pack(side=TOP,expand=True)‬

‭updatebtn‬ ‭=‬ ‭Button(DataEntryFrame,text='4.‬ ‭Update‬


‭Student',width=25,font=('chiller',20,'bold'),bd=6,bg='skyblue3',activebackground='blue',relief‬
‭=RIDGE,‬
‭activeforeground='white',command=updatestudent)‬
‭updatebtn.pack(side=TOP,expand=True)‬

‭showallbtn‬ ‭=‬ ‭Button(DataEntryFrame,text='5.‬ ‭Show‬


‭All',width=25,font=('chiller',20,'bold'),bd=6,bg='skyblue3',activebackground='blue',relief=RI‬
‭DGE,‬
‭activeforeground='white',command=showstudent)‬
‭showallbtn.pack(side=TOP,expand=True)‬

‭33‬
‭exportbtn‬ ‭=‬ ‭Button(DataEntryFrame,text='6.‬ ‭Export‬
‭data',width=25,font=('chiller',20,'bold'),bd=6,bg='skyblue3',activebackground='blue',relief=R‬
‭IDGE,‬
‭activeforeground='white',command=exportstudent)‬
‭exportbtn.pack(side=TOP,expand=True)‬

‭exitbtn‬ ‭=‬ ‭Button(DataEntryFrame,text='7.‬


‭Exit',width=25,font=('chiller',20,'bold'),bd=6,bg='skyblue3',activebackground='blue',relief=R‬
‭IDGE,‬
‭activeforeground='white',command=exitstudent)‬
‭exitbtn.pack(side=TOP,expand=True)‬

‭##-----------------------------------------------------------Show data frame‬


‭ShowDataFrame = Frame(root,bg='gold2',relief=GROOVE,borderwidth=5)‬
‭ShowDataFrame.place(x=550,y=80,width=620,height=600)‬

‭##------------------------------------------------- Showdataframe‬
‭style = ttk.Style()‬
‭style.configure('Treeview.Heading',font=('chiller',20,'bold'),foreground='blue')‬
‭style.configure('Treeview',font=('times',15,'bold'),background='cyan',foreground='black')‬
‭scroll_x = Scrollbar(ShowDataFrame,orient=HORIZONTAL)‬
‭scroll_y = Scrollbar(ShowDataFrame,orient=VERTICAL)‬
‭studenmttable‬ ‭=‬ ‭Treeview(ShowDataFrame,columns=('Id','Name','Mobile‬
‭No','Email','Address','Gender','D.O.B','Added Date','Added Time'),‬
‭yscrollcommand=scroll_y.set,xscrollcommand=scroll_x.set)‬
‭scroll_x.pack(side=BOTTOM,fill=X)‬
‭scroll_y.pack(side=RIGHT,fill=Y)‬
‭scroll_x.config(command=studenmttable.xview)‬
‭scroll_y.config(command=studenmttable.yview)‬
‭studenmttable.heading('Id',text='Id')‬
‭studenmttable.heading('Name',text='Name')‬

‭34‬
‭studenmttable.heading('Mobile No',text='Mobile No')‬
‭studenmttable.heading('Email',text='Email')‬
‭studenmttable.heading('Address',text='Address')‬
‭studenmttable.heading('Gender',text='Gender')‬
‭studenmttable.heading('D.O.B',text='D.O.B')‬
‭studenmttable.heading('Added Date',text='Added Date')‬
‭studenmttable.heading('Added Time',text='Added Time')‬
‭studenmttable['show'] = 'headings'‬
‭studenmttable.column('Id',width=100)‬
‭studenmttable.column('Name',width=200)‬
‭studenmttable.column('Mobile No',width=200)‬
‭studenmttable.column('Email',width=300)‬
‭studenmttable.column('Address',width=200)‬
‭studenmttable.column('Gender',width=100)‬
‭studenmttable.column('D.O.B',width=150)‬
‭studenmttable.column('Added Date',width=150)‬
‭studenmttable.column('Added Time',width=150)‬
‭studenmttable.pack(fill=BOTH,expand=1)‬

‭###########################################################################‬
‭##################################### Slider‬
‭ss = 'Welcome To Student Management System'‬
‭count = 0‬
‭text = ''‬
‭##################################‬
‭SliderLabel‬ ‭=‬ ‭Label(root,text=ss,font=('chiller',30,'italic‬
‭bold'),relief=RIDGE,borderwidth=4,width=35,bg='cyan')‬
‭SliderLabel.place(x=260,y=0)‬
‭IntroLabelTick()‬
‭IntroLabelColorTick()‬

‭35‬
‭###########################################################################‬
‭#################################### clock‬
‭clock = Label(root,font=('times',14,'bold'),relief=RIDGE,borderwidth=4,bg='lawn green')‬
‭clock.place(x=0,y=0)‬
‭tick()‬
‭###########################################################################‬
‭####################################### ConnectDatabaseButton‬
‭connectbutton‬ ‭=‬ ‭Button(root,text='Connect‬ ‭To‬ ‭Database',width=23,font=('chiller',19,'italic‬
‭bold'),relief=RIDGE,borderwidth=4,bg='green2',‬
‭activebackground='blue',activeforeground='white',command=Connectdb)‬
‭connectbutton.place(x=930,y=0)root.mainloop()‬

‭36‬
‭CHAPTER -5‬
‭TESTING‬
‭5.1 Testing Strategy‬
‭Testing Phases‬
‭1.‬ ‭Unit‬ ‭Testing:‬ ‭Conducted‬ ‭individual‬ ‭testing‬ ‭of‬‭modules‬‭and‬‭functions‬‭to‬‭ensure‬‭they‬
‭perform as expected.‬
‭2.‬ ‭Integration‬ ‭Testing:‬ ‭Examined‬ ‭the‬ ‭interactions‬‭between‬‭different‬‭modules‬‭to‬‭verify‬
‭proper integration and data flow.‬
‭3.‬ ‭System‬ ‭Testing:‬ ‭Evaluated‬ ‭the‬ ‭entire‬ ‭system‬ ‭as‬ ‭a‬ ‭whole,‬ ‭checking‬ ‭its‬ ‭compliance‬
‭with requirements and functionalities.‬
‭Test Environment‬
‭1.‬ ‭Local‬ ‭Testing:‬ ‭Primarily‬ ‭conducted‬ ‭testing‬ ‭in‬ ‭a‬ ‭controlled‬ ‭environment‬ ‭using‬ ‭local‬
‭development setups and databases.‬
‭2.‬ ‭Scenario-based‬ ‭Testing:‬ ‭Emulated‬ ‭real-world‬ ‭scenarios‬ ‭to‬ ‭validate‬ ‭the‬ ‭system's‬
‭behaviour‬ ‭under‬ ‭different‬ ‭conditions,‬ ‭such‬ ‭as‬ ‭adding/deleting‬ ‭students,‬ ‭generating‬
‭reports, and handling simultaneous user interactions.‬
‭5.2 Test Cases‬
‭User Authentication Test Case‬
‭Objective:‬‭Validate user login functionality.‬
‭Steps:‬
‭1.‬ ‭Enter the correct username and password.‬
‭2.‬ ‭Enter incorrect username.‬
‭3.‬ ‭Enter incorrect password.‬
‭Expected Result:‬‭Successful login with correct credentials;‬‭failure otherwise.‬
‭Student Registration Test Case‬
‭Objective:‬‭Test student registration functionality.‬
‭Steps:‬
‭1.‬ ‭Add a new student with complete details.‬
‭2.‬ ‭Add a student with incomplete details.‬
‭3.‬ ‭Delete a student record.‬

‭37‬
‭Expected‬‭Result:‬‭Successful‬‭addition‬‭and‬‭deletion‬‭of‬‭students‬‭with‬‭complete‬‭details;‬‭error‬‭on‬
‭incomplete details.‬
‭Grade Tracking Test Case‬
‭Objective:‬‭Validate grade tracking and report generation.‬
‭Steps:‬
‭1.‬ ‭Enter and update student grades for a course.‬
‭2.‬ ‭Generate a report for a specific student.‬
‭Expected Result:‬‭Correct recording of grades; accurate‬‭generation of student reports.‬
‭5.3 Results and Observations‬
‭User Authentication Results‬
‭1.‬ ‭Test 1: Successful login with correct credentials.‬
‭2.‬ ‭Test 2: Failure to login with incorrect username.‬
‭3.‬ ‭Test 3: Failure to login with incorrect password.‬
‭Observations:‬ ‭Authentication‬ ‭system‬ ‭functions‬ ‭correctly.‬ ‭Error‬ ‭messages‬ ‭display‬ ‭for‬
‭incorrect inputs.‬
‭Student Registration Results‬
‭1.‬ ‭Test 1: Successful addition and deletion of students with complete details.‬
‭2.‬ ‭Test 2: Error reported for adding students with incomplete details.‬
‭Observations:‬ ‭System‬ ‭accurately‬ ‭handles‬ ‭student‬ ‭registration;‬ ‭validation‬ ‭for‬‭complete‬‭data‬
‭entry functions properly.‬
‭Grade Tracking Results‬
‭1.‬ ‭Test 1: Accurate recording and updating of student grades.‬
‭2.‬ ‭Test 2: Correct generation of detailed student reports.‬
‭Observations:‬ ‭Grade‬ ‭tracking‬ ‭and‬ ‭report‬ ‭generation‬ ‭functionalities‬ ‭operate‬ ‭correctly,‬
‭providing accurate academic insights.‬
‭Summary‬
‭The‬ ‭testing‬‭phase‬‭successfully‬‭validated‬‭the‬‭core‬‭functionalities‬‭of‬‭the‬‭Student‬‭Management‬
‭System, confirming their compliance with system requirements and expected behaviour.‬

‭38‬
‭CHAPTER -6‬
‭USER MANUAL‬
‭6.1‬‭Installation Guide‬
‭Hardware Requirements:‬
‭●‬ ‭Check‬ ‭the‬ ‭system‬ ‭requirements‬ ‭specified‬ ‭in‬ ‭the‬ ‭user‬ ‭manual‬ ‭or‬ ‭product‬
‭documentation.‬‭Ensure‬‭your‬‭computer‬‭meets‬‭or‬‭exceeds‬‭these‬‭requirements‬‭regarding‬
‭processor speed, RAM, available disk space, and other hardware specifications.‬
‭Software Installation:‬
‭1.‬ ‭Download the installation package from the official website or provided source.‬
‭2.‬ ‭Locate the downloaded file and double-click to start the installation process.‬
‭3.‬ ‭Follow‬‭the‬‭prompts‬‭in‬‭the‬‭installation‬‭wizard.‬‭It‬‭typically‬‭includes‬‭agreeing‬‭to‬‭terms,‬
‭selecting‬‭the‬‭installation‬‭directory,‬‭and‬‭optionally‬‭choosing‬‭additional‬‭components‬‭to‬
‭install.‬
‭4.‬ ‭Wait‬‭for‬‭the‬‭installation‬‭to‬‭complete.‬‭Once‬‭done,‬‭you‬‭may‬‭be‬‭prompted‬‭to‬‭restart‬‭your‬
‭system.‬
‭Activation/Registration:‬
‭●‬ ‭Some‬‭software‬‭might‬‭require‬‭activation‬‭or‬‭registration‬‭using‬‭a‬‭licence‬‭key‬‭or‬‭specific‬
‭process.‬ ‭Follow‬ ‭the‬ ‭instructions‬ ‭provided‬ ‭with‬ ‭your‬‭purchase‬‭to‬‭activate/register‬‭the‬
‭software.‬
‭6.2 How to Use the System‬
‭Getting Started:‬
‭1.‬ ‭After installation, find the program icon and double-click to open the application.‬
‭2.‬ ‭Take‬‭a‬‭moment‬‭to‬‭explore‬‭the‬‭interface.‬‭Look‬‭for‬‭menus,‬‭buttons,‬‭or‬‭panels‬‭that‬‭might‬
‭guide you through various functions.‬
‭Basic Functions:‬
‭●‬ ‭The‬ ‭user‬ ‭guide‬ ‭or‬‭tooltips‬‭within‬‭the‬‭software‬‭can‬‭help‬‭you‬‭perform‬‭basic‬‭tasks.‬‭For‬
‭example,‬ ‭if‬ ‭it's‬ ‭a‬ ‭design‬ ‭software,‬ ‭familiarise‬ ‭yourself‬ ‭with‬ ‭tools‬ ‭like‬ ‭selection,‬
‭drawing, and saving files.‬
‭Advanced Features:‬

‭39‬
‭●‬ ‭To‬ ‭explore‬ ‭advanced‬ ‭capabilities,‬ ‭refer‬ ‭to‬ ‭the‬ ‭advanced‬ ‭user‬ ‭manual‬ ‭or‬ ‭online‬
‭documentation‬ ‭(if‬ ‭available).‬ ‭This‬ ‭might‬ ‭cover‬ ‭features‬ ‭beyond‬ ‭the‬ ‭basics,‬ ‭such‬ ‭as‬
‭customization, advanced settings, or integration with other software/tools.‬
‭Additional Resources:‬
‭●‬ ‭Online‬ ‭tutorials,‬ ‭forums,‬ ‭or‬ ‭support‬ ‭documentation‬ ‭might‬ ‭provide‬ ‭valuable‬ ‭insights‬
‭into‬‭using‬‭the‬‭software‬‭efficiently.‬‭These‬‭resources‬‭can‬‭offer‬‭tips,‬‭tricks,‬‭and‬‭solutions‬
‭to common challenges users face.‬
‭6.3 Troubleshooting‬
‭Common Issues and Solutions:‬
‭●‬ ‭The‬ ‭troubleshooting‬ ‭section‬ ‭in‬ ‭the‬ ‭manual‬ ‭typically‬ ‭addresses‬ ‭common‬ ‭problems‬
‭users‬‭encounter‬‭during‬‭installation‬‭or‬‭usage.‬‭It‬‭might‬‭cover‬‭issues‬‭like‬‭crashes,‬‭errors,‬
‭or functionality problems along with recommended solutions.‬
‭Contact Support:‬
‭●‬ ‭If‬‭you‬‭encounter‬‭an‬‭issue‬‭not‬‭covered‬‭in‬‭the‬‭troubleshooting‬‭section,‬‭contact‬‭customer‬
‭support.‬ ‭Provide‬ ‭detailed‬ ‭information‬ ‭about‬ ‭the‬ ‭problem,‬ ‭including‬ ‭any‬ ‭error‬
‭messages‬ ‭or‬ ‭steps‬ ‭leading‬ ‭up‬ ‭to‬ ‭the‬ ‭issue.‬ ‭This‬ ‭will‬ ‭help‬‭the‬‭support‬‭team‬‭diagnose‬
‭and resolve the problem more effectively.‬

‭40‬
‭CHAPTER -7‬
‭FUTURE ENHANCEMENTS‬
‭7.1 Potential Upgrades‬
‭1. Performance Boosts:‬
‭Optimization‬‭Strategies:‬‭Conduct‬‭in-depth‬‭code‬‭analysis‬‭to‬‭identify‬‭inefficiencies‬‭and‬
‭optimise algorithms, improving processing speed and resource utilisation.‬
‭Scalability‬ ‭Measures:‬ ‭Redesign‬ ‭the‬ ‭system‬ ‭architecture‬ ‭to‬ ‭accommodate‬ ‭increased‬
‭loads without compromising performance, ensuring seamless scalability.‬
‭2. User Experience Enhancements:‬
‭UI/UX‬ ‭Refinement:‬ ‭Redefine‬ ‭the‬ ‭interface‬ ‭for‬ ‭a‬ ‭modern,‬ ‭intuitive‬ ‭design‬ ‭with‬
‭simplified navigation, ensuring a delightful user experience.‬
‭Personalization‬ ‭Features:‬ ‭Implement‬ ‭customizable‬ ‭elements‬ ‭to‬ ‭allow‬ ‭users‬ ‭to‬ ‭tailor‬
‭their experience, enhancing engagement and satisfaction.‬
‭3. Security Reinforcement:‬
‭Advanced‬‭Encryption‬‭Standards:‬‭Implement‬‭robust‬‭encryption‬‭methods‬‭to‬‭fortify‬‭data‬
‭protection against potential breaches or unauthorised access.‬
‭Proactive‬ ‭Security‬ ‭Updates:‬ ‭Establish‬ ‭a‬ ‭structured‬ ‭plan‬ ‭for‬ ‭regular‬ ‭security‬ ‭updates‬
‭and vulnerability assessments to preemptively address potential threats.‬
‭4. Compatibility and Adaptability:‬
‭Cross-Platform‬ ‭Compatibility:‬ ‭Ensure‬ ‭seamless‬ ‭operation‬ ‭across‬‭various‬‭devices‬‭and‬
‭operating systems, maintaining compatibility with evolving technology.‬
‭API‬ ‭Integration‬ ‭Advancements:‬ ‭Expand‬ ‭and‬ ‭enhance‬ ‭API‬ ‭integrations‬ ‭to‬ ‭facilitate‬
‭smoother interactions with third-party services and platforms.‬
‭5. Efficiency Improvements:‬
‭Automation‬‭Frameworks:‬‭Develop‬‭sophisticated‬‭automation‬‭capabilities‬‭to‬‭streamline‬
‭workflows, reducing manual intervention and enhancing efficiency.‬
‭Performance‬ ‭Monitoring‬ ‭Tools:‬ ‭Incorporate‬ ‭tools‬ ‭for‬ ‭real-time‬ ‭monitoring‬ ‭and‬
‭analysis of system performance, aiding in resource optimization.‬

‭41‬
‭7.2 Additional Features‬
‭1. User-Requested Functionalities:‬
‭Feedback‬ ‭Integration‬ ‭Channels:‬ ‭Implement‬ ‭mechanisms‬ ‭for‬ ‭capturing‬ ‭user‬ ‭feedback‬
‭and integrating highly requested features to align with user needs.‬
‭2. Cutting-Edge Functionalities‬‭:‬
‭AI‬ ‭Integration‬ ‭for‬ ‭Predictive‬ ‭Insights:‬ ‭Incorporate‬ ‭AI‬ ‭and‬ ‭machine‬ ‭learning‬
‭capabilities to deliver predictive analytics and smarter decision-making.‬
‭IoT‬ ‭Integration‬ ‭for‬ ‭Expanded‬ ‭Functionality:‬ ‭Explore‬ ‭integration‬ ‭with‬ ‭Internet‬ ‭of‬
‭Things devices to unlock new functionalities and user experiences.‬
‭3. Enhanced Integration and Compatibility:‬
‭Extended‬ ‭API‬ ‭Support:‬ ‭Expand‬ ‭the‬ ‭range‬ ‭and‬ ‭capabilities‬ ‭of‬ ‭APIs‬ ‭for‬ ‭improved‬
‭integration with a wider array of services and applications.‬
‭Seamless‬ ‭Cross-Platform‬ ‭Experience:‬ ‭Ensure‬ ‭a‬ ‭consistent‬ ‭user‬ ‭experience‬ ‭across‬
‭different platforms, providing accessibility and ease of use.‬
‭4. Advanced Reporting and Analytics:‬
‭Advanced‬ ‭Data‬ ‭Analytics‬ ‭Tools:‬ ‭Introduce‬ ‭sophisticated‬ ‭analytics‬ ‭tools‬ ‭for‬ ‭in-depth‬
‭data analysis, empowering users with actionable insights.‬
‭Real-time‬‭Reporting‬‭Features:‬‭Enable‬‭real-time‬‭reporting‬‭functionalities‬‭for‬‭quick‬‭and‬
‭informed decision-making.‬
‭5. Collaboration and Teamwork Features:‬
‭Collaboration‬ ‭Tools:‬ ‭Develop‬ ‭features‬ ‭that‬ ‭facilitate‬ ‭collaborative‬ ‭efforts‬ ‭within‬ ‭the‬
‭software, enabling seamless teamwork and communication.‬

‭42‬
‭CONCLUSION‬
‭In‬ ‭conclusion,‬ ‭the‬ ‭envisioned‬ ‭future‬ ‭enhancements‬ ‭for‬ ‭this‬ ‭system/software‬ ‭present‬ ‭a‬
‭comprehensive‬ ‭roadmap‬ ‭toward‬ ‭a‬ ‭more‬ ‭advanced‬‭and‬‭user-centric‬‭solution.‬‭By‬‭focusing‬‭on‬
‭performance‬ ‭optimization,‬ ‭enriched‬ ‭user‬ ‭experience,‬ ‭enhanced‬‭security‬‭measures,‬‭improved‬
‭compatibility,‬ ‭and‬ ‭increased‬ ‭efficiency,‬ ‭these‬ ‭upgrades‬ ‭aim‬ ‭to‬ ‭meet‬ ‭both‬ ‭user‬ ‭needs‬ ‭and‬
‭technological‬ ‭advancements.‬ ‭Incorporating‬ ‭additional‬ ‭features‬ ‭such‬ ‭as‬ ‭AI‬ ‭integration,‬ ‭IoT‬
‭functionalities,‬ ‭advanced‬ ‭analytics,‬ ‭and‬ ‭collaboration‬ ‭tools‬ ‭further‬ ‭bolsters‬ ‭the‬ ‭system's‬
‭capabilities.‬ ‭Lessons‬ ‭learned‬ ‭underscore‬ ‭the‬ ‭importance‬ ‭of‬ ‭user-driven‬ ‭innovation,‬
‭adaptability,‬ ‭robust‬ ‭security‬ ‭practices,‬ ‭and‬ ‭scalability.‬ ‭To‬ ‭achieve‬ ‭success,‬ ‭a‬ ‭meticulous‬
‭execution‬ ‭plan‬ ‭involving‬ ‭agile‬ ‭development,‬ ‭collaboration,‬ ‭and‬ ‭continuous‬ ‭user‬ ‭feedback‬
‭loops‬ ‭is‬ ‭essential.‬ ‭These‬ ‭enhancements‬ ‭position‬ ‭the‬ ‭system/software‬ ‭as‬ ‭a‬ ‭user-friendly,‬
‭innovative, and reliable solution ready to thrive in the ever-evolving digital landscape.‬

‭43‬
‭REFERENCES‬

‭●‬ ‭GeeksforGeeks.‬ ‭(n.d.).‬ ‭Computer‬ ‭Science‬ ‭–‬ ‭GeeksforGeeks.‬ ‭Retrieved‬ ‭from‬


‭https://www.geeksforgeeks.org/‬
‭●‬ ‭Coursera.‬ ‭(n.d.).‬ ‭Online‬‭Courses‬‭&‬‭Credentials‬‭From‬‭Top‬‭Educators.‬‭Retrieved‬‭from‬
‭https://www.coursera.org/‬
‭●‬ ‭National‬ ‭Center‬ ‭for‬ ‭Biotechnology‬ ‭Information.‬ ‭(n.d.).‬ ‭PubMed.‬ ‭Retrieved‬ ‭from‬
‭https://pubmed.ncbi.nlm.nih.gov/‬
‭●‬ ‭TED. (n.d.). TED Talks. Retrieved from https://www.ted.com/talks‬
‭●‬ ‭Wikipedia.‬ ‭(n.d.).‬ ‭Wikipedia,‬ ‭the‬ ‭Free‬ ‭Encyclopedia.‬ ‭Retrieved‬ ‭from‬
‭https://www.wikipedia.org/‬
‭●‬ ‭Stack‬ ‭Overflow.‬ ‭(n.d.).‬ ‭Where‬ ‭Developers‬‭Learn,‬‭Share,‬‭&‬‭Build‬‭Careers.‬‭Retrieved‬
‭from https://stackoverflow.com/‬
‭●‬ ‭GitHub.‬‭(n.d.).‬‭The‬‭World’s‬‭Leading‬‭Software‬‭Development‬‭Platform.‬‭Retrieved‬‭from‬
‭https://github.com/‬
‭●‬ ‭W3Schools.‬ ‭(n.d.).‬ ‭The‬ ‭World's‬ ‭Largest‬ ‭Web‬ ‭Developer‬ ‭Site.‬ ‭Retrieved‬ ‭from‬
‭https://www.w3schools.com/‬
‭●‬ ‭Medium.‬ ‭(n.d.).‬ ‭Where‬ ‭Ideas‬ ‭and‬ ‭Stories‬ ‭Are‬ ‭Worth‬ ‭Sharing.‬ ‭Retrieved‬ ‭from‬
‭https://medium.com/‬
‭●‬ ‭Harvard‬ ‭Business‬ ‭Review.‬ ‭(n.d.).‬ ‭Ideas‬ ‭and‬ ‭Advice‬ ‭for‬ ‭Leaders.‬ ‭Retrieved‬ ‭from‬
‭https://hbr.org/‬

‭44‬

You might also like