Skip to content

scrumdojo/quizmaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quizmaster

A quiz taking app that serves as a case study during Applying Professional Scrum for Software Development training with ScrumDojo.cz.

Tech Stack

Prior to the class ge yourself familiar with the tech stack:

🖥️ Development Environment

You have two options to prepare your development environment:

  1. Docker/Podman container
    Run a prepared self-contained development environment it in a Docker/Podman container. Go to scrumdojo/quizmaster-devcontainer and follow the instructions.

  2. Local environment
    Install it on your local machine. You need only Java 21 JDK and PostgreSQL 16, the rest (Gradle, pnpm, Node.js and Playwright) gets downloaded automatically.

🚀 Running the Application

Build the frontend

To build the front end, run either of the following commands (they do the same thing, the former runs the latter):

  • ./gradlew assembleFrontend in the backend directory
  • pnpm run build in the frontend directory

The front end is built to the backend/src/main/resources/static directory and becomes part of the JAR assembly.

Run the backend

To run the application, in the backend directory execute:

./gradlew bootRun`

This command does not build the front end, so you need to run assembleFrontend or pnpm run build first.

Running Vite Development Server

To avoid rebuilding frontend and backend every time you make a change, you can run the Vite development server in the frontend directory:

pnpm vite --host

Vite starts a development server on http://localhost:5173 and proxies requests to the backend server on http://localhost:8080. "--host" is required so that it's accessible outside of container.

It watches for changes in the frontend directory and reloads the browser automatically with HMR.

🧪 Running end-to-end tests

You can run the end-to-end Cucumber + Playwright tests

  • pnpm run test:e2e against the running app on http://localhost:8080 (requires building the frontend first)
  • pnpm run test:e2e:vite against the Vite development server on http://localhost:5173

🚩 Feature Flag

You can hide an unfinished feature behind a feature flag.

  • on the frontend, the feature flag is a constant FEATURE_FLAG_ENABLED
  • on the backend, the feature flag is a static method FeatureFlag.isEnabled()

To enable the feature flag, set the FEATURE_FLAG environment variable to true and rebuild both the frontend and the backend:

OS Command
Windows $env:FEATURE_FLAG="true"
Linux export FEATURE_FLAG=true

Push access

  • sudo apt-get install gh
  • gh auth login
  • generate personal access token in github (your profile, developer settings) and paste it to gh login

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published