FAQ section


Introduction

With the help of a CMS (Content Management System), what I call the Smart App, a Frequently Asked Question section can be generated without knowledge of HTML and CSS. Specific to this solution is a decision tree which can help to interactively get to an answer.

FAQ group

Each main item in the frequently asked question is called a group, having a title, optional introduction and a list of FAQ-items to include.

FAQ item

A FAQ-Item holds the information of a single question. It can be included under a FAQ-group or used within a decission tree. The item holds a title, introduction text and a optional button. In case it is a trouble shooting item one can define a symptom, cause and solution. It can also define parts of the next decission tree to show.

Decision tree

The decission tree is built from FAQ-Items which have sub-oridnate FAQ-items assigned (a maximum of 6 per item). A FAQ-item defined as start question and included in a FAQ-group will render the decission tree. The additional information is shown upon selection of an item as well as sub items (if any).

Design

The underlying software is the Smart App which can be configured to store objects. In case of the FAQ those are FAQ-groups and FAQ-items. The software is written using Python, Flask an Jinja2 templates generating HTML, CSS and Javascript. It runs under Apache modwsgi. The database being used is MongoDB which allows for flexible DataSchemes in theory it can be programmed to store different objects. The application is multi user and each user can have multiple accounts (layout of the dataset) assigned. For the FAQ creation there are two data sets. The one in which can be edited. And a public one which holds a snapshot of the editable dataset and generates a user friendly output like the one you are currently reading.