Projekto tikslas – padėti šokėjams prisiminti ar išmokti naujus šokių judesius, ruošti pasirodymus.
Sistema susideda iš:
- Klientinės dalies (naršyklėje veikiantis puslapis)
- Serverinės dalies (API, duomenų bazė)
Prieigos teisės:
- Neprisijungę vartotojai gali peržiūrėti judesius, kombinacijas.
- Prisijungę vartotojai gali kurti savo šokių sekas, reitinguoti kitų.
- Administratorius tvarko judesius, variacijas, vartotojus.
Sistema orientuota į „lindy hop“ stilių, bet palaiko kitų stilių pridėjimą.
Neregistruotas vartotojas gali:
- Peržiūrėti pagrindinį puslapį
- Peržiūrėti šokių judesius ir jų variacijas
- Filtruoti ir ieškoti judesių
- Peržiūrėti kitų žmonių šokius
- Registruotis
Registruotas vartotojas gali:
- Prisijungti / atsijungti
- Gauti judesių rekomendacijas
- Valdyti savo šokius (judesių sekas)
- Reitinguoti kitų žmonių šokius
Administratorius gali:
- Valdyti šokio judesius ir jų variacijas
- Šalinti naudotojus
Stack:
- Front-End: React.js
- Back-End: Node.js + Express.js
- Duomenų bazė: PostgreSQL
Diegimas:
- Konteinerizacija: Docker + Docker Compose (trijų konteinerių: Nginx, Node.js, PostgreSQL)
- Debesų platforma: Azure (Container Registry, Container Instances / App Service, PostgreSQL Flexible Server)
Autentifikacija: JWT (HTTP-only slapukuose)
Projekto saugykla: GitHub – Groov
- JWT (access + refresh token'ai HTTP-only slapukuose)
- Endpoint'ai:
POST /auth/signup– registracijaPOST /auth/login– prisijungimasPOST /auth/logout– atsijungimasPOST /auth/refresh– token atnaujinimasGET /auth/me– dabartinis vartotojas
GET /dance-moves– sąrašas, paieška, filtraiPOST /dance-moves– naujas judesys (tik admin)GET/PUT/DELETE /dance-moves/{id}– konkretus judesys
GET /dance-sequences– visos sekosPOST /dance-sequences– nauja seka (prisijungęs)GET/PUT/DELETE /dance-sequences/{id}– konkreti seka
GET /sequence-moves/{id}– sekos judesiaiPUT /sequence-moves/{id}– pakeisti visus judesiusDELETE /sequence-moves/{id}– pašalinti visus judesius
GET /events– visi renginiaiPOST /events– naujas renginys (tik admin)GET/PUT/DELETE /events/{id}– konkretus renginys
200/201– sėkminga400– blogi duomenys401– neautentifikuotas403– nepakanka teisių404– resursas nerastas
Groov projektas sėkmingai įgyvendintas kaip moderni full-stack šokių mokymosi platforma su:
- Saugia autentifikacija (JWT)
- Moduline architektūra
- REST API su dokumentacija
- Rolės pagrįstu prieigos valdymu
- Docker ir Azure diegimu
- TypeScript, dependency injection, testavimo praktikomis
Projektas suteikė vertingos patirties dirbant su Node.js, React, PostgreSQL, Docker ir Azure debesų paslaugomis.