Skip to content

🚸This project is built using 🐍python to ✔register or ❌unregister a 👨‍🎓student to a course📚

Notifications You must be signed in to change notification settings

KhaledTaymour/University-Registration-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

University Registration System

This project is built using python to register or unregister a student to a course in which Linked list data structure is implemented.

Data Structures Used:

Below are examples the data used:

colleges = [{"id": 1, "name": "Agriculture" }, { "id": 2, "name": "Medicine" }]
departments = [{"id":1,"name":"dept1","collegeId":1},{"id":2,"name":"dept2","collegeId":1}]
courses = [{"id": 1,"name": "crs 1","departmentId": 1, "firstNode": None},   {"id": 2,"name": "crs 2",     "departmentId": 1   , "firstNode": None}]
students = [{"id": 1,"name": "Sophia Alvarez","departmentId": 1 , "firstNode": None},   {     "id": 2,     "name": "Jerry Powell",     "departmentId": 1   , "firstNode": None}]

and below is the Node used for registration:

alt text

Other values are as college Id, Department Id, grade

UML Diagram:

alt text

Folder Structure:


UI.ipynb The file that the user deal with within JupyterLab
registrationNode.py The node class
registrationLL.py The Linked List class having the following functions:
length getting the total number of registrations
addNewRegistration add new Registration having the following inputs: student dictionary, college Id, department Id, course dictionary
getRegisteredStudentsInCourse get list & count of students registered in a course given the following inputs: course dictionary, course Id, list of students, instance of the helper class
getCoursesRegisteredByStudent get list & count of courses registered by a student given the following inputs: student dictionary, student Id, list of courses, instance of the helper class
deleteRegistration delete a registration of a student in a course
Helper.py A class having functions to help in logic; it is used from UI.ipynb to call functions in registrationLL.py
getDataById get any of the data; colleges, departments, students or courses by passing its list and the id to search for
getAllItemsOfData Print all elements of a data list
isInputsValid validate the student Id and Course Id given
addNewRegister add new register for a student in a course by passing student Id & course Id
getAllRegistrationsDone get total # of registrations
getRegisteredStudentsInCourse get list & count of students registered in a course
getCoursesRegisteredByStudent get list & count of courses registered by a student
deleteRegistration delete a registration of a student in a course

Algorithms Used:

Here is the algorithm made to add a new registration of a student in a course:

alt text

And below is the algorithm used to get the registered students in a course (getting the courses registered by a student uses same algorithm with only different inputs and variables)

alt text

And the delete registration algorithm:

alt text

Use Cases:

Assume having the below registrations: rows are students, cols are courses

_ 1 2 3 4 5 6 7
1 * * *
2 * * * *
3 * * * *
4 * * * *
5 * * * *

First importing that Helper class

from helper import Helper

creating an instance of the Helper Class

helper = Helper(colleges, departments, students, courses)

To add registration e.g: passing student Id, Course Id

helper.addNewRegister(1, 2)

to get total # of registrations:

helper.getAllRegistrationsDone()

To get list & count of students registered in a course: passing course Id

helper.getRegisteredStudentsInCourse(5) 

To get list & count of courses registered by a student: passing student Id

helper.getCoursesRegisteredByStudent(7)

To delete a registration: passing student Id, Course Id

helper.deleteRegistration(3, 3)

Screen shots:

alt text alt text alt text

About

🚸This project is built using 🐍python to ✔register or ❌unregister a 👨‍🎓student to a course📚

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published