PHPMySQLLaravelDoctrineAPIVue.jsFull-StackDomain-Driven Design

Game-Themed Quiz Application

By Erik Johansson
Picture of the author
2016
Project Description
Creating a web-based quiz application with a responsive UI design and generic structure that could be adapted to multiple themes.
An example challenge
An example challenge
An example challenge one mobile
An example challenge one mobile
An example challenge with the image zoomed in
An example challenge with the image zoomed in
+2

Overview

TavernQuiz is a HearthStone-themed side project of mine from 2016. While I have not been keeping it up to date with the game updates and expansions, it is still available to play online.

TQ features a responsive interface that works great on mobile, generic data structures and logic that could easily support many types of quizzes, and dynamic rendering of the cards such that the answer is never available on the client side before the challenge is completed.

TavernQuiz had a brief period of popularity among Hearthstone fans, and in total nearly 240,000 tasks have been completed.

Technical Details

The back end of this project is built on Laravel, with Eloquent replaced with the ORM Doctrine to separate the domain from the framework.

I generically implemented the quiz engine logic, using terms like "tasks", "answers", "attribute", "guessed option", and "correct option", as I was considering skinning the site for other games.

The front end, built with Vue.js, communicates with the back end via a REST-ish API that exposes only the information required to render the card graphics on the front end, with one or more attributes omitted.

Rendering of the cards is utilizing Sunwell.