ĐOẠN MÃ VÀ GIẢI THÍCH KỸ THUẬT 1. Đăng kí, update thông tin user Trong file SignUp.tsx Thông tin đăng kí user bảo gồm: Email, first name, last name, phone number, password. Hệ thống sẽ tiến hành kiểm tra email, nếu đã tồn tại => đăng ký thất bại. Tiếp đó, hệ thống sẽ kiểm tra mật khẩu. Mật khẩu phải có ít nhất là 6 ký tự (không tính khoảng trắng ở đầu và cuối). Họ và tên không được bỏ trống. Số điện thoại phải đúng với format. Khi các trường được nhập đúng và email chưa tồn tại => đăng kí thành công. Ở đây ta sử dụng firestore và authentication của firebase. Thông tin user sẽ được lưu trong collection tên User trong firestore. 2. Đăng nhập File SignIn.tsx Thông tin đăng nhập bao gồm: Email, password. Hệ thống sẽ check các trường, nếu hợp lệ thì đăng nhập thành công, nếu không hợp lệ thì sẽ show message thông báo. Sau khi đăng nhập, token sẽ được lưu vào localStorage cho những request tiếp theo cũng như kiểm tra/lấy thông tin user khi reload trang. 3. Comment Các thông tin của comment bao gồm: id của user, avatar user, id của product, username, ngày cũng như là nội dung của comment. Người dùng chỉ được comment khi mà đã mua sản phẩm để đánh giá/bình luận khách quan hơn. Comment là private router (phải đăng nhập mới có thể comment). Góc nhìn của người bình luận Góc nhìn của người khác. 4. Payment với Paypal Ta nhúng đoạn script dưới đây vào file index.html trong thư mục public. Với client-id chính là id của App. Để tạo App cũng như là các Account phục vụ cho việc testing ta có thể truy cập vào địa chỉ sau https://developer.paypal.com/home Ở đây ta sử dụng dịch vụ thanh toán (bản test) của paypal. Ta chỉ cần sử dụng component Paypal này ở nơi mà chúng ta cần thanh toán. Với tham số truyền vào là price (số tiền cần thanh toán), handlePayment là phương thức sẽ hiện thực khi thanh toán thành công. Đăng nhập bằng tài khoản tạo ở đường dẫn phía trên rồi thực hiện thanh toán.