2024-06-09 13:02:05 +02:00
|
|
|
|
|
|
|
# Table of Contents
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
1. [dev.metalisp.survey](#org4060900)
|
|
|
|
1. [Disclaimer](#orgc673591)
|
|
|
|
2. [Introduction](#org4a2cf0a)
|
|
|
|
3. [Design Goals](#org2fdae43)
|
|
|
|
4. [Features](#org58dad62)
|
|
|
|
5. [Dependencies](#orgce4fd2b)
|
|
|
|
6. [Mailing list](#orgd25f13f)
|
|
|
|
7. [Issue tracker](#org8211352)
|
|
|
|
8. [News Feed](#org3b83d51)
|
|
|
|
9. [Installation instructions](#org2ade09e)
|
|
|
|
1. [With using Quicklisp](#orgee0e500)
|
|
|
|
10. [License](#org342090d)
|
2024-06-23 13:37:21 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org4060900"></a>
|
2024-06-09 13:02:05 +02:00
|
|
|
|
2024-06-09 14:13:23 +02:00
|
|
|
# dev.metalisp.survey
|
|
|
|
|
2024-06-24 19:08:19 +02:00
|
|
|
Made with Love ❤️ and Common Lisp
|
2024-06-09 14:13:23 +02:00
|
|
|
|
2024-06-24 19:08:19 +02:00
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="orgc673591"></a>
|
2024-07-03 17:37:20 +02:00
|
|
|
|
|
|
|
## Disclaimer
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
Libre software (LS) is often misunderstood as entirely free, including support
|
|
|
|
and maintenance. While LS is freely available to use, modify, and distribute,
|
|
|
|
users bear the responsibility for its integration, upkeep, and
|
2024-07-03 17:37:20 +02:00
|
|
|
troubleshooting. Unlike commercial software, which typically includes support
|
2024-07-04 08:31:42 +02:00
|
|
|
services, LS relies on community or paid third-party support, if
|
2024-07-03 17:37:20 +02:00
|
|
|
available. This model empowers users with flexibility and control but requires
|
2024-07-04 08:31:42 +02:00
|
|
|
a commitment to managing the software effectively. Therefore, adopting LS
|
2024-07-03 17:37:20 +02:00
|
|
|
demands a proactive approach to handling any issues and ensuring the software
|
|
|
|
meets organizational needs.
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org4a2cf0a"></a>
|
2024-06-09 14:13:23 +02:00
|
|
|
|
|
|
|
## Introduction
|
2024-06-09 13:02:05 +02:00
|
|
|
|
2024-06-17 22:25:59 +02:00
|
|
|
I am developing a web application using Common Lisp, designed to administer the
|
|
|
|
System Usability Scale (SUS) questionnaire efficiently. This application
|
|
|
|
simplifies the process of conducting usability evaluations by presenting SUS
|
|
|
|
questions and collecting responses, streamlining both the gathering and
|
|
|
|
analysis of usability feedback.
|
2024-06-09 13:02:05 +02:00
|
|
|
|
2024-06-17 22:25:59 +02:00
|
|
|
The software focuses on enhancing the ease of creating, managing, and
|
|
|
|
integrating questionnaires within existing websites or software. Leveraging
|
|
|
|
flexible templates, it offers a high level of reusability and
|
|
|
|
adaptability. Data from multiple questionnaires can be synthesized within a
|
|
|
|
single study, facilitating more profound insights. As a self-hosted solution,
|
|
|
|
it assures enhanced data protection, granting users complete control over their
|
|
|
|
data, a crucial feature for sensitive data environments. This application is
|
|
|
|
aimed at significantly contributing to research projects, market research, and
|
|
|
|
other fields where precise data collection and analysis are vital.
|
2024-06-09 13:02:05 +02:00
|
|
|
|
2024-06-17 18:53:19 +02:00
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org2fdae43"></a>
|
2024-06-17 18:56:47 +02:00
|
|
|
|
2024-06-17 22:25:59 +02:00
|
|
|
## Design Goals
|
2024-06-17 18:56:47 +02:00
|
|
|
|
2024-06-17 22:25:59 +02:00
|
|
|
1. **Integration**: The app integrates seamlessly into existing digital
|
|
|
|
platforms, enhancing user experience and simplifying data capture.
|
2024-06-17 18:56:47 +02:00
|
|
|
|
2024-06-17 22:25:59 +02:00
|
|
|
2. **Reusability and Adaptability**: Customizable templates allow for the
|
|
|
|
creation of consistent and repeatable survey formats suitable for various
|
|
|
|
applications.
|
2024-06-17 18:56:47 +02:00
|
|
|
|
2024-06-17 22:25:59 +02:00
|
|
|
3. **Data Synthesis**: It supports combining data from multiple questionnaires
|
|
|
|
into a single study, providing broader and more comprehensive analytical
|
|
|
|
insights.
|
2024-06-17 18:56:47 +02:00
|
|
|
|
2024-06-17 22:25:59 +02:00
|
|
|
4. **Privacy and Control**: With self-hosting, the software ensures complete data
|
|
|
|
sovereignty and enhances privacy, avoiding the need to transfer sensitive
|
|
|
|
data to external servers.
|
2024-06-17 18:56:47 +02:00
|
|
|
|
2024-06-22 13:12:05 +02:00
|
|
|
5. **Accessibility**: The application is designed following the Web
|
|
|
|
Content Accessibility Guidelines (WCAG) provided by WebAIM,
|
|
|
|
ensuring that the survey is accessible to all users, including
|
|
|
|
those with disabilities. This includes features such as keyboard
|
|
|
|
navigation, screen reader compatibility, and high contrast modes to
|
|
|
|
accommodate users with varying needs and abilities.
|
2024-06-17 18:56:47 +02:00
|
|
|
|
2024-06-22 13:12:05 +02:00
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org58dad62"></a>
|
2024-06-24 19:05:09 +02:00
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
1. **Questionnaires**: Questionnaires can be defined using a Domain-Specific
|
|
|
|
Language (DSL) developed for dev.metalisp.sbt. The benefit of defining forms
|
|
|
|
in files is that they can be versioned using GIT, providing better control
|
|
|
|
over changes and updates.
|
|
|
|
|
|
|
|
2. **Simplicity**: All data is saved to files, eliminating the need for a
|
|
|
|
database. This reduces costs for self-hosting and simplifies the setup and
|
|
|
|
maintenance of the application.
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="orgce4fd2b"></a>
|
2024-06-09 14:08:37 +02:00
|
|
|
|
2024-06-09 14:13:23 +02:00
|
|
|
## Dependencies
|
2024-06-09 14:08:37 +02:00
|
|
|
|
|
|
|
- <https://github.com/edicl/hunchentoot>
|
|
|
|
- <https://git.sr.ht/~marcuskammer/dev.metalisp.sbt>
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="orgd25f13f"></a>
|
2024-06-09 14:13:23 +02:00
|
|
|
|
|
|
|
## Mailing list
|
|
|
|
|
|
|
|
- <https://lists.sr.ht/~marcuskammer/dev.metalisp.survey>
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org8211352"></a>
|
2024-06-09 14:13:23 +02:00
|
|
|
|
|
|
|
## Issue tracker
|
|
|
|
|
|
|
|
- <https://todo.sr.ht/~marcuskammer/dev.metalisp.survey>
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org3b83d51"></a>
|
2024-06-09 14:45:45 +02:00
|
|
|
|
|
|
|
## News Feed
|
|
|
|
|
|
|
|
- <https://git.sr.ht/~marcuskammer/dev.metalisp.survey/log/main/rss.xml>
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org2ade09e"></a>
|
2024-06-09 14:58:56 +02:00
|
|
|
|
|
|
|
## Installation instructions
|
|
|
|
|
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="orgee0e500"></a>
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:37:21 +02:00
|
|
|
### With using Quicklisp
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:37:21 +02:00
|
|
|
Quicklisp is a highly recommended library manager for Common Lisp capable of
|
|
|
|
streamlining the process of installing and maintaining libraries. It simplifies
|
|
|
|
downloading, building, and loading libraries with a minimal fuss and supports
|
|
|
|
command line interaction.
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:44:33 +02:00
|
|
|
This guide will demonstrate how to install Quicklisp on both Linux and Windows
|
|
|
|
operating systems.
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:37:21 +02:00
|
|
|
1. Why Use Quicklisp?
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:37:21 +02:00
|
|
|
Quicklisp offers several advantages for Common Lisp development:
|
|
|
|
|
|
|
|
- **Ease of Use:** It simplifies the installation process of common Lisp
|
|
|
|
libraries, handling dependencies automatically.
|
|
|
|
- **Extensive Library Collection:** Quicklisp connects to a vast repository of
|
|
|
|
libraries, making it easy to find and install almost any library you need for
|
|
|
|
a project.
|
|
|
|
- **Regular Updates:** Quicklisp updates its library list monthly, so you always
|
|
|
|
have access to the latest versions.
|
|
|
|
- **Integration:** It integrates well with many Lisp environments and tools,
|
|
|
|
enhancing your development workflow.
|
|
|
|
|
|
|
|
2. On Linux
|
|
|
|
|
|
|
|
1. **Install a Common Lisp implementation:**
|
|
|
|
For example, to install SBCL:
|
|
|
|
|
|
|
|
sudo apt-get install sbcl
|
|
|
|
|
|
|
|
2. **Download Quicklisp Installer:**
|
|
|
|
Open a terminal and run:
|
|
|
|
|
|
|
|
curl -O https://beta.quicklisp.org/quicklisp.lisp
|
|
|
|
|
|
|
|
3. **Install Quicklisp:**
|
|
|
|
With Lisp implementation installed (e.g., SBCL), run:
|
|
|
|
|
|
|
|
sbcl --load quicklisp.lisp
|
|
|
|
|
|
|
|
Within the Lisp environment, enter:
|
|
|
|
|
|
|
|
(quicklisp-quickstart:install)
|
|
|
|
|
|
|
|
4. **Integrate Quicklisp with your Lisp environment:**
|
|
|
|
To automatically load Quicklisp on Lisp startup:
|
|
|
|
|
|
|
|
(ql:add-to-init-file)
|
|
|
|
|
|
|
|
Follow the on-screen instructions, then exit Lisp:
|
|
|
|
|
|
|
|
(quit)
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:37:21 +02:00
|
|
|
3. On Windows
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:37:21 +02:00
|
|
|
1. **Install a Common Lisp implementation:**
|
|
|
|
Download and install, for example, SBCL from <http://www.sbcl.org/platform-table.html>
|
|
|
|
|
|
|
|
2. **Download Quicklisp Installer:**
|
|
|
|
Open PowerShell and run:
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:37:21 +02:00
|
|
|
Invoke-WebRequest -Uri https://beta.quicklisp.org/quicklisp.lisp -OutFile quicklisp.lisp
|
|
|
|
|
|
|
|
3. **Install Quicklisp:**
|
|
|
|
Open installed Lisp (e.g., SBCL) shell by searching it in the start menu. Then run:
|
|
|
|
|
|
|
|
--load quicklisp.lisp
|
|
|
|
|
|
|
|
Within the Lisp REPL, execute:
|
|
|
|
|
|
|
|
(quicklisp-quickstart:install)
|
|
|
|
|
|
|
|
4. **Set Up Quicklisp:**
|
|
|
|
To enable Quicklisp every time Lisp starts:
|
|
|
|
|
|
|
|
(ql:add-to-init-file)
|
|
|
|
|
|
|
|
Follow the steps provided, then exit:
|
|
|
|
|
|
|
|
(quit)
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-06-23 13:44:33 +02:00
|
|
|
4. Load dev.metalisp.survey
|
|
|
|
|
|
|
|
1. Clone this repository and dev.metalisp.sbt
|
|
|
|
|
|
|
|
git clone git@git.sr.ht:~marcuskammer/dev.metalisp.sbt ~/quicklisp/local-projects/
|
|
|
|
git clone git@git.sr.ht:~marcuskammer/dev.metalisp.survey ~/quicklisp/local-projects/
|
|
|
|
|
|
|
|
2. Start sbcl and load dev.metalisp.survey
|
|
|
|
|
|
|
|
(ql:quickload :dev.metalisp.survey)
|
|
|
|
|
2024-06-09 14:58:56 +02:00
|
|
|
|
2024-07-04 08:31:42 +02:00
|
|
|
<a id="org342090d"></a>
|
2024-06-09 13:02:05 +02:00
|
|
|
|
2024-06-09 14:13:23 +02:00
|
|
|
## License
|
2024-06-09 13:02:05 +02:00
|
|
|
|
|
|
|
MIT
|
|
|
|
|