-
Notifications
You must be signed in to change notification settings - Fork 0
Home
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).
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.
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 | |
nest-api | contains the sources for the GraphQL backend | |
metadata-service | contains the sources for the service managing movie metadata | |
poster-service | contains the sources for the service managing OMDB API requests | |
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 |
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. |