Skip to content

Allows teachers to award students who excel at their work.

Notifications You must be signed in to change notification settings

Mahmoud-Darweesh/Teachers-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Teachers-App

Allows teachers to award students who excel at their work.

The Introduction:

The students performance app was an idea my teacher gave me in order to help teachers evaluate students' participation in class and subsequently award them for their efforts.

The Database:

I wasn’t sure where to start in the beginning but I decided to begin with finding a good place to store all the data. I had many options but I wanted it to be simple since its my last year in the school and I want this app to be usable even when I leave. So after weighing my options I found a great solution which was google sheets. Although I did not know that large amounts of requests could be done through google's api to 1 google sheet was possible I was excited, it was the perfect place to store the information. It was easily accessible to any one even if they are not a tech savvy person, it was reliable so I did not need to worry about it shutting down, and lastly I was able to send and receive information with little to no delay.

The Prototype:

After deciding on the place I was going to store all the data in I began work on a small prototype that did the main function of the application which was to award students different types of points based on their work. I wanted to make it easy for the teachers to click the buttons so that they won't waste time by swiping their finger across the screen from the students name to the button. So I added the ability to click the side of the name and the whole row would light up blue. Then I decided that the different categories of work that a student did would correspond to a star and from there my first prototype was done.

Prototype

The Admin Tab1:

Next I needed a way for the head of department to view the work of the students and teachers in a single place. So I created the admin tab1, I knew that in a real scenario the admins won’t want to see every student and every class all at once so I made it easy for the user to choose what exactly they wanted to see by choosing between 2 categories classes and students. Then I added an advanced feature that allows the user to sort by Date Grade Name and Teacher. After that I needed to make the information printable in order for the admins to have a real world copy of what they saw on screen. So I added a print function that takes the data-grid and sizes it down to the size of an a4 paper and adds the school logo and other basic information.

Loading All Information Without Sorting:

Admin Controls 1

Sorting By Date and Grade:

Admin Controls 2

The Printed report for it:

Custom Report.pdf

Sorting By Name:

Admin Controls 3

Basic Sorting:

Admin Controls 4

Admin Controls 5

The Printed Report For It:

11 PreCalculus's Report.pdf

The Loading screen:

After I was done with the admin page1 I realised there was an issue I needed to solve and that was the loading times. Since I was only using a small dataset when I was testing the application I never ran into any issue until it came time to import the real information. The admin page1 was taking long amounts of time to load after every action, I kept trying different solutions like loading the data in chunks but none of them were practical. So I decided I would need to change the way the app dealt with information. I began by seeing how other applications went about doing it and found the answer I was looking for. I needed to add a loading screen where all the information will be loaded once then stored in a public array for the rest of the classes to use in their computation. This was a massive success. I was able to remove the loading time completely and provide the user with a much more enjoyable experience.

Previous version:
Slow Load Times:
AdminPage.mp4
Previous Implementation:

Slow Load of Data

Slow Load of Data 2

Newer Version:
Loading Screen:

Splash Screen

Public variables:

Fast Load Of Data Splash Screen Code 3

Using methods to load the information:

Fast Load Of Data Splash Screen Code 2

Example of the method:

Fast Load Of Data Splash Screen Code

The Sign In Page:

To differentiate between teacher accounts and admin accounts I needed to create a sign in page, so that if they were a teacher account they would have access to the performance tab2 and to the awards tab3, and if they were an admin they would have 2 additional tabs: the admin tab1 and the notifications tab4.

Sign In Page:

Sign In

Teachers Dashboard:

Teacher Main Dashboard

Admins Dashboard:

Main Dashboard

Publishing the app:

In the end I found it difficult to install the application on the devices of the teachers because I had the application in the form of an executable file which was not easy to send especially when there are multiple libraries that need to be sent with it. So I decided to learn how to make .msi files and after a short while I was able to condense and publish the app to all the teachers safely and in a timely manner.

Publish

The tabs:

In the performance tab you can choose the class you want from the dropdown menu then after you have chosen an option you will see the grid view being populated with the names and scores of all the students in that class. The buttons on the right side allow the user to increase that specific score by one and to avoid any misscliks a popup saying that “the student was awarded a star” is shown.

Finding a Class:

Preformance Tab 1

The Class:

Preformance Tab 2

In the awards tab you can choose a class and print the certificates for the students in that class by double clicking on that specific student and his achievement.

Awards For a Class:

Awards

Report For That Class:

Awards 11 PreCalculus Report.pdf

Certificate for a student:

AMRO's Master Mathematician Certificate.pdf

In the admin tab you can view the work of all the students and teachers throughout the year and sort them by any of the given categories which are Basic: classes, students and Advanced: Date,Grade,Student and Teacher.

In the notification tab an admin can see when a student has achieved a new certificate there they can print that certificate and in doing so the notification is removed.

Example of a Notification:

Notifications

In Progress:

Right now I am trying to and a new tab that can change basied on the time of use. So if it is during school hours it would show the class that the teacher has automatically and if it is after school it would show the certificates that need to be printed.

References:

Footnotes

  1. In the admin tab you can view the work of all the students and teachers throughout the year and sort them by any of the given categories which are Basic: classes, students and Advanced: Date,Grade,Student and Teacher. 2 3 4 5

  2. In the performance tab you can choose the class you want from the dropdown menu then after you have chosen an option you will see the grid view being populated with the names and scores of all the students in that class. The buttons on the right side allow the user to increase that specific score by one and to avoid any misscliks a popup saying that “the student was awarded a star” is shown.

  3. In the awards tab you can choose a class and print the certificates for the students in that class by double clicking on that specific student and his achievement.

  4. In the notification tab an admin can see when a student has achieved a new certificate there they can print that certificate and in doing so the notification is removed.

About

Allows teachers to award students who excel at their work.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages