Projekto tikslas – paspartinti bei pagerinti nuotraukų pardavimo, dalinimosi, portfolio kūrimo procesą. Veikimo principas – šį projektą sudarys du komponentai: internetine aplikacija taip pat bus pasitelkiama aplikacijų programavimo sąsaja. Naudojimas – vartotojas norėdamas naudotis šia aplikacija prisiregistruos prie jos, galės sudaryti nuotraukų ar nuotraukų albumų skelbimus ar paprastus įrašus, užpildyti reikiama informaciją apie nuotrauką, pridėti tinkamas žymes bei kainą jei ketinama parduoti nuotrauką ar albumą. Paskelbtus įrašus prisijungę naudotojai galės komentuoti. Administratorius tvirtina arba atšaukia naujas pardavėjų registracijas, peržiūri sudarytus skelbimus prieš paskelbimą (supildyta reikalinga informacija, skelbimas nėra kenksmingas).
Svečias projekte galės:
- Peržiūrėti pradinį puslapį.
- Registruotis į internetinį puslapį.
- Prisijungti prie internetinio puslapio.
- Prisijungti prie aplikacijos.
- Atsijungti nuo aplikacijos.
- Įkelti nuotrauką ar nuotraukas.
- Pridėti nuotraukos aprašymą.
- Pridėti žymes.
- Pridėti Kainą.
- Paskelbti nuotrauką.
- Peržiūrėti kitų pardavėjų įkeltas nuotraukas ar albumus.
- Komentuoti kitų naudotojų nuotraukas ar albumus.
- Nusipirkti nuotrauką ar albumą.
- Patvirtinti pardavėjo registraciją.
- Patvirtinti pardavėjų sukurtus skelbimus.
- Šalinti pasirinktus pardavėjus.
- Šalinti netinkamus skelbimus.
• Kliento pusė – React.js
• Serverio pusė – .NET Core, duomenų bazė – MS SQL Server.
Žemiau pateiktame paveiksliuke matome sistemos diegimo diagrama. Sistemos talpinimui bus pasirintkas Azure/AWS serveris. Kiekviena sistemos dalis bus sudiegta tam pačiame serveryje. Internetinę aplikaciją naudotojas galės pasiekti naudodamas HTTP protokolą (interneto naršyklę). Šioje sistemoje taip pat naudosime savo sukurtą įrašų parduotuvės aplikacijų programavimo sąsają. Saugoti įrašus naudosime MS SQL serverį.
1 Pav. Sistemos diegimo diagrama
Sukuria naują naudotoją su nurodytais parametrais
https://localhost:7058/api/register
Pavadinimas | Kodas |
---|---|
No Content | 201 |
Bad request | 400 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
username | Taip | Naudotojo vardas | redas |
password | Taip | Naudotojo slaptažodis | Slaptazodis1! |
Taip | Naudotojo Paštas | [email protected] |
POST https://localhost:7058/api/register
{
"username" : "string",
"email" : "[email protected]",
"password" : "String!"
}
{
"id": "b5076589-8e92-4962-8467-b283fef5bd94",
"userName": "string",
"email": "[email protected]"
}
Gražina naudotojo sugeneruotą žetoną, kuris vėliau yra naudojamas atpažinti naudotojo rolei
https://localhost:7058/api/login
Pavadinimas | Kodas |
---|---|
OK | 200 |
Bad request | 400 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
username | Taip | Naudotojo vardas | Testas1 |
password | Taip | Naudotojo slaptažodis | Testas1! |
POST https://localhost:7058/api/login
{
"username": "string1",
"password": "String1!"
}
{
"accessToken" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiWWVwYXMxMjM0IiwianRpIjoiNTg3ZTQ3MDktNzJmMi00MTRhLTg2M2ItZjNhOWZiYTJjMjZmIiwic3ViIjoiYjUwNzY1ODktOGU5Mi00OTYyLTg0NjctYjI4M2ZlZjViZDk0IiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQXBwVXNlciIsImV4cCI6MTY3MTgxMDkxNSwiaXNzIjoiTWF0YXMiLCJhdWQiOiJUcnVzdGVkQ2xpZW50In0.NYkel-4847960smd_LNT-LTXDINJeDZaCitv23Jq5FI"
}
Gražina sąrašą visų portfolių
https://localhost:7058/api/portfolios
Pavadinimas | Kodas |
---|---|
OK | 200 |
GET https://localhost:7058/api/portfolios
[
{
"id": "1957a04b-024f-4e85-df7c-08dabeac1904",
"name": "portfolio1",
"description": "portfolio1",
"creationDate": "2022-11-04T21:32:38.9637616"
},
{
"id": "9c7d6703-819f-4630-9803-08dac5db160f",
"name": "portfolio2",
"description": "portfolio2",
"creationDate": "2022-11-14T00:56:38.432293"
}
]
Gražina portfolio pagal id, kuris perduodamas per URL
http://localhost:5058/api/portfolios/{Guid}
Pavadinimas | Kodas |
---|---|
OK | 200 |
Not found | 404 |
GET https://localhost:7058/api/portfolios/e2075d00-a16a-4d19-3dc2-08dac5e36efa
{
"resource": {
"id": "e2075d00-a16a-4d19-3dc2-08dac5e36efa",
"name": "c",
"description": "portfolio3",
"creationDate": "2022-11-14T01:56:23.6190485"
}
}
Sukuria portfolio nurodytais parametrais, funkcija prieinama tik vartotojams
https://localhost:7058/api/portfolios
Pavadinimas | Kodas |
---|---|
No Content | 201 |
Bad request | 400 |
Unauthorized | 401 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
name | Taip | Portfolio pabadinimas | Urban |
description | Taip | Portfolio apibūdinimas | Urban albums |
POST https://localhost:7058/api/portfolios
{
"name": "Portfo2",
"description": "Forest porfolio"
}
Atnaujiną portfolio duomenis su duotais parametrais, kurie buvo nurodyti užklausos metu, Guid kartu su URL, o kiti parametrai perduodami kartu su užklausos body, funkcija prieinama tik vartotojui, sukūrusiam potfolio, arba adminui.
https://localhost:7058/api/portfolios/animals/{Guid}
Pavadinimas | Kodas |
---|---|
OK | 200 |
Bad request | 400 |
Unauthorized | 401 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
name | Taip | Portfolio pabadinimas | Urban exploration |
description | Taip | Portfolio apibūdinimas | Urban albums |
PUT https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260
{
"name": "Urban exploration",
"description": "Urban albums"
}
Tuščias body su statuso kodu (200 Success)
Ištrina gyvūną su nurodytu id per URL, funkcija prieinama tik vartotojui, sukūrusiam potfolio, arba adminui.
https://localhost:7058/api/portfolios/{Guid}
Pavadinimas | Kodas |
---|---|
No Content | 204 |
Unauthorized | 401 |
Not found | 404 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
Guid | Taip | portfolio guid | ee300476-041a-45a6-0c75-08dacb963 |
DELETE https://localhost:7058/api/portfolios/ee300476-041a-45a6-0c75-08dacb963
Tuščias body su statuso kodu 204 No content
Gražina sąrašą visų specifinio porfolio albumų
https://localhost:7058/api/portfolios/{Guid}/albums
, funkcija prieinama prisijungusiems naudotojams
Pavadinimas | Kodas |
---|---|
OK | 200 |
GET https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums
[
{
"id": 1,
"description": "2020/12/05 - Health",
"isFinished": true,
"animalId": 1
}
]
Gražina portfolio albumą pagal Guid, kuris perduodamas per URL
https://localhost:7058/api/portfolios/{Guid}/albums/{Guid}
Pavadinimas | Kodas |
---|---|
OK | 200 |
Not found | 404 |
https://localhost:7058/api/Portfolios/9c7d6703-819f-4630-9803-08dac5db160f/albums/4f430c09-dfdd-4f36-bd11-08dac5dd2a26
{
"id": "4f430c09-dfdd-4f36-bd11-08dac5dd2a26",
"name": "Porfolio albumas",
"description": "Porfolio albumas",
"creationDate": "2022-11-14T01:11:31.1742277"
}
Sukuria portfolio albumą nurodytais parametrais, funkcija prieinama tik vartotojui, sukūrusiam potfolio, arba adminui.
https://localhost:7058/api/portfolios/{Guid}/albums
Pavadinimas | Kodas |
---|---|
No Content | 201 |
Bad request | 400 |
Unauthorized | 401 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
name | Taip | Albumo pavadinimas | Albumas1 |
description | Taip | Albumo aprašas | Pirmas albumas |
POST https://localhost:7058/api/portfolios/{Guid}/albums
{
"id": "9d47b78a-df91-4741-028d-08dae4f9c0f8",
"name": "Albumas1",
"description": "Pirmas albumas",
"creationDate": "2022-12-23T15:24:16.1587118Z"
}
Atnaujiną albumo duomenis su duotais parametrais, kurie buvo nurodyti užklausos metu, id kartu su URL, o kiti parametrai perduodami kartu su užklausos body, funkcija prieinama tik vartotojui, sukūrusiam potfolio, arba adminui.
https://localhost:7058/api/portfolios/{Guid}/albums/{Guid}
Pavadinimas | Kodas |
---|---|
OK | 200 |
Bad request | 400 |
Unauthorized | 401 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
name | Taip | Albumo pavadinimas | Albumas2 |
description | Taip | Visito aprašas | Albumas2 |
PUT https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums/25c6600a-ffdf-445b-5a75-08dacb591088
{
"name": "Albumas2",
"description": "Albumas2"
}
Tuščias body su statuso kodu (200 Success)
Ištrina albumą su nurodytu id per URL, funkcija prieinama tik vartotojui, sukūrusiam potfolio, arba adminui.
https://localhost:7058/api/portfolios/{Guid}/albums/{Guid}
Pavadinimas | Kodas |
---|---|
No Content | 204 |
Unauthorized | 401 |
Not found | 404 |
DELETE https://localhost:7058/api/Portfolios/73df27ac-9969-46d9-c119-08dab55c97ba/albums/e1f889de-bca0-43f3-77bb-08dab55d45ff
Tuščias body su statuso kodu 204 No content
Gražina nuotraukų sąrašą visų specifinio albumo
https://localhost:7058/api/portfolios/{Guid}/albums/{Guid}/pictures
Pavadinimas | Kodas |
---|---|
OK | 200 |
GET https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums/25c6600a-ffdf-445b-5a75-08dacb591088/pictures
[
{
"id": "9782bc3d-546d-444d-a0ca-08dacb59a15d",
"name": "Pirma Nuotrauka",
"description": "Nuotrauka nr1",
"creationDate": "2022-11-21T00:45:04.5593094",
"isSold": true,
"price": 100,
"imageName": "chicago224504561.jpg",
"image": null,
"imagePath": "https://localhost:7058/Images/chicago224504561.jpg"
},
{
"id": "19a38700-26bd-44bf-a0cb-08dacb59a15d",
"name": "Antra Nuotrauka",
"description": "Nuotrauka nr2",
"creationDate": "2022-11-21T00:45:13.6788906",
"isSold": false,
"price": 0,
"imageName": "city223037434.jpg",
"image": null,
"imagePath": "https://localhost:7058/Images/city223037434.jpg"
}
]
Gražina albumo nuotrauką pagal Guid, kuris perduodamas per URL
https://localhost:7058/api/portfolios/{Guid}/albums/{Guid}/pictures/{Guid}
Pavadinimas | Kodas |
---|---|
OK | 200 |
Not found | 404 |
GET https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums/25c6600a-ffdf-445b-5a75-08dacb591088/pictures/19a38700-26bd-44bf-a0cb-08dacb59a15d
{
"resource": {
"id": "19a38700-26bd-44bf-a0cb-08dacb59a15d",
"name": "Antra nuotrauka",
"description": "Nuotrauka nr. 2",
"creationDate": "2022-11-21T00:45:13.6788906",
"isSold": false,
"price": 0,
"imageName": "city223037434.jpg",
"image": null,
"imagePath": "https://localhost:7058/Images/city223037434.jpg"
}
}
Sukuria nuotrauką su nurodytais parametrais, funkcija prieinama tik vartotojams
https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums/25c6600a-ffdf-445b-5a75-08dacb591088/pictures
Pavadinimas | Kodas |
---|---|
No Content | 201 |
Bad request | 400 |
Unauthorized | 401 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
name | Taip | Nuotraukos pavadinimas | Picture |
description | Taip | Nuotraukos aprašas | Second picture |
price | Taip | Nuotraukos kaina | 0 |
Image | Taip | Nuotrauka | picture.jpg |
POST https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums/25c6600a-ffdf-445b-5a75-08dacb591088/pictures
{
"id": "26255457-24b4-49ad-8c65-08dae4fd292a",
"name": "Picture",
"description": "Second picture",
"creationDate": "2022-12-23T15:48:39.4407927Z",
"isSold": false,
"price": 0,
"imageName": "picture224839445.png",
"image": {
"contentType": "image/png",
"contentDisposition": "form-data; name=\"Image\"; filename=\"picture.png\"",
"headers": {
"Content-Disposition": [
"form-data; name=\"Image\"; filename=\"picture.png\""
],
"Content-Type": [
"image/png"
]
},
"length": 134316,
"name": "Image",
"fileName": "picture.png"
},
"imagePath": null
}
Atnaujiną nuotraukos duomenis su duotais parametrais, kurie buvo nurodyti užklausos metu, Guid kartu su URL, o kiti parametrai perduodami kartu su užklausos body, funkcija prieinama tik vartotojui, sukūrusiam potfolio, arba adminui.
https://localhost:7058/api/portfolios/{Guid}/albums/{Guid}/pictures/{Guid}
Pavadinimas | Kodas |
---|---|
OK | 200 |
Bad request | 400 |
Unauthorized | 401 |
Pavadinimas | Ar būtinas? | Apibūdinimas | Pavyzdys |
---|---|---|---|
name | Taip | Nuotraukos pavadinimas | Picture |
description | Taip | Nuotraukos aprašas | Second picture |
price | Taip | Nuotraukos kaina | 0 |
Image | Taip | Nuotrauka | picture.jpg |
PUT https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums/25c6600a-ffdf-445b-5a75-08dacb591088/pictures/19a38700-26bd-44bf-a0cb-08dacb59a15d
{
"id": "19a38700-26bd-44bf-a0cb-08dacb59a15d",
"name": "Picture",
"description": "Second picture",
"creationDate": "2022-11-21T00:45:13.6788906",
"isSold": true,
"price": 1,
"imageName": "picture225746953.jpg",
"image": null,
"imagePath": null
}
Tuščias body su statuso kodu (200 Success)
Ištrina procedūrą su nurodytu Guid per URL, funkcija prieinama tik vartotojui, sukūrusiam potfolio, arba adminui.
https://localhost:7058/api/portfolios/{Guid}/albums/{Guid}/pictures/{Guid}
Pavadinimas | Kodas |
---|---|
No Content | 204 |
Unauthorized | 401 |
Not found | 404 |
DELETE https://localhost:7058/api/portfolios/239e8a7e-7705-4083-08fe-08dacb582260/albums/25c6600a-ffdf-445b-5a75-08dacb591088/pictures/4f245dae-7400-450f-6edb-08dacb8da72c
Tuščias body su statuso kodu 204 No content
-Įgauta žinių dirbant su front-end ir back-end technologijomis; -Įgauta žinių kaip saugoti front-end ir back-end dalis debesyje;