dev.metalisp.survey/README.md

275 lines
9.2 KiB
Markdown
Raw Normal View History

2024-06-09 13:02:05 +02:00
# Table of Contents
2024-07-07 19:40:09 +02:00
1. [dev.metalisp.survey](#org3666b36)
1. [Disclaimer](#org2ec4102)
2. [Introduction](#orgd1424d7)
3. [Design Goals](#orgfaf1caa)
4. [Features](#org78fc369)
5. [Dependencies](#org0497490)
6. [Mailing list](#org1eb4d79)
7. [Issue tracker](#orgb66b1f8)
8. [News Feed](#orgf058c85)
9. [Installation instructions](#org1a67245)
1. [With using Quicklisp](#orgd636c79)
10. [Screenshot](#orge3330dd)
11. [License](#orgeeb80fd)
1. [MIT](#orgfb80f25)
2024-06-23 13:37:21 +02:00
2024-07-07 19:40:09 +02:00
<a id="org3666b36"></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-07 19:40:09 +02:00
<a id="org2ec4102"></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-07 19:40:09 +02:00
<a id="orgd1424d7"></a>
2024-06-09 14:13:23 +02:00
## Introduction
2024-06-09 13:02:05 +02:00
2024-07-05 16:40:07 +02:00
I am developing a web application using Common Lisp, specifically tailored for
2024-07-07 11:09:34 +02:00
efficiently administering the
2024-07-07 15:07:19 +02:00
- [System Usability Scale](https://git.sr.ht/~marcuskammer/dev.metalisp.survey/tree/main/item/src/views/questionnaires/en/sus.lisp) ([wikipedia](https://en.wikipedia.org/wiki/System_usability_scale)),
- User Experience Questionnaire ([website](https://www.ueq-online.org/)),
2024-07-07 19:40:09 +02:00
- and Visual Aesthetics of Websites Inventory ([website](https://meinald.de/forschung/visawi/), [researchgate](https://www.researchgate.net/publication/274649948_VisAWI_Manual_Visual_Aesthetics_of_Websites_Inventory_and_the_short_form_VisAWI-S_Short_Visual_Aesthetics_of_Websites_Inventory))
2024-07-07 11:09:34 +02:00
to streamline usability evaluations. This application not only presents these
various questions and collects responses but also simplifies the entire process
of gathering and analyzing usability feedback. Designed to enhance the ease of
creating, managing, and integrating questionnaires within existing websites or
software systems, it leverages flexible templates to offer high levels of
reusability and adaptability. The software allows for the synthesis of data
from multiple questionnaires into a single study, enabling deeper insights. As
a self-hosted solution, it provides enhanced data protection, granting users
full control over their data—a crucial feature in environments handling
sensitive data. This makes it an invaluable tool for research projects, market
research, and other sectors that require precise data collection and analysis.
2024-07-07 19:40:09 +02:00
<a id="orgfaf1caa"></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-07 19:40:09 +02:00
<a id="org78fc369"></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-07 19:40:09 +02:00
<a id="org0497490"></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-07 19:40:09 +02:00
<a id="org1eb4d79"></a>
2024-06-09 14:13:23 +02:00
## Mailing list
- <https://lists.sr.ht/~marcuskammer/dev.metalisp.survey>
2024-07-07 19:40:09 +02:00
<a id="orgb66b1f8"></a>
2024-06-09 14:13:23 +02:00
## Issue tracker
- <https://todo.sr.ht/~marcuskammer/dev.metalisp.survey>
2024-07-07 19:40:09 +02:00
<a id="orgf058c85"></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-07 19:40:09 +02:00
<a id="org1a67245"></a>
2024-06-09 14:58:56 +02:00
## Installation instructions
2024-07-07 19:40:09 +02:00
<a id="orgd636c79"></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-07 19:40:09 +02:00
<a id="orge3330dd"></a>
2024-07-06 13:27:32 +02:00
## Screenshot
![img](https://git.sr.ht/~marcuskammer/dev.metalisp.survey/blob/main/screenshot.png)
2024-07-06 13:27:32 +02:00
2024-07-06 13:28:48 +02:00
2024-07-07 19:40:09 +02:00
<a id="orgeeb80fd"></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
2024-07-06 13:46:23 +02:00
2024-07-07 19:40:09 +02:00
<a id="orgfb80f25"></a>
2024-07-06 13:46:23 +02:00
### MIT
Copyright (c) 2024 Marcus Kammer
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
&ldquo;Software&rdquo;), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED &ldquo;AS IS&rdquo;, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2024-06-09 13:02:05 +02:00