npm run client
npm run server
- პროექტში უნდა იყოს 4 გვერდი:
'/', '/signup', '/products' და '/shopping-cart'
'/', '/signup' როუტებს გაუკეთეთ AuthPagesLoader რომელიც ავტორიზირებულ მომხმარებელს ამისამართებს /products გვერდზე
'/products' და '/shopping-cart' როუტებს გაუკეთეთ ProtectedPagesLoader რომელიც არაავტორიზირებულ მომხმარებელს ამისამართებს '/' გვერდზე
- ავტორიზაციის გვერდი უნდა იხნებოდეს
'/' მისამართზე
- გააკეთეთ ფორმა რომელსაც ექნება ორი (
email და password) ველი და Login ღილაკი
Login ღილაკის ქვემოთ უნდა იყოს Sign Up ლინკი, რომელზე დაჭერითაც მომხმარებელი უნდა გადავიდეს /signup გვერდზე
- წარმატებული ავტორიზაციის შემდეგ მომხმარებელი უნდა გადამისამართდეს
/products გვერდზე
- პაროლის არასწორად ჩაწერის შემთხვევაში უნდა გამოვიდეს შეცდომა:
username or password is incorrect
- რეგისტრაციის გვერდი უნდა იხნებოდეს
/signup მისამართზე
- გააკეთეთ ფორმა რომელსაც ექნება სამი (
fullName, email და password) ველი და Register ღილაკი
- ფორმას გაუკეთეთ ვალიდაცია:
fullName უნდა შედგებოდეს მინიმუმ ერთი სიმბოლოსგან
email უნდა იყოს ვალიდური
password უნდა შედგებოდეს მინიმუმ 6 სიმბოლოსგან
- თუ ფორმა არავალიდურია გამოიტანეთ შესაბამისი შეცდომა
- წარმატებული რეგისტრაციის შემდეგ მომხმარებელი უნდა გადამისამართდეს
/login გვერდზე ან დალოგინდეს პირდაპირ სისტემაში.
Register ღილაკის ქვემოთ უნდა იყოს Sign In ლინკი, რომელზე დაჭერითაც მომხმარებელი უნდა გადავიდეს '/' გვერდზე
- პროდუქტების გვერდი უნდა იხნებოდეს
/products მისამართზე
- გააკეთეთ navbar კომპონენტი რომელსაც ექნება
ლოგო, Products ლინკი, Shopping Cart icon და Log Out drop-down menu
Shopping Cart icon უნდა ხსნიდეს /shopping-cart გვერდს
Log Out menu-ზე დაჭერით უნდა მოხდეს დალოგინებული მომხმარებლის სისტემიდან გამოსვლა და '/' გვერდზე გადამისამართება
/products გვერდის ჩატვირთვისას API-დან უნდა წამოიღოთ პროდუქტები
- გააკეთეთ
Pagination რომ ერთ ჯერზე მაქსიმუმ გამოიტანოთ 9 პროდუქტი
- პროდუქტები უნდა გამოიტანოთ ქარდებად (იხ. დიზაინი)
- თითოეულ ქარდს უნდა ჰქონდეს
Add to Cart ღილაკი, რომელზე დაჭერითაც თქვენს კალათაში უნდა დაემატოს შესაბამისი პროდუქტი
- დაამატეტ
search ველი, რომლითაც მოძებნით პროდუქტს
- დაამატეტ
price filter რომელსაც ექნება ორი (min და max) ველი, ველის შევსების შემდეგ უნდა გაფილტროთ პროდუქტები min და max მნიშვნელობების მიხედვით
- დაამატეთ
Price სორტირების ღილაკი, რომელზე დაჭერითაც ფასების მიხედვით უნდა დალაგდეს პროდუქტები
- თუ პროდუქტების რაოდენობა აღემატება 9-ს უნდა გამოჩნდეს
Pagination-ის რიცხვები
- კალათის გვერდი უნდა იხნებოდეს
/shopping-cart მისამართზე
- ამ გვერდზე უნდა გამოიტანოთ კალათაში არსებული პროდუქტების ქარდები (იხ. დიზაინი)
- თითოეულ ქარდს უნდა ჰქონდეს
Delete ღილაკი, რომელზე დაჭერითაც უნდა იშლებოდეს პროდუქტი კალათიდან
- თუ კალათა ცარიელია გამაჩინეთ შემდეგი შეტყობინება:
Shopping Cart is empty