XMC - Web - București - Lucrari 2018 Online

Informatii generale

Descriere

XMC - XMC Manages Contests

XMC este o platforma online pentru organizarea si desfasurarea concursurilor de natura algoritmica, si pentru pregatirea elevilor cu probleme de informatica. Site-ul tine concursuri, sau arhive cu probleme, iar utilizatorii trimit solutii care sunt apoi evaluate automat pe baza mai multor teste. Utilizatorul poate apoi sa vada punctajul final al solutiei, ce a gresit si cate resurse a folosit programul solutie. De asemenea, continutul este structurat intr-un wiki in care paginile pot contine continut dinamic. Acestea pot prezenta enunturi pentru probleme, anunturi sau lectii. Platforma dispune de un evaluator automat, sistem de wiki pages si API REST pentru boti sau clienti alternativi si este impartita in mai multe servicii, in stilul microserviciilor, permitand scalarea platformei.

Avantajele arhitecturii pot aduce sporuri de performanta si scalabilitate. De exemplu, putem sa folosim un cluster de Raspberry Pi-uri in care fiecare sistem executa o instanta a evaluatorului. API-ul rest permite crearea de integrari cu alte servicii sau sisteme.

Tehnologii

Backendul este scris in totalitate in Go si foloseste libraria Micro pentru a usura implementarea arhitecturii cu microservicii.

Frontend-ul este un Single Page App bazat pe Preact si Redux. De asemenea, frontendul este complet decuplat de codul backendului si comunica strict prin API-ul REST.

Stack-ul complet:

Backend:
Go
Postgresql
Redis - pentru gestionarea token-urilor de acces
Git
Isolate - pentru a izola solutiile in curs de evaluare cu ajutorul Linux Containers
Consul - service discovery pentru servicii
Traefik - reverse proxy
Minio - folosit doar atunci cand nu este preferata folosirea serviciului Amazon S3.

Frontend:
Node.js - pentru compilarea frontendului
Yarn - pentru frontend, administreaza pachetele
Monaco Editor - folosit pentru editorul de pagini, vizualizatorul de cod etc
Preact - alternativa React pentru browsere moderne
Redux
Semantic UI
Webpack, Babel, Eslint

Cerinte sistem

Sistem bazat pe Linux < 4.15 cu suport pentru Linux Containers.

Realizatori

Tudor Roman

  • Scoala: Colegiul National I.L. Caragiale
  • Clasa: 9
  • Judet: București
  • Oras: București

Ciprian Ionescu

  • Scoala: Colegiul Național “Grigore Moisil”
  • Clasa: 9
  • Judet: București
  • Oras: București

Screenshots

Buna ziua,

Este posibil ca in completarea formularului de inscriere sa se fi produs o eroare. Dorim sa participam cu proiectul acesta la sectiunea web, dar vad ca este inscris la software educational. Se mai poate muta proiectul la categoria web?
De asemenea, vad ca adresa unde este hostat momentan XMC - https://x.xmc.fun - nu apare la homepage. Puteti adauga si aceasta?

Va multumesc.

Salut,
Proiectul tau a fost mutat la categoria web si am actualizat datele site-ului tau.