ImgBoard

Sistemos paskirtis

Projekto tikslas - sukurti nuotraukų dalinimosi platformą, kuri leistų naudotojams įkelti, peržiūrėti ir komentuoti nuotraukas.

Veikimo principas - pati platforma bus prieinama per interneto naršyklę ir bus sudaryta iš serverio, kuris teiks aplikacijos programavimo sąsają (angl. API), ir kliento, kuris teiks grafinę sąsają platformos naudotojams, dalių.

Sistema bus kuriama naudojant modernias technologijas, o diegimas bus supaprastintas, siekiant greitesnio diegimo. Naudotojams bus suteikiami skirtingi vaidmenys su atitinkamomis teisėmis, užtikrinant sklandų ir kontroliuojamą turinio valdymą. Naudotojai galės filtruoti nuotraukas pagal joms paskirtas žymas.

Funkciniai reikalavimai

Bendrieji reikalavimai

  • Sistema privalo turėti naudotojo sąsają, kuri leistų peržiūrėti, įkelti, ir tvarkyti nuotraukas bei komentarus.
  • Duomenų bazė turi būti lengvai keičiama dėl pasirinkto ORM (angl. Object-Relational Mapping) sluoksnio.
  • Serverio ir klientinės dalys turi būti supakuotos į vieną diegimo vienetą (binary), siekiant supaprastinti diegiamosios sistemos procesą.

Rolių reikalavimai

! Nubraukti rolių reikalavimai yra kol kas nėra įgyvendinti.

Svečiai

  1. Gali peržiūrėti visus įkeltus paveikslus.
  2. Gali matyti visus komentarus po paveikslais.
  3. Gali filtruoti paveikslus pagal nustatytas žymas.
  4. Gali užsiregistruoti ir tapti registruotais naudotojais.

Registruoti naudotojai

  1. Gali prisijungti prie sistemos.
  2. Gali atsijungti nuo sistemos.
  3. Gali įkelti naujus paveikslus.
  4. Gali redaguoti savo įkeltų paveikslų metaduomenis (žymas, aprašą).
  5. Gali ištrinti savo įkeltus paveikslus.
  6. Gali rašyti komentarus po paveikslais.
  7. Gali redaguoti savo komentarus.
  8. Gali ištrinti savo komentarus.
  9. Gali keisti savo paskyros informaciją (slaptažodį, el. paštą).

Administratoriai

  1. Turi teisę šalinti ir redaguoti kitų naudotojų paveikslus bei komentarus.
  2. Gali kurti, redaguoti ir ištrinti žymas, kurios naudojamos turinio kategorizavimui.

Konfiguracija

apsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "ConnectionStrings": {
    "DbContext": "server=localhost;port=3306;database=database_name;user id=user_name;password=password;"
  },
  "AllowedHosts": "*",
  "Jwt": {
    "Key": "openssl rand -base64 32",
    "Issuer": "ImgBoard",
    "Audience": "ImgBoard-Users",
    "DurationInMinutes": 10
  }
}

Paleidimas

Paleidimui naudojama Docker komanda:

docker compose up --build

Automatiškai bus sukurta administratoriaus paskyra:

{
  "email": "admin@localhost",
  "password": "ChangeMe123#"
}

API dokumentacija

API dokumentacija yra pasiekiama OpenAPI 3 JSON formatu naudojant Development versiją per šią nuorodą: http://localhost:5259/swagger/v1/swagger.json

Description
T120B165 Saityno taikomųjų programų projektavimas
ktu
Readme 313 KiB
Languages
TypeScript 51.2%
C# 47.6%
Dockerfile 1%
CSS 0.2%