Skip to content
This repository has been archived by the owner on Jan 10, 2024. It is now read-only.

Feature: Cafeteria Rating Integration #469

Open
tobiasjungmann opened this issue Jul 28, 2022 · 0 comments
Open

Feature: Cafeteria Rating Integration #469

tobiasjungmann opened this issue Jul 28, 2022 · 0 comments

Comments

@tobiasjungmann
Copy link

Feature: Cafeteria Ratings

We all like to eat food, especially if it tastes great. Let's add a rating system for cafeterias which helps by choosing the best cafeteria.

The backend for this is almost done and will hopefully be merged in the next days. The corresponding PR describes all possible endpoints, alternatively there is also a description in Swagger, which describes the individual parameters and their function in more detail. I can offer anybody who is interested in implementing such a functionality to describe the endpoints in a meeting.

What is the overall functionality

  1. Create a rating for a cafeteria or a dish in a cafeteria
    1. Add points (range 1 to 5).
    2. Add an optional photo.
    3. Add an optional comment (max 256 chars).
    4. Add a list of rating tags (rating tags allow to rate a certain aspect quickly with points (1-5) to improve the information of the rating while keeping the time users need to a minimum).
  2. Query ratings for cafeterias or a dish in a cafeteria
    1. Includes average/max/min points as well as the standard deviation.
    2. Includes the last n ratings with everything the user put in.
    3. Includes a list of name tags with average points (name tags are automatically assigned in the backend and group the average points for similar dishes like all pasta dishes or all dishes with pork.)

Remark: There are different rating tags available for cafeteria and dish ratings, only these will be accepted by the backend. All available tags can be loaded from the backend.

UI Prototype

This is an early draft for the Android version to show a potential layout. All the small things like margins etc will be improved in later versions. A version in the IOS app will of course look different or may use a completely different approach.
The android side will look similar to this:

Users can choose a cafeteria and afterwards a dish which is available at this day (or no dish if the cafeteria itself should be rated). Additionally, there should be functionality to add a photo, a comment and the tag ratings. If a user accidentally selected points for a tag, these can be reset with the icon on the left, since the lowest option in the rating bar which can be selected by a user is 1. If a tag has been moved, the font is set darker so that this tag stands out more clearly.

Displaying ratings can happen in multiple form factors: The most intuitive will be only the average points right next to dish in the dish-plan overview. However, users potentially want to go through some of the past ratings, dishtags/ cafeteria Tags or name tags to get additional information. such an overview is ideally directly reachable from the Activity where the dishes are presented. My idea would be to use the cafeteria name and the ratings at the individual dishes as clickable views which navigate to a detailed view. This allows the correct configuration to be loaded directly from Cafeteria and Dish without the user having to search for it again.

My idea is to use colors (will be adapted to improve readability) to indicate the ratings for tags instead of numbers/rating bars to have an easy, uncomplicated interface. The exact numbers won't be that interesting in most situations. Nevertheless, the tags in the android app are clickable and will then show a more detailed overview. The first list item is reserved for the average properties of the requested ratings. All other list item represent a single rating made by a user.

Photos can then be shown directly in the list item for the corresponding rating. If they are too tall, they will be cropped.

Any new ideas to improve the UI is welcome, especially, if we could manage to reduce the effort for the students, which will ideally lead to more ratings in the long run.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

1 participant