Skip to content

byte5digital/laracon-eu-2026-quiz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laracon EU Quiz

A live interactive quiz application built for Laracon EU 2026. Participants register, answer timed multiple-choice questions, and compete on a real-time leaderboard. Top scorers advance to a live finale round with audience display and moderator controls.

Features

  • Registration & Email Verification — Participants sign up and verify via email code
  • Timed Quiz Rounds — Multiple-choice questions with countdown timer and instant scoring
  • Live Scoreboard — Real-time leaderboard ranked by score and completion time
  • Finale Mode — Top participants compete live with a big-screen display, moderator panel, and manual point awarding
  • Admin Panel — Manage quizzes, questions, participants, and rounds via Filament
  • Real-time Updates — WebSocket-powered live standings via Laravel Reverb

Tech Stack

Layer Technology
Backend Laravel 12, PHP 8.4
Frontend Vue 3, Inertia.js v2, TypeScript
Styling Tailwind CSS v4
Real-time Laravel Reverb (WebSockets)
Admin Filament v4
Auth Laravel Fortify
Database PostgreSQL
Testing Pest v4
Code Quality Laravel Pint, ESLint, Prettier

Requirements

  • PHP 8.2+
  • PostgreSQL
  • Node.js 18+
  • Composer

Installation

# Clone the repository
git clone https://github.com/byte5digital/laracon-eu-2026-quiz.git
cd laracon-eu-2026-quiz

# Install dependencies and set up the application
composer setup

The composer setup script handles everything: installing PHP and Node dependencies, generating an app key, running migrations, and building frontend assets.

Configuration

Copy the example environment file and adjust values as needed:

cp .env.example .env

Key environment variables:

Variable Description
DB_CONNECTION Database driver (pgsql)
DB_DATABASE Database name
BROADCAST_CONNECTION Set to reverb for real-time features
REVERB_APP_ID / REVERB_APP_KEY / REVERB_APP_SECRET Reverb WebSocket credentials

Development

Start all development services (web server, queue worker, Vite, Reverb, and log tail) with a single command:

composer run dev

Or run services individually:

php artisan serve          # Web server
npm run dev                # Vite dev server
php artisan reverb:start   # WebSocket server
php artisan queue:listen   # Queue worker

Testing

# Run all tests
php artisan test

# Run a specific test file
php artisan test tests/Feature/ExampleTest.php

# Filter by test name
php artisan test --filter=testName

Code Formatting

# PHP (Laravel Pint)
vendor/bin/pint

# JavaScript/Vue (Prettier)
npm run format

# Lint JavaScript/Vue (ESLint)
npm run lint

Project Structure

app/
├── Filament/           # Admin panel resources and pages
├── Http/Controllers/   # Inertia page controllers
├── Models/             # Eloquent models (Quiz, Question, Participant, etc.)
└── Events/             # Broadcast events for real-time updates

resources/js/
├── pages/              # Vue page components (Inertia)
│   ├── Quiz/           # Quiz flow (Start, Detail, Results)
│   ├── Finale/         # Finale mode (Display, Moderator, Standings)
│   └── participant/    # Auth pages (Login, Verification)
├── components/         # Reusable Vue components
└── layouts/            # App layouts

database/
├── migrations/         # Database schema
├── factories/          # Model factories for testing
└── seeders/            # Database seeders

License

This project is open-sourced software licensed under the MIT license.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors