Skip to content
/ quiz Public

This project is a modern, full-stack quiz platform built with Go (backend) and Vue 3 (frontend), designed for easy deployment via Docker. It supports dynamic Theming, multi-language questions, and custom branding.

License

Notifications You must be signed in to change notification settings

flohoss/quiz

Repository files navigation

Quiz Project




This project is a modern, full-stack quiz platform built with Go (backend) and Vue 3 (frontend), designed for easy deployment via Docker. It supports dynamic Theming, multi-language questions, and custom branding.

Table of Contents

Configuration

All runtime configuration is managed via a YAML file in the config/ directory. The main configuration file is config.yaml, which controls:

  • Application title and amount of questions
  • Supported languages
  • Theming via CSS variables (primary, secondary, success, error colors)
  • Icon SVGs for navigation and actions
  • The quiz questions and answers (multi-language)

Example: config/config.yaml

app:
  title: Quiz
  amount_of_questions: 10
  languages:
    - en
    - de
  css_variables:
    --color-primary: '#294221'
    --color-primary-content: '#ffffff'
    --color-secondary: '#ac3e31'
    --color-secondary-content: '#ffffff'
    --color-success: '#294221'
    --color-success-content: '#ffffff'
    --color-error: '#ac3e31'
    --color-error-content: '#ffffff'
  icons:
    next: <svg .../>
    previous: <svg .../>
    submit: <svg .../>
    restart: <svg .../>
  logo: /app/config/logo.svg
  favicon: /app/config/logo.svg
questions:
  - id: 1
    question:
      en: What is the capital of France?
      de: Was ist die Hauptstadt von Frankreich?
    answers:
      en: [Berlin, Madrid, Paris]
      de: [Berlin, Madrid, Paris]
    correct_answer: 3

Custom Logo

You can provide a custom logo by placing an SVG file at config/logo.svg. If the file does not exist, a default logo will be used. The logo is displayed in the quiz header.

Screenshots

Dark mode

Light mode

Docker

run command

docker run -it --rm \
  --name quiz \
  -p 8156:8156 \
  -v ./config/:/app/config/ \
  ghcr.io/flohoss/quiz:latest

compose file

services:
  quiz:
    image: ghcr.io/flohoss/quiz:latest
    restart: always
    container_name: quiz
    volumes:
      - ./config/:/app/config/
    ports:
      - '8156:8156'

Update Dependencies

# Node packages
docker compose run --rm --pull always yarn upgrade --latest

# Go packages
docker compose run --rm --pull always go get -u && go mod tidy

About

This project is a modern, full-stack quiz platform built with Go (backend) and Vue 3 (frontend), designed for easy deployment via Docker. It supports dynamic Theming, multi-language questions, and custom branding.

Topics

Resources

License

Stars

Watchers

Forks

Packages