Chương 1: Cơ sở lý thuyết 2. Phía back end 2. PASETO Token PASETO (Platform-Agnostic Security Tokens) là một chuẩn mã hóa token an toàn được sử dụng để xác thực và phân quyền trong các ứng dụng web ,tương tự như JWT - JSON Web Tokens nhưng khác ở một số điểm sau: - Thuật toán mã hoá: PASETO sử dụng các thuật toán mã hóa hiện đại như AES-256 và HMAC-SHA384 để đảm bảo tính bảo mật. Trong khi đó, JWT sử dụng các thuật toán mã hóa đối xứng (symmetric encryption) hoặc mã hóa bất đối xứng (asymmetric encryption) như RSA - Độ tin cậy: PASETO tập trung vào tính toàn vẹn dữ liệu và bảo mật thông tin, trong khi JWT tập trung vào việc chứng thực (authentication) và phân quyền (authorization).
Điều này giúp PASETO đảm bảo rằng dữ liệu không bị thay đổi trong quá trình truyền tải, trong khi JWT chỉ xác thực nguồn gốc và quyền truy cập của người dùng - Cấu trúc token : PASETO sử dụng một chuỗi JSON trực tiếp (direct JSON) để lưu trữ thông tin, trong khi JWT sử dụng một chuỗi JSON được mã hóa Base64 - Độ tương thích cao: PASETO cung cấp các phiên bản (versions) để hỗ trợ các tính năng và cấu trúc khác nhau. Mỗi phiên bản đảm bảo tính tương thích ngược với các phiên bản trước đó, giúp đảm bảo rằng các token đã tạo ra có thể được đọc và xác thực trong tương lai. JWT không có khái niệm về phiên bản và không đảm bảo tính tương thích ngược. Điểm khác biệt quan trọng của PASETO so với JWT là PASETO không sử dụng các thuật toán mã hóa đối xứng (symmetric encryption), mà chỉ sử dụng các thuật toán chứng thực (authentication) và chữ ký số (digital signatures).
Điều này giúp tránh các lỗ hổng bảo mật có thể xảy ra trong JWT khi sử dụng thuật toán mã hóa đối xứng. Nguồn tham khảo: Viblo – “PASETO - một lựa chọn đáng cân nhắc cho bài toán Token Based Authentication” (Trần Văn Tùng – 16/04/2020) KHÓA LUẬN TỐT NGHIỆP 6 Chương 1: Cơ sở lý thuyết Link:https://viblo.asia/p/paseto-mot-lua-chon-dang-can-nhac-cho-bai-toan- token-based-authentication-oOVlYk9QK8W 2. Docker Docker là một nền tảng sử dụng cho việc tạo, triển khai và chạy các ứng dụng trong một môi trường độc lập và cô lập gọi là container. Container là một đơn vị phần mềm chứa tất cả những gì cần thiết để chạy một ứng dụng, bao gồm mã nguồn, các thư viện, hệ điều hành và cấu hình.
Docker cho phép đóng gói ứng dụng và các thành phần liên quan vào một container duy nhất, đảm bảo tính nhất quán. Container có thể chạy trên bất kỳ máy tính hoặc máy chủ nào hỗ trợ Docker, mà không cần quan tâm đến môi trường hoặc cấu hình của máy tính đó. Nguồn tham khảo: TopDev – “Docker là gì? Tìm hiểu về Docker” Link: https://topdev.vn/blog/docker-la-gi/ 2. Redis Redis là một hệ thống cơ sở dữ liệu key-value, thường được sử dụng để lưu trữ dữ liệu tạm thời, caching, và quản lý các cấu trúc dữ liệu phức tạp như lists, sets, hashes, sorted sets và các chuỗi strings.
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ ĐẶC TẢ YÊU CẦU PHẦN MỀM 2. Khảo sát hiện trạng 2. Nhà sách trực tuyến Fahasa.COM: Website: https://www.com KHÓA LUẬN TỐT NGHIỆP 7 Chương 2: Khảo sát hiện trạng và đặc tả yêu cầu Hình 1: Trang web FAHASA Chức năng: ● Xem danh sách sản phẩm ● Xem danh mục sản phẩm ● Tìm kiếm sản phẩm ● Filter tìm kiếm sản phẩm ● Thêm vào giỏ hàng ● Thanh toán ● Đăng nhập và đăng ký Ưu điểm: ● Giao diện thân thiện, dễ dàng sử dụng ● Hỗ trợ thanh toán trực tuyến ● Quy trình đặt hàng và thanh toán dễ dàng không cần đăng nhập Nhược điểm: ● Tốc độ tải trang không nhanh ● Không có sản phẩm đã xem 2. Mua Sách Online Nhanh Nhất | Bookbuy.vn: Website: https://bookbuy.vn KHÓA LUẬN TỐT NGHIỆP 8 Chương 2: Khảo sát hiện trạng và đặc tả yêu cầu Hình 2: Trang web Bookbuy Chức năng: ● Xem danh sách sản phẩm ● Xem danh mục sản phẩm ● Tìm kiếm sản phẩm ● Filter tìm kiếm sản phẩm ● Thêm vào giỏ hàng ● Thanh toán ● Đăng nhập và đăng ký Ưu điểm: ● Giao diện thân thiện, dễ dàng sử dụng ● Quy trình đặt hàng và thanh toán dễ dàng không cần đăng nhập ● Hỗ trợ thanh toán trực tuyến ● Có thể xem nhanh mô tả từ trang chủ khi giữ chuột trên sản phẩm ● Có sản phẩm đã xem Nhược điểm: ● Tốc độ tải trang không nhanh 2.
Phuong Nam Book: Website: https://phuongnambook.com KHÓA LUẬN TỐT NGHIỆP 9 Chương 2: Khảo sát hiện trạng và đặc tả yêu cầu Nếu có nhu cầu mua và tìm kiếm sách và tài liệu thì đây là trang web có thể đáp ứng được. Tại website này, người dùng có thể tìm kiếm các loại sách từ những năm 2010 trở xuống Hình 3: Trang web Phương Nam Chức năng: ● Xem danh sách sản phẩm ● Xem danh mục sản phẩm ● Tìm kiếm sản phẩm ● Filter tìm kiếm sản phẩm ● Thêm vào giỏ hàng ● Thanh toán ● Đăng nhập và đăng ký Ưu điểm: ● Giao diện thân thiện, dễ dàng sử dụng ● Quy trình đặt hàng và thanh toán dễ dàng không cần đăng nhập Nhược điểm: ● Không hỗ trợ thanh toán trực tuyến ● Mức độ đa dạng sản phẩm thấp ● Không có sản phẩm đã xem ● Tốc độ tải trang không nhanh KHÓA LUẬN TỐT NGHIỆP 10 Chương 2: Khảo sát hiện trạng và đặc tả yêu cầu 2. Nhà Sách Tiki | Tiki.vn: Website: https://tiki.vn/nha-sach-tiki Hình 4: Trang web Tiki Chức năng: ● Xem danh sách sản phẩm ● Xem danh mục sản phẩm ● Tìm kiếm sản phẩm ● Filter tìm kiếm sản phẩm ● Thêm vào giỏ hàng ● Thanh toán ● Đăng nhập và đăng ký Ưu điểm: ● Giao diện thân thiện, đẹp, dễ dàng sử dụng ● Hỗ trợ thanh toán trực tuyến ● Tốc độ tải trang và phản hồi nhanh ● Số lượng sản phẩm đa dạng Nhược điểm: ● Không có sản phẩm đã xem KHÓA LUẬN TỐT NGHIỆP 11 Chương 2: Khảo sát hiện trạng và đặc tả yêu cầu 2. Kiến trúc chung của hệ thống Hình 5: Kiến trúc chung của hệ thống 2.
Đặc tả yêu cầu phần mềm 2. Mô tả tổng quát đề tài Ứng dụng được xây dựng nhằm tạo ra một nền tảng phục vụ cho cá nhân hoặc doanh nghiệp nhỏ có nhu cầu kinh doanh và quảng bá các sản phẩm về sách, đồng thời cung cấp các tính năng giúp cho trải nghiệm mua sách thuận tiện với nhiều đầu sách và giá thành khác nhau. Yêu cầu đề tài 2. Thông tin đề tài và công nghệ sử dụng - Tên ứng dụng: Xây dựng nhà sách online - Backend: Gin framework - Frontend: ReactJS, Redux - Database: PostgreSQL, Redis, ELK Stack, Python 2.
Yêu cầu chức năng 2. Yêu cầu chức năng nghiệp vụ Bộ phận sử dụng: STT Yêu cầu nghiệp vụ Loại yêu cầu Ghi chú 1 Tìm kiếm sản phẩm theo tên hoặc danh Tra cứu mục KHÓA LUẬN TỐT NGHIỆP 12 Chương 2: Khảo sát hiện trạng và đặc tả yêu cầu 2 Xem danh sách tất cả sản phẩm Tra cứu 3 Xem thông tin chi tiết sản phẩm Tra cứu 4 Xem giỏ hàng Tra cứu 5 Xem mục sản phẩm yêu thích Tra cứu 6 Xem đơn hàng Tra cứu 7 Thêm, sửa, xóa sản phẩm trong giỏ Lưu trữ hàng 8 Thêm, sửa, xóa sản phẩm trong mục Lưu trữ sản phẩm yêu thích 8 Đăng ký tài khoản Lưu trữ 9 Thêm đánh giá Lưu trữ 10 Xem đánh giá Tra cứu 11 Thích/Bỏ thích đánh giá Lưu trữ 12 Báo cáo đánh giá Lưu trữ Bảng 1: Bảng mô tả yêu cầu chức năng của hệ thống phía user Bộ phận quản trị STT Yêu cầu nghiệp vụ Loại yêu cầu Ghi chú 1 Tìm kiếm sản phẩm theo tên hoặc Tra cứu danh mục 2 Xem danh sách sản phẩm Tra cứu 3 Xem thông tin chi tiết sản phẩm Tra cứu 4 Thêm, sửa, xoá thông tin sản phẩm Lưu trữ 5 Thêm, sửa, xoá danh mục Lưu trữ 6 Xem đánh giá Tra cứu 7 Xoá đánh giá Lưu trữ Bảng 2: Bảng mô tả yêu cầu chức năng của hệ thống phía admin KHÓA LUẬN TỐT NGHIỆP 13 Chương 2: Khảo sát hiện trạng và đặc tả yêu cầu 2. Yêu cầu chức năng hệ thống STT Yêu cầu hệ thống Mô tả Ghi chú 1 Chức năng phân quyền Phân quyền phía quản trị gồm có admin. Phía người dùng gồm có guest và user 2 Chức năng xác thực Xác thực phía người dùng thông qua email 3 Chức năng khôi phục mật khẩu Khôi phục thông qua gửi đường dẫn xác thực qua email 4 Chức năng thanh toán trực tuyến Thanh toán trực tuyến thông qua Stripe và Paypal Bảng 3: Bảng mô tả yêu cầu chức năng của hệ thống 2.
Yêu cầu phi chức năng STT Yêu cầu phi chức năng Loại yêu cầu Ghi chú 1 Giao diện thân thiện với người dùng Tính tiện dụng 2 Tốc độ xử lý và tìm kiếm nhanh Tính hiệu quả chóng, chính xác. 3 Thông tin cá nhân của người dùng Tính bảo mật được bảo mật và mã hóa. 4 Dễ dàng mở rộng quy mô Tính tiến hóa Bảng 4: Bảng mô tả yêu cầu phi chức năng KHÓA LUẬN TỐT NGHIỆP 14 Chương 3: Phân tích và thiết kế hệ thống CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3. Tác nhân hệ thống Hệ thống website kinh doanh sách gồm 3 actor: Admin (Admin), User (người dùng) và Guest (người dùng vãng lai) - Admin: là người quản lý trang web thông qua xem thống kê của website, quản lý danh mục sản phẩm, quản lý sản phẩm, xem thông tin người dùng, xem thông tin đơn hàng.
Qua đó giúp cho admin có cái nhìn tổng quan về tình hình kinh doanh của website. - User: là người dùng đã đăng ký với hệ thống, có thể tìm kiếm, xem sản phẩm, xem danh mục sản phẩm, tìm kiếm sản phẩm theo danh mục, quản lý giỏ hàng, quản lý danh sách sản phẩm yêu thích, đồng thời đặt hàng và thanh toán đơn hàng. Đánh giá các sản phẩm đã mua thành công. - Guest: là người dùng chưa đăng ký với hệ thống, có thể tìm kiếm và xem sản phẩm của trang web mà không cần phải xác thực.
Nếu có nhu cầu mua hàng và trải nghiệm thêm nhiều tính năng, guest có thể đăng ký để sử dụng dịch vụ của trang web. KHÓA LUẬN TỐT NGHIỆP 15 Chương 3: Phân tích và thiết kế hệ thống 3. Lược đồ Use case 3. Lược đồ Use case phía người dùng Hình 6: Lược đồ Use case phía người dùng KHÓA LUẬN TỐT NGHIỆP 16 Chương 3: Phân tích và thiết kế hệ thống 3.
Lược đồ Use case phía admin Hình 7: Lược đồ Use case phía admin KHÓA LUẬN TỐT NGHIỆP 17 Chương 3: Phân tích và thiết kế hệ thống 3.