This application was created for BIBA (Bremer Institut für Produktion und Logistik GmbH) as a part of
project Astradis. The aim of the Astradis project is to research and develop a software tool that simplifies
the choice of AGVs (automated guided vehicles), especially for small and medium sizes businesses, for whom
it's more difficult to hire expert consultants because of the expensive fees. The software should assess the
requirements of the client based on his answers to a series of questions, and provide product
recommendations accordingly. The format of this assessment was to be an interactive questionnaire.
I designed and implemented the interactive questionnaire by myself (frontend and backend), and
I discussed my ideas and progress with my supervisor weekly.
You can read more about the Astradis Project on the BIBA website (link is provided below).
Project Astradis
This is the main window of the application. When first opened, the Questionnaire is in "View Mode". This is the modality of the Questionnaire which is to be made available to users. Questions are grouped in thematic sections and can have different answer modalities:
Radio Buttons (sigle choice, with option for user input)
Scrollmenu (single choice, with option for user input)
Checkboxes (multiple choice, with option for user input)
Input fields (single choice input by user)
This is the Questionnaire in "Edit Mode". This is the modality of the Questionnaire which can be edited by the owner of the software. The plus button opens a dialog which can be filled to create a new question which will be added under the current one. Each question can be edited or deleted by clicking on the pencil and trash can icon respectively. The edit button also opens an edit dialog, with which the current question can be edited.
These are the dialogs with which the user can add questions to the questionnaire or edit an existing question. The questions are categorized by topics, they possess an unique id, and their answer modality can be customized through the different options for "Choice Type" (single or multiple accepted answers) and "Mode" (answer can be given by input, by choosing from available answers, or both).
This project was designed according to the Model-View-Controller software design pattern. I chose this pattern
because it separates the roles of the components cleanly and therefore both makes it easier to understand which
component depends on which component, and helps to determine the functionality which each class should have.
One of the problems I solved with this design was to avoid circular imports.
While designing this project, I used a modular composition approach, where each component is built out of
smaller and simpler components. For example, a single page of the Questionnaire is built by stacking QPanels,
panels which only contain one question and its possible answers.
Image source:
https://www.freecodecamp.org/news/content/images/2021/04/MVC3.png