involute

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

Domovská stránka iNvolute

Prezentace mého projektu pro nyní rozpuštěný český esportový tým - iNvolute.


README also available in English ??

Obsah

Obecné informace

Projekt se skládá z Vue webu navrženého jako internetová prezentace týmu a jako domovská stránka zpráv a médií týkající se jeho aktivit. Zobrazené údaje jsou načteny z Express.js REST API, které získává data z databáze mongoDB. Doprovázející web je vlastní plnohodnotný CMS (Content Management System) pro manipulaci s daty i správu uživatelských účtů. Ověřování pro přístup do CMS se provádí pomocí standardní kontroly uživatelského jména a hashe hesla a je posíleno pomocí dvoufázového ověřovacího mechanismu otp (one-time-password). Autorizace se poté provádí pomocí JWT. Vydané tokeny jsou sledovány na straně serveru pro potenciální potřebu je zrušit.

Loga, propagační video a částečně i design pro veřený web dodal zákazník.

Demo stránka

V zájmu prezentace jsem připravil statickou verzi jak veřejného webu, tak CMS. API cally jsou statické a falešné JSON soubory. CMS není připojen k žádnému backendu, takže neočekávejte jeho funkčnost.

Technologie

Obecný přehled

Projekt je strukturován okolo microservices. Každá mikroslužba běží pouze jako jediný Docker kontejner, protože se od tohoto projektu neočekávalo, že by měl kdy zvládat velká zatížení. V případě potřeby však lze horizontálního škálování snadno dosáhnout pomocí nástrojů pro orchestraci, jako je Kubernetes.

Veřejnému internetu čelí instance Nginx (nebo v tomto případě OpenResty), která zpracovává základní požadavky i autentizaci pomocí interních požadavků na službu auth. Logy vytvořené službou Nginx jsou zpracovány pomocí GoAccess a vytvořená vizualizace je poté zobrazena v dashboardu.

Frontend

Backend

Auth Server

Dashboard frontend

Dashboard backend

Static files server

Misc