Skip to content
Roland Schläfli edited this page May 21, 2020 · 37 revisions

Kwiz App

The premise of our game, which we call Kwiz, is to answer movie-related questions based on movie posters (we use movie as a general term, which also includes series). After starting the game, players are shown a blurred image of a movie poster that increasingly unblurs over the course of a short time period.

As soon as players are ready to answer the question, they can tap the screen and are presented with a question related to the respective movie (e.g., “What is the name of the movie?”). The more seconds remain before tapping the screen, the more points users can collect with a correct answer. When guessing correctly, users can choose to double their points with a more challenging bonus question (e.g., “When was the movie released?”). Alternatively, users can collect their points and continue with the game until their lives have been depleted.

To incorporate exploration and learning, Kwiz presents users with a few key facts and trivia on a movie once the related questions have been completed. These facts include data from the main dataset (e.g., title and genre) as well as auxiliary data (e.g., movie posters).

Documentation

This wiki describes the project (Kwiz) that we (Alex Scheitlin, Roland Schläfli, and Nik Zaugg) have worked on as part of our course on Advanced Software Engineering (Project Instructions) at the University of Zurich.

Repositories

We use separate repositories for the different microservices and combine them, alongside several auxiliary repositories, in an umbrella repository that is used for documentation, project planning, and files that need to be shared across all services (e.g., docker-compose.yml).

The structure of the umbrella repository can be broken down as follows:

Repository Description Quality
ionic-app contains the sources for the application frontend Maintainability Rating
nest-api contains the sources for the GraphQL backend Maintainability Rating
metadata-service contains the sources for the service managing movie metadata Maintainability Rating
poster-service contains the sources for the service managing OMDB API requests Maintainability Rating
kwiz-dotfiles contains shared rulesets that make sure formatting and linting are consistent
kwiz-utils contains library code that is used in more than one service (DRY)
kwizapp.github.io contains the sources for https://kwizapp.github.io, our presentation deployment
wiki contains the documentation sources (the ones you are reading) in a .md format

What you can find here

The following provides a short overview of our documentation structure:

Topic Description
Project Overview (current chapter) Introduces our project and the datasets we have used to develop it, as well as the issues we still have on our roadmap.
Architecture Describes the architecture of our microservice application and how we integrate everything into a single service.
Development Describes how the project was planned, how we organized ourselves and explains how we applied a agile software development methodology.
Continuous Integration Introduces and motivates the devops practices (as taught in the course) that we have applied to our project by means of automated systems, tooling, and workflows.
Reference Provides an overview of all the APIs that we have developed for the purpose of our application.