Skip to content

Repository files navigation

Hermes Preview

Hermes

Hermes is a real-time quiz and live polling platform for organisers who need fast room setup, reliable session control, and instant participant feedback.

Create events, build quizzes, host live sessions, let players join with a code, and watch answers and results update in real time.

What It Does

  • Create and manage events, quizzes, and question banks
  • Host live quiz sessions with question-by-question control
  • Let participants join and rejoin sessions with a lightweight flow
  • Stream lobby state, answers, and results over WebSockets
  • Review quiz results for both organisers and participants after a session ends

Tech Stack

Next.js React TypeScript Tailwind CSS Bun Framer Motion Spring Boot Java Spring Security PostgreSQL Redis RabbitMQ Quartz

Quick Start (Docker)

docker-compose up --build

Then open:

Manual Dev Setup

1. Start infrastructure

docker-compose up -d postgres redis rabbitmq

2. Run backend

cd backend
./mvnw spring-boot:run

3. Run frontend

cd frontend
bun install
bun run dev

The frontend expects:

  • NEXT_PUBLIC_API_BASE_URL=http://localhost:8080
  • NEXT_PUBLIC_WS_URL=ws://localhost:8080/ws-hermes

Backend Tests & Coverage

Backend tests use Testcontainers for PostgreSQL, Redis, and RabbitMQ, so Docker must be running. The project targets Java 25; if your shell defaults to another JDK, pin JAVA_HOME for the command:

cd backend
JAVA_HOME=$(/usr/libexec/java_home -v 25) ./mvnw test

The test run also generates the JaCoCo report:

open target/site/jacoco/index.html

For a clean rebuild with tests and coverage:

cd backend
JAVA_HOME=$(/usr/libexec/java_home -v 25) ./mvnw clean test

Project Docs

Contributor

  • Md Hishaam Akhtar

Built for live rooms that need instant feedback.

About

A real-time quiz and live polling platform with WebSockets.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages