FAQ

FAQ shows frequently asked questions about university related topics.

Implementation

In winter semester 2020/21 we fundamentally changed the concept of the FAQ feature. Instead of highly hierarchical categories, which led to deep nestings at the front-end applications, we switched to a “two level tag”-design. Now, a question can have multiple priority tags, which determine the sections, in which a question is listed. Furthermore, there are multiple normal tags to attach further meta data to a question, e.g. for searches. Additionally, we added a new meta property to estimate a score for the relevancy of a question. Before this change, there only was a hit count, which increased everytime a user clicked on a question. Now, we implemented a “like/dislike” system - respectively “is helpful/is not helpful” or an up- or downvote system. Here, the front-end teams need to decide for an algorithm which balances the hit count and the collective ratings to build a new, clean and functional relevancy score. Lastly, we also added the new color concept to this feature. For more information look up the section for color concept at the Development Guide (ToDo: Link section).

We also created a mockup using Figma to visualize the first and major change of the FAQ feature.

If you are interested in the implementation, lets dive into it with following quicklinks:

  • <Android>

  • <Backend>

  • <iOS>

The data model of the FAQ feature is depicted in the following database model.

Database Model of FAQ

The model explicitly allows to assign multiple priority tags to a single question. Thus, there is only a 2 layer hierarchical tagging system instead of the previous categorical system which has been deeply hierarchical and uncomfortable to use at the frontend. Furthermore, does the new model support the new rating and color system. See Backend#79 for more information.

We further implemented a mockup using Figma. The mockup can be found here and shows exemplary use of the new tagging system.

Functional Requirements

FAQ-1 FAQ Information

Priority

high

Status

determined

Involved stakeholders

Project Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Description

Each FAQ SHALL consist of a question, an answer, one or multiple topic tags, an author and a timestamp.

FAQ-2 List

Priority

high

Status

determined

Involved stakeholders

Project Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Description

The system SHALL list typical questions. Furthermore, the listed questions SHALL be organized via a primary tag.

FAQ-3 FAQ Topics

Priority

high

Status

determined

Involved stakeholders

Project Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Description

The hierarchical topic tags for the FAQs SHALL have a maximum of 3 layers. The user SHALL be able to mark topics as their favorite. Subsequently, questions marked with this topic tag SHALL be listed at the top when browsing all FAQs or other topics.

FAQ-4 Submit FAQ

Priority

high

Status

determined

Involved stakeholders

Project Team

Implemented in

Description

The system SHALL allow authorised users to create new FAQ items. Each item must be assigned at least one and a maximum of ten topic tags.

FAQ-5 Up- or downvote frequently asked questions

Priority

med

Status

determined

Involved stakeholders

Project Team

Implemented in

back end 1.0.0

Dependency

Motivation/Reason

As a student, I want to upvote good questions/answers, so that other students find important information more easily, but I also want to be able to downvote the bad ones.

Description

The system SHALL allow to up- and downvote specific questions (question-answer pairs). Thus, questions can be related regarding their relevancy for students for example.

FAQ-6 Search

Priority

high

Status

determined

Involved stakeholders

Project Team

Implemented in

backend 1.0.0 , android 1.0.0, ios 1.0.0

Motivation/Reason

As a user, I want to search through all adverts having a search term, so that I can filter all adverts for specific items of interest.

Description

The UI SHALL provide a text field, so that an user can enter a search term. The back end SHALL process this term by seperating each word from another and link them with an and-operator. The response SHALL only contain adverts which contain all parts of the search term in their title or description.

FAQ-7 Rating Algorithm

Priority

med

Status

determined

Involved stakeholders

Project Team

Implemented in

Not implemented yet

Motivation/Reason

As a user I want to see the most relevant and helpful FAQs.

Description

Two attributes SHALL be used for the rating score: The hit count and the user feedback, which is the amount of upvotes subtracted by the amount of downvotes (this means that the value representing user feedback can be a negative number). The rating SHALL be determined by a value created by adding weights to the hit count and the user feedback and adding the resulting numbers.

Note

It was decided to use primitive weights with a ratio of 4:1 (hit-count:upvote-count). We argue that in the period of about half a year after the official launch of the app, there won’t be many upvotes. Therefore, during that time period, the hit count will be better suited as a means of measurement for a FAQ’s popularity. This ratio most likely has to be reviewed and adapted over time.