#+title: Creating a Questionnaire using cl-sbt/questionnaire Macros in a Web Application #+author: Marcus Kammer #+email: marcus.kammer@mailbox.org #+date: [2023-09-15 Fri] * Introduction Questionnaires are powerful tools for gathering information and insights from users. They are crucial for understanding user behaviors, preferences, and requirements. This document will demonstrate how to build a web-based questionnaire using the cl-sbt/questionnaire macros in a Common Lisp application. ** The Importance of Questionnaires Questionnaires help in collecting data for various purposes including market research, user experience study, and many more. They can be in multiple formats like single-choice, multiple-choice, or open-ended questions. *** Types of Questions - Single Choice: Questions that allow one answer. - Multiple Choice: Questions that allow multiple answers. - Text: Open-ended questions for free text input. * Integrating cl-sbt/questionnaire Macros To create a questionnaire in your Common Lisp web application, cl-sbt/questionnaire macros can be employed. These macros generate the HTML required for different types of questions in a questionnaire. #+begin_src lisp (defpackage my-web-app (:use :cl :cl-sbt/questionnaire) (:export :generate-button-page)) (in-package :my-web-app) (defun generate-questionnaire-page () "Generates an HTML page with questionnaires using cl-sbt/questionnaire macros." (spinneret:with-html-string (:html (:head (:title "Questionnaire Examples") ;; Include Bootstrap CSS and JavaScript links here ) (:body (:h1 "Questionnaire Examples") (questionnaire "/submit" (:ask "What is your favorite color?" :group "favcolor" :choices (:radio "Red" "Green" "Blue"))) ;; Include Bootstrap JavaScript initialization script here )))) (generate-questionnaire-page) #+end_src #+RESULTS: #+begin_example Questionnaire Examples

Questionnaire Examples

What is your favorite color?

#+end_example This example demonstrates the integration of the cl-sbt/questionnaire macros into a web application. The macros assist in generating the required HTML for different types of Bootstrap questionnaires.