This project was created using Python, and using the Tkinter library, and including a database with MySQL, and by including the OOP concepts and the Software Engineering concepts, and the most important thing about this particular project is the Software Engineering concepts I used and devloped and the workflow i followed from analysis, design, implementation and testing, and here is some of the design models I used:
First of all the use case diagram for the project which describes the stakeholders of the sytem and each action for each user, and the common actions between them:
and then the Log in activity diagram, which describes the workflow of the log in action for each actor and what happens in a scucessful log in, and what choices the actor can pick:
and then the first choice which is the Gpa Calculator, which is the biggest one in context of functionality in this project, and it's based on my university material, and the GPA system for the university, and that you can send the calculated GPA usnig your number or save the details to your device, and the activity diagram is as follow:
and the second choice is the Material Details, which is a simple in the interface side, and it contains the material of the computer science faculty in my university, and the plans you could follow if you want to finish in 3 and half years or in 4 years, and then the search bar, where you could enter any material code for CS, and it will return a window with the details about that material and when to take and how to study it and a link for some exams you could solve, and here is the activity diagram:
And now let's take a look at the implementation using Python and the Tkinter library and some other libraries, and having a databse to store all the log in and registration information in a table.
First of all lets take a look at the Register window:
So here we have at the right the form to register in the system and when you finish filling this form it will save all the information in the database MySQL that we have, and after that:
You will have an email and password so now you could click at the button at the left which is log in.
And now, here is the Log In Window:
Here we have an email entry field and a password field that are written by the user and then checked by the database using the pymysql library, and the forget password button here is clicked when you provide a valid email address only, and it looks like this:
Here it's asking for the question that you provided when you first registered and the answer for it, and the pymysql check for it, and then changes your passwrod if it was valid, and at last when you log in successfully it will give you 2 options:
Where each one of these options will take you to a new window so lets first take a look at the GPA Calculator button:
Here we have the material of CS field in my university, so first you will pick the material you want to calculate and the grade you got, then provide your name, your ID, the number of hours you finished and your password, then when you click the GPA button it will provide the calculated GPA at the bottom left, and the view button will give you the detail of your semester, so lets take a look at this:
and the view button will give this detaila and also the hours left for you:
And at last the save button will Save the details of your calculated GPA as a text file, and then the Send buttton will send these details to anyone you want by putting their number in the mobile number field by using the pywhatkit library, so let's take a look at it:
And then we have the second option after the successful log in which is the Material Info window, and here it is:
At first we have the CS Material button that will give you a look at the material the university has:
and the the CS Plan button that will give you 2 options if you want to look at play that will help you to finish in 3 and half yeras or in 4 years:
and if you clicked any button of these 2 options a table will be shown to you with each year and in each year the material you will take in each semester:
and at last the important one of them all is the search bar at the bottom, where at first you will enter the material name you want to search for, and if you don't know any material name you could press the CS Material button to view them, so lets take a look at one of them:'
here we entered TM354 material to search for, and then we press the Search button:
and this window will be shown with information you wnat about this material and a drive file that you could click to solve some exams for this particular course.