dev.metalisp.sbt/docs/pattern/survey-examples/user-research.org
2024-02-10 19:52:54 +01:00

2.2 KiB

  (defpackage survey-app
    (:use :cl)
    (:import-from :dev.metalisp.sbt :with-page)
    (:import-from :dev.metalisp.sbt/pattern/questionnaire :questionnaire)
    (:export :generate-survey-page))

  (in-package :survey-app)

  (defun generate-survey-page ()
    "Generates an HTML page with questionnaires using questionnaire macros."
    (with-output-to-string (spinneret:*html*)
      (with-page (:title "Product Experience" :main-con t)
        (questionnaire "/submit"
          (:ask "What is your age range?"
           :group "demo-age-range"
           :choices (:single "18-24" "25-34" "35-44" "45-54" "55+"))
          (:ask "What is your gender?"
           :group "demo-gender"
           :choices (:single "Male" "Female" "Non-binary" "Prefer not to say" "Other" :text "Other"))
          (:ask "What is your profession?"
           :group "demo-profession"
           :choices (:text "Profession"))
          (:ask "How often do you use our software?"
           :group "behave-useage"
           :choices (:single "Daily" "Weekly" "Monthly" "Less frequently"))
          (:ask "What features do you use the most?"
           :group "behave-features"
           :choices (:multiple "Bookmarks" "Dashboard"))
          (:ask "Have you used our software for a long period of time?"
           :group "behave-period"
           :choices (:single "Less than 1 month" "1-3 months" "3-6 months" "6-12 months" "1-2 years" "More than 2 years"))
          (:ask "What is your preferred method of payment for online purchases?"
           :group "payment"
           :choices (:radio "Credit/Debit Card" "PayPal" "Bank Transfer" "Cash on Delivery" "Cryptocurrency"))
          (:ask "Which social media platforms do you use regularly?"
           :group "socialmedia"
           :choices (:checkbox "Facebook" "Twitter" "Instagram" "LinkedIn" "TikTok" "None" :text "Other"))
          (:ask "How do you usually consume news?"
           :group "newsconsumption"
           :choices (:radio "Online News Websites" "Social Media" "Television" "Newspapers/Magazines" "Radio" "None"))))))

  (format t (generate-survey-page))

/marcuskammer/dev.metalisp.sbt/src/commit/49c292ccd1427a54e7a1e9bef9d2e35273675db7/docs/pattern/survey-examples/survey-page.html