3.8 KiB
3.8 KiB
Create lisp package
(defpackage user-research-app
(:use :cl)
(:import-from :dev.metalisp.sbt :with-page)
(:import-from :dev.metalisp.sbt/pattern/questionnaire :questionnaire))
#<PACKAGE "USER-RESEARCH-APP">
Demographics
(in-package :user-research-app)
(defun generate-demographics-survey ()
"Generates an HTML page with questionnaires using questionnaire macros."
(with-output-to-string (spinneret:*html*)
(with-page (:title "Product Experience Survey" :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 "What is your educational background?"
:group "demo-edu"
:choices (:text "Last Degree"))))))
(format t (generate-demographics-survey))
Geographics
(in-package :user-research-app)
(defun generate-geographics-survey ()
"Generates an HTML page with questionnaires using questionnaire macros."
(with-output-to-string (spinneret:*html*)
(with-page (:title "Product Experience Survey" :main-con t)
(questionnaire "/submit"
(:ask "Where are you located?"
:group "geo-loca"
:choices (:text "Country"))
(:ask "Which timezone do you operate in?"
:group "geo-timezone"
:choices (:text "Timezone"))))))
(format t (generate-geographics-survey))
Behavioral
(in-package :user-research-app)
(defun generate-behavioral-survey ()
"Generates an HTML page with questionnaires using questionnaire macros."
(with-output-to-string (spinneret:*html*)
(with-page (:title "Product Experience Survey" :main-con t)
(questionnaire "/submit"
(:ask "How often do you use our software?"
:group "beh-useage"
:choices (:single "Daily" "Weekly" "Monthly" "Less frequently"))
(:ask "What features do you use the most?"
:group "beh-feature"
:choices (:multiple "Bookmarks" "KPI" "Contacts"))
(:ask "Have you used our software for along period of time?"
:group "beh-longuse"
:choices (:single "Yes" "No"))))))
(format t (generate-behavioral-survey))
Psychographics
(in-package :user-research-app)
(defun generate-psychographics-survey ()
"Generates an HTML page with questionnaires using questionnaire macros."
(with-output-to-string (spinneret:*html*)
(with-page (:title "Product Experience Survey" :main-con t)
(questionnaire "/submit"
(:ask "What do you value most in our software?"
:group "psy-value"
:choices (:text "Most value"))
(:ask "What motivates you to use our software?"
:group "psy-motivate"
:choices (:text "Your motivation"))))))
(format t (generate-psychographics-survey))