86 lines
2.9 KiB
Markdown
86 lines
2.9 KiB
Markdown
# 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**
|
|
```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:
|
|
|
|
```sh
|
|
docker compose up --build
|
|
```
|
|
|
|
Automatiškai bus sukurta administratoriaus paskyra:
|
|
```json
|
|
{
|
|
"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
|