Zadanie projektowe wykonane w ramach rekrutacji do Koła naukowego Solvro.
Zaprojektuj i napisz kod API koszyka internetowego.
Aplikacje możesz stworzyć w JavaScriptcie, TypeScriptcie, Pythonie lub Go. Możesz użyć dowolnych frameworków czy bibliotek.
- Dodawanie przedmiotu do koszyka
- Usuwanie przedmiotu z koszyka
- Zmiana ilości przedmiotu
- Dodawanie kodu rabatowego (procentowy oraz stała kwota)
- Zmiana typu dostawy (różne ceny za dostawę)
- Wyświetlanie informacji o koszyku (Sumaryczna cena przedmiotów, zastosowany rabat, końcowa cena koszyka).
- Dzielenie się koszykiem (możliwość wysłania go do innego użytkownika, po otworzeniu linku produkty powinny zostać umieszczone w nowym koszyku nowego użytkownika).
- Pamiętaj że koszyk powinien być umieszczony w kontekście sesji pojedynczego użytkownika, nie może być globalny.
- Secure API wraz z wytycznymi: https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html
- Testy jednostkowe
- Użycie GraphQL
Źródło: Solvro/Rekrutacja2022
git clone https://github.com/MATIK0582/Solvro.git
cd Solvro
npm install
Projekt jako bazy danych używa Postgresql
w wersji: 15.
Do poprawnego funkcjonowania aplikacji potrzebne jest stworzenie tabeli Solvro
.
CREATE DATABASE Solvro;
Dodatkowo w pliku .env
trzeba podmienić hasło na to ustawione podczas instalacji.
DATABASE_PASSWORD = "twoje_hasło"
Program zakłada domyślną nazwę użytkownika - postgres
. Jeżeli podczas konfiguracji bazy danych ustawiłeś inną nazwę musisz ją zmienić w pliku /config/database.js.
const config = new Sequelize('Solvro', 'postgres', process.env.DATABASE_PASSWORD, {
GET /basket
POST /basket
PUT /basket
DELETE /basket
POST /discount
DELETE /discount
POST /delivery
DELETE /delivery
GET /share
POST /share
-npm start
Uruchomienie aplikacji
-npm run dev
Uruchomienie nodemon'a
Z użyciem narzędzia typu Postman lub Swagger wysyłamy pakiety na wystawione przez aplikacje endpoint'y.
W zależności od wybranej akcji dany pakiet będzie potrzebował odpowiednio dodatkowych parametrów.