View all projects
Coursework

Peer Pivot Web App

Sep 2024 - Oct 2024
*Email me to request access to private repos

About the project

The coursework project was completed as part of the Web Application Development / Programming Principles II course offered by Griffith university. The purpose was to demonstrate a solid understanding of fundamental full stack principles, and the ability to learn and apply new tools and technologies such as the ORM.

The application (Peer Pivot) is a web-based peer review platform with both learners and teachers as users. The app allows teachers to create courses and associated assessment items. Learners who enrol in the courses are assigned to student groups, and given the opportunity to complete online peer reviews.

Frontend

The frontend is built with HTML, CSS and utilises PHP's Blade templating.

Backend

An Entity Relationship Diagram (ERD) was used to model the relationships between all identified entities. The database was implemented with SQL, with queries being performed by Eloquent ORM.

Reflection

One of the project requirements was to make use of Eloquent ORM to perform all queries. Although we had been given basic examples of how to implement Eloquent, the actual project queries were fairly complex and required me to write intricate ORM queries. Prior to this project, I had only ever written queries in plain SQL and I was uncertain whether I could learn and apply ORM concepts with the limited time that I had to complete the project.

I decided to take on the challenge with two key actions. Firstly, I ensured I had a robust database design and ERD. This was key, since the diagram provides a visual overview of data relations and can help clarify how a query should be structured. This applied to both the SQL queries that I was familiar with and the ORM ones. Secondly, I decided to thoroughly review the offical Eloquent documentation and examples before starting.

I believed these steps to prepare and inform myself before starting my work reduced the overall amount of time spent on the project. Having a well-design database meant the only minor design changes or adjustments were required during the coding phase. Additionally, having familiarised myself with the Eloquent documentation beforehand meant that I had a decent understanding of the tools I was using. Also, when at a roadblock, I often remembered reading something in the documentation that could solve the issue, and I was able to refer back to it.

This approach confirmed to me that taking some time for preparation at the start of a project can be highly beneficial by making the rest of the process a bit smoother. I have also started applying this approach when performing other tasks, such as freelance coding projects.


  • PHP
  • SQL
  • HTML
  • CSS
  • Database Design
  • Web Development
  • Coursework