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 vartotojo 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 reikalavimai yra kol kas nėra įgyvendinti. Taip pat kol kas nėra rolių.
Svečiai
- Gali peržiūrėti visus įkeltus paveikslus.
- Gali matyti visus komentarus po paveikslais.
Gali filtruoti paveikslus pagal nustatytas žymas.- Gali užsiregistruoti ir tapti registruotais naudotojais.
Registruoti naudotojai
- Gali prisijungti prie sistemos.
Gali atsijungti nuo sistemos.- Gali įkelti naujus paveikslus.
- Gali redaguoti savo įkeltų paveikslų metaduomenis (žymas, aprašą).
- Gali ištrinti savo įkeltus paveikslus.
- Gali rašyti komentarus po paveikslais.
- Gali redaguoti savo komentarus.
- Gali ištrinti savo komentarus.
Gali keisti savo paskyros informaciją (slaptažodį, el. paštą).
Moderatoriai
- Turi teisę šalinti ir redaguoti kitų naudotojų paveikslus bei komentarus.
- 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
API dokumentacija
API dokumentacija yra pasiekiama naudojant Development versiją šia nuoroda:
http://localhost:5259/swagger/v1/swagger.json
A copy of the file is provided in the repository called swagger.json. May not be up-to-date.