-
Homepage (*) (DONE)
-
Authentication page 2.1 Sign-in () (DONE) 2.2 Sign-up () (DONE) 2.3 Set up access Token (*) (DONE) 2.4 Set up refresh Token (**)
-
Search page: filter with ... (*)
-
Product detail: with slug (*)
-
Cart Page: add product to cart, delete product, update quantity (REMEMBER store in local storage) => CALL API when click on Checkout button () + API POST new order: userId + list of productId (array) -> body ()
body: { userId: ..., orderProducts: [] }
+ API Get all: (6.3) (**)
-
Account settings (**): 6.1: Manage basic information 6.2: Update password 6.3: Manage shopping history 6.4: Delete Account
-
Wishlist
Load page
-
Verify access token: call API with accessToken embed to headers
-
Expired: => call API with refreshToken => True => new accessToken (update localStorage, add accessToken axiosInstance) => false => logout (clear localStorage, call API clear refresh token in Database)
-
Not expired: normal
-
-
SCRUM: => MVP (*)
-
(**)
-
Product model: (add new property to show product detail) detail: { ram: ..., rom: ..., frontCamera: ... , backCamera: ... , chip: ... , memory: ..., screenSize: ..., }