Skip to content

A quiz app that allows to create lobby and invite other players and compete with them, with predefined quizzes or created from you

License

Notifications You must be signed in to change notification settings

Waterball12/allegro-quiz-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Allegro quiz

A quiz app made using .NET 5, ASP.NET, Websocket, RabbitMQ, MassTransit and React Native.

Current state

The development is still in early stage and currently the app has limited functionality.

Installation requirements

The .NET 5 SDK is only required if you are planning to download the repository and make changes

Getting started

Currently only docker method is supported, you could also just download the repository and spin up the servers using Visual Studio

Docker

This method require you to have Docker installed on your machine, afterwards you can run these commands

# RabbitMQ
docker run -d rabbitmq:3

# WEB API
docker run -d -p 80:80 waterball/allegro-webapi:latest

# Websocket
docker run -d -p 4000:4000 waterball/allegro-websocket:latest

# quizzer
docker run -d -p 6000:6000 waterball/allegro-quizzer:latest

Folder structure

.
├── assets                  # Images/files for the README 
├── design                  # [Reference](https://github.com/allegro-quiz/design)
├── frontend                # Contains the frontend project with React Native
│   ├── components          # All the components used across the layout and screens or internally
│   ├── layout              # The available layout 
│   ├── screens             # The screens built on top of the layouts
│   └── types               # Typescript types
├── server/src              # Contains the backend files
│   ├── ApiGateways         # The gateways to access the server
│   │   ├── Web.API         # The API exposed to the public
│   │   └── Web.Socket      # The Websocket exposed to the public
│   ├── Services            # The indipendent services
│   │   ├── Achievement     # Achievement microserice used to track the user achievements
│   │   ├── Identity        # Used to authenticate the user
│   │   └── Quizzer         # Main service, used to create and manages quizzes 
│   └── Tests               # The test suite used across the server project
└── README.md

Design

Server

Server Design

Planned

  • Add envoy to route requests to respective microservices
  • Add authentication with Google log-in or other OAuth providers
  • Finish up the tests for the backend and the frontend
  • Add CI/CD with GitHub actions
  • Try out API gateway for kubernetes, probably Istio or Ambassador
  • Finish the frontend UI, this probably will be the last task

About

A quiz app that allows to create lobby and invite other players and compete with them, with predefined quizzes or created from you

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published