Skip to Main Content

Five Stars for a new Feature

If this isn't your first time visiting our blog, you may notice something... something seems different. Well, it doesn't just seem different, you could even say it sparkles! This and all of our other blog articles can now be rated. I implemented this as a trainee project.

It started with a concept phase, the results of which I presented to my team. I divided the implementation into three sections.

DB & Code

First, the question was what information was needed and how this would be reflected in the database. Further technical functionality is built on this foundation. From the outset, the aim was to design a solution that could also be reused for significantly larger applications in the future. The decisive factor is, of course, performance. The next consideration was the PHP code, which fulfils two essential tasks: firstly, the transfer of data between the front end and the database and vice versa, and secondly, security. When it comes to security, we are of course talking about basic standards for protecting the application, but in this case also about many points that must be taken into account to prevent manipulation. Each user should, of course, only be able to submit a single review and not be able to change the average rating according to their own preferences by submitting multiple reviews. Especially not if the goal is to give a worse rating.

Frontend

We want to offer an rating module that is easy for all users to understand and operate. To achieve this, it is crucial to cover all input methods; the element must be operable via mouse, touchscreen and keyboard. The rating can be submitted intuitively with a single click. In addition, there are the ARIA labels required for accessibility, which I like to have read aloud by my screen reader of choice. Only then can I get a feel for the suitability of my labels.

Design

Following on from the aforementioned comprehensibility and usability, design also plays a role. The ratings are a nice little feature in our blog, but they do not reflect the informative relevance that product ratings in an online shop would have, for example. That is why the original approach with orange stars did not catch on and had to give way to more subtle alternatives.

Overall, there have been quite a few changes since the initial concept, both due to early feedback from my colleagues and new insights gained during technical implementation. Among other things, a widget for the dashboard in the TYPO3 backend has been added, which provides an overview of the rated blog articles. I have learned a lot through this project and am satisfied with my solution. Feel free to try it out for yourself to see if it really works! :-)