Installation

Many solutions are availble :

  1. Node application in dev mode (not compiled)
  2. Node application id Production mode (compiled)
  3. Docker container

Instructions

WASPL - Digital Assessment Platform (Alpha)
Status: Alpha
License: AGPL v3
Technology Stack: Node.js, Vue 3, MongoDB, Docker


๐Ÿงญ Table of Contents


๐Ÿ“˜ Overview

WASPL is an open-source digital assessment platform designed to create, manage, and deliver interactive online tests. Built with modern technologies (Node.js, Vue 3, MongoDB, Docker), it provides educators with powerful tools to design rich and flexible testing experiences.

โš ๏ธ Pre-Alpha Version: This software is in active development and not yet ready for production use.


โœจ Features


๐Ÿงฑ Architecture

WASPL consists of two main applications:

Both apps use a shared backend and a MongoDB database. Services are orchestrated with Docker.

Full documentation is available at: https://waspl-wiki.wiquid.fr/


๐Ÿš€ Getting Started

๐Ÿ”ง Local Development (no Docker)

  1. Clone the repository:

    bash
    git clone https://github.com/janfix/waspl.git cd waspl
  2. Install dependencies:

    bash
    cd waspleditor && npm install cd ../waspltestrunner && npm install
  3. Start MongoDB manually (if needed), then:

    bash
    cd ../waspleditor && npm run dev cd ../waspltestrunner && npm run dev

Pre-configured .env files are included with safe default values.

๐Ÿณ Docker Usage

๐Ÿงช Development Mode (hot-reload)

Command:

make dev

Services wait for MongoDB before launching.

๐Ÿš€ Production Mode (with NGINX)

Command:

make prod

NGINX handles redirection, security headers, and gzip compression.

โš™๏ธ Available make Commands
Command Description
make dev Start all services in dev mode
make prod Start all services in production mode
make down Stop and remove containers
make reset-db Remove MongoDB local data
make reset-all Remove all containers, data and Docker images

โš™๏ธ Environment Variables

๐Ÿš€ Quick Setup (Development)

Everything works out of the box after cloning:

npm run dev

๐Ÿ“ Configuration File Structure

File Included Description
.env โœ… Yes Base development configuration
.env.docker โœ… Yes Docker-specific configuration
.env.template โœ… Yes Example with placeholders
.env.local โŒ No Local custom variables (ignored)
.env.production โŒ No Sensitive production configuration

๐Ÿ”ง Production Configuration

Create a .env.local file with real values:

VITE_CHATGPT_API=sk-your-openai-key VITE_SYSTEM_TOKEN_FOR_TESTRUNNER=your-jwt-token JWT_SECRET=your-strong-secret MONGO_URI=mongodb://your-server:27017/waspldata

Or use system environment variables:

export VITE_CHATGPT_API="sk-your-key" export JWT_SECRET="your-secret"

๐Ÿ›ก๏ธ Security


๐ŸŽฏ Interaction Types

WASPL supports 12 interaction types:


๐Ÿ”‘ Default User

Default credentials:


๐Ÿ“‚ Project Structure

waspleditor/ โ†’ Vue3 + Vite app for test creation โ”œโ”€ Dockerfile โ””โ”€ Dockerfile.dev waspltestrunner/ โ†’ Vue3 + Vite app for test execution shared/ โ†’ Shared models and utils media/ โ†’ Static files (images, audio) scripts/ โ†’ Utility scripts certbot/ โ†’ SSL certificate automation docker-compose.yml โ†’ Docker orchestration config nginx.conf* โ†’ NGINX config files Makefile โ†’ CLI helper commands

๐Ÿค Contributing

We welcome contributions!
Open an issue or submit a pull request.
Please follow the existing code style and use meaningful commit messages.

๐Ÿ”ง Setup for Contributors

  1. Clone the repo:

    git clone https://github.com/janfix/waspl.git cd waspl npm run dev
  2. (Optional) Enable AI features:

    cp waspleditor/.env.template waspleditor/.env.local # Then add your OpenAI key
  3. Recommended: use Docker

    make dev

๐Ÿ“ License

This project is licensed under the AGPL v3.
See the LICENSE file for details.