Skip to content

This is the final project of Sofus Skovgaard, Joachim Tøfting and Allan Holm Iversen.

License

Notifications You must be signed in to change notification settings

sofusskovgaard/svendeproeve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Svendeprøve

This is the final project of Sofus Skovgaard, Joachim Tøfting and Allan Holm Iversen.

Introduction

EUC Syd has contacted us to provide a proof-of-concept for their eSport association system.

We have been tasked with delivering a requirement specification for a comprehensive system that allows for live streaming, administrative tasks, and presents a public user interface.

Purpose

EUC Syd would want a system to operate a national eSport federation.

The purpose is to make it easier to bring together smaller eSport associations/clubs to organize tournaments and bring people together. There will be several smaller systems that will communicate with each other, and there will be some cloud solutions to make it more environmentally friendly.

Getting started

Prerequisites

Make sure you have installed all of the following on your development machine.

If you want to be able to debug in the MongoDB and Redis databases, make sure to install the following as well.

Quick start

Run this in the application folder from the command-line:

$ docker compose up -d

This will build the API-Gateway and all the underlying services as individual docker images and start them up in a semi closed docker network.

The network will also contain a MongoDB, RabbitMQ and Redis container. All of which have forwarded ports.

  • MongoDB has the main port 27017 opened.
  • RabbitMQ has the management port 15672 opened.
  • Redis has the main port 6379 opened.

Overview

This is sketch of what the application architecture roughly looks like.

  • The Web application is a Blazor Webassembly application. This application runs in the browser of the clients and interfaces with the RealTimeUpdater and Gateway services.
  • We like to call the RealTimeUpdater service the SignalR broker. It listens to events from RabbitMQ and will distribute relevant events to the correct parties via a SignalR Hub.
  • The Gateway service is an API which acts as a Gateway to all the underlying services. It exclusively communicates with all services via gRPC.
  • All the other internal services exclusively communicate via AMQP messages.

About

This is the final project of Sofus Skovgaard, Joachim Tøfting and Allan Holm Iversen.

Resources

License

Stars

Watchers

Forks