involute

Vue 73.4% JavaScript 22.7% Sass 1.6% Other 2.3%

iNvolute homepage

Presentation of contracted work of mine for, as of now disbanded, czech esports team - iNvolute.


README také dostupné v Češtině ??

Table of contents

General info

Project consists of Vue website designed as an internet presentation of the team as well as news and media homepage regarding the team's activities. Data displayed are fetched from Express.js REST API that is pulling the data from mongoDB database. Accompanying the website is fully fledged custom CMS (Content Management System) for manipulating the data as well as managing user accounts. Authentication for accessing the CMS is done through standard username and password-hash checking and reinforced through the use of 2FA otp (one-time password) mechanism. Authorization is then handled through the use of JWT and keeping track of the issued tokens server-side for potential need to revoke them.

Logos, promotional video and in part the public facing website design were supplied by the customer.

Demo website

For the sake of presentation I've prepared static version of both the public website as well as the CMS. API calls are spoofed static JSON files. CMS isn't connected to any backend so don't expect any functionality.

Technologies

General overview

Project is structured around microservices. Each microservice runs as only single Docker container, as this project wasn't expected to handle extensive loads. But if needed horizontal scaling can be easily achieved through orchestration tools such as Kubernetes.

Facing the public internet is instance of Nginx (or in this case OpenResty), that handles basic requests as well as authentication through the help of internal requests to auth service. Logs produced by the Nginx service are processed using GoAccess and produced visualisation is thereafter shown in the dashboard.

Frontend

Backend

Auth Server

Dashboard frontend

Dashboard backend

Static files server

Misc