Student Evaluator
- PHP
- Blazor
- Kotlin
Project Overview:
"Student Evaluator" simplifies the assessment of students during practical and tutorial sessions. It includes a web component with two applications: one in PHP for managing schedules and assessments, and one in Blazor for statistics and administration, as well as an Android application offering the same features as the PHP part. Its goal is to facilitate the creation and tracking of assessments through a user-friendly interface.
We developed this project as a team of 5 students, each working 175 hours, under the guidance of 2 instructors. One acted as the SCRUM Master and the other as the Product Owner, simulating Agile methodology. This approach helped us improve our ability to lead a project and collaborate effectively within a team.
Next, I will present my work on the different parts of this project...
WEB Part: PHP
Starting with the PHP part of the project, I was responsible for creating the homepage of the website, which includes the teacher’s schedule, as well as the page displaying the history of their assessments. This part of the project followed the Model-View-Controller (MVC) pattern, and I handled this structure through the application’s front controller.
WEB Part: Blazor
In the Blazor section, I enhanced my skills by using JSRuntime and integrating the Highcharts library to create charts. This allowed me to design pages providing detailed statistics for both students and teachers.
This part of the project strengthened my ability to manage and present data effectively.
ORM and REST API
For the project’s API, I used Entity Framework ORM (Object-Relational Mapping) to map database classes and expose them via the API. I developed REST endpoints using the appropriate HTTP methods (GET, POST, PUT, DELETE) to perform CRUD operations (Create, Read, Update, Delete) on the data.
This approach allowed us to build a robust and flexible API, meeting the needs of our applications.
Mobile Part: Android
Finally, for the mobile part, I handled the implementation of Retrofit to asynchronously fetch data from our API. I was also responsible for creating the schedule page and the login page, and I had to understand the MVVM (Model-View-ViewModel) architecture to achieve a satisfying result.
Moreover, I learned how to use EncryptedSharedPreferences to securely store the user’s token required for API usage, avoiding the need for repeated logins.
