Inspiration

Exploring making quiz questions more interactive. A hackable HQ.

What it does

An extensible web-based quiz client. A multiplayer quiz server.

QuestionTypes are defined with their own set of methods for scoring, fact generation and front-end rendering.

A quiz is defined as a 'manifestial' quiz format.

How we built it

Fully typed, end-to-end messing format from server to client over websockets.

All communication over websockets. React based front-end.

Challenges we ran into

Timing, see below.

Accomplishments that we're proud of

saga-based API for centralised timing of the client from the backend. Using generators to write clean, declarative timing code that balances asynchronous nature of using WebSockets and 'real-time' apps with the requirements of syncronus computer when required. For example generating the leaderboard or personal QuestionFacts might take longer than a pre-set length using server-based ticks on their own.

What we learned

Generators are fantastic for describing side-effects in an async world. Writing Quiz questions is hard.

What's next for circa

Publish extension API. Finish manifestial format docs. Separate out local-based hackable version and branded playcirca.com version. More example Question Types.

Share this project:

Updates