Xây dựng nhà sách online sử dụng Golang và ReactJS - Đồ án tốt nghiệp

Hướng dẫn xây dựng nhà sách online hoàn chỉnh sử dụng Golang cho backend và ReactJS cho frontend. Tìm hiểu cách tạo ứng dụng web bán sách chuyên nghiệp.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp/Khóa luận tốt nghiệp

2023

120
1
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

MỤC LỤC

PHẦN MỞ ĐẦU

TÍNH CẤP THIẾT CỦA ĐỀ TÀI

MỤC TIÊU CỦA ĐỀ TÀI

ĐỐI TƯỢNG NGHIÊN CỨU

PHẠM VI NGHIÊN CỨU

Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

PHẦN NỘI DUNG

1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1. Golang là gì ?

1.2. Gin framework

1.3. ReactJS

1.4. PostgreSQL

1.5. ELK Stack (Elasticsearch, Logstash, Kibana)

1.6. Content – Based Recommendation System

1.7. Một số thư viện và ứng dụng hỗ trợ khác

1.7.1. Phía front end

1.7.1.1. Redux

1.7.2. Phía back end

1.7.2.1. PASETO Token
1.7.2.2. Docker

2. CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ ĐẶC TẢ YÊU CẦU PHẦN MỀM

2.1. Khảo sát hiện trạng

2.2. Kiến trúc chung của hệ thống

2.3. Đặc tả yêu cầu phần mềm

2.4. Yêu cầu đề tài

3. CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

3.1. Tác nhân hệ thống

3.2. Lược đồ Use case

3.3. Đặc tả Use case

3.4. Lược đồ tuần tự

4. CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU

4.1. Lược đồ cơ sở dữ liệu

4.2. Mô tả dữ liệu bảng

5. CHƯƠNG 5: THIẾT KẾ GIAO DIỆN

5.1. Màn hình giao diện phía người dùng vãng lai (Guest)

5.2. Màn hình giao diện phía người dùng (User)

6. CHƯƠNG 6: CÀI ĐẶT PHẦN MỀM

PHẦN KẾT LUẬN

TÀI LIỆU THAM KHẢO

DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG BIỂU

Tóm tắt

I. Giới thiệu dự án Xây dựng nhà sách trực tuyến Golang ReactJS

Trong bối cảnh thương mại điện tử phát triển mạnh mẽ, nhu cầu mua sắm trực tuyến ngày càng tăng cao. Nhà sách online trở thành một kênh phân phối quan trọng, giúp các nhà xuất bản và tác giả tiếp cận độc giả một cách dễ dàng và hiệu quả hơn. Dự án xây dựng nhà sách online với Golang và ReactJS đáp ứng nhu cầu này, cung cấp một nền tảng ecommerce hiện đại, thân thiện với người dùng và dễ dàng quản lý. Mục tiêu của dự án là xây dựng một website bán sách trực tuyến hoàn chỉnh, bao gồm các chức năng tìm kiếm, xem thông tin sản phẩm, đặt hàng, thanh toán, đánh giá sản phẩm và quản lý tài khoản người dùng. Golang được sử dụng cho backend, cung cấp hiệu năng cao và khả năng mở rộng tốt, trong khi ReactJS được sử dụng cho frontend, mang lại trải nghiệm người dùng mượt mà và trực quan. Ứng dụng còn có hệ thống quản lý doanh thu và sản phẩm dành cho người quản lý.

Nền tảng web hướng tới việc mở rộng thị trường, giảm thiểu thời gian và chi phí tìm kiếm, cũng như liên tục cập nhật thông tin sách cho người dùng. Trang web cung cấp thông tin chi tiết về sản phẩm, bao gồm các chức năng tìm kiếm, xem thông tin, đặt hàng, thanh toán và đánh giá sản phẩm. Đồng thời, một hệ thống quản lý và doanh thu được xây dựng cho người quản lý. Giao diện người dùng được thiết kế thân thiện với mọi lứa tuổi.

1.1. Lợi ích của việc phát triển nhà sách điện tử Golang ReactJS

Việc phát triển nhà sách điện tử mang lại nhiều lợi ích cho cả người bán và người mua. Đối với người bán, nhà sách online giúp mở rộng phạm vi tiếp cận khách hàng, giảm chi phí thuê mặt bằng và nhân viên, đồng thời dễ dàng quản lý và cập nhật thông tin sản phẩm. Đối với người mua, nhà sách trực tuyến cung cấp sự tiện lợi, đa dạng về sản phẩm, giá cả cạnh tranh và khả năng tìm kiếm thông tin nhanh chóng. Theo tài liệu, nhóm đã khảo sát các trang web thương mại điện tử để tìm hiểu nhu cầu của người dùng và doanh nghiệp. Sử dụng Gin framework của Golang cho backend, React.JS cho frontend và Elasticsearch để tối ưu việc tìm kiếm.

1.2. Tổng quan về kiến trúc thiết kế nhà sách online Golang ReactJS

Kiến trúc của dự án thiết kế nhà sách online bao gồm hai phần chính: frontend và backend. Frontend được xây dựng bằng ReactJS, chịu trách nhiệm hiển thị giao diện người dùng và tương tác với người dùng. Backend được xây dựng bằng Golang, sử dụng Gin framework, chịu trách nhiệm xử lý logic nghiệp vụ, quản lý cơ sở dữ liệu và cung cấp API cho frontend. Cơ sở dữ liệu được sử dụng là PostgreSQL, đảm bảo tính toàn vẹn và bảo mật dữ liệu. Mô hình dữ liệu quan hệ của PostgreSQL cho phép tổ chức dữ liệu thành bảng, mối quan hệ giữa các bảng được xác định bằng khóa ngoại và các truy vấn SQL được sử dụng để truy xuất và thao tác dữ liệu. Hệ thống bảo mật sử dụng PASETO: Platform-Agnostic Security Tokens của Golang.

II. Thách thức khi lập trình nhà sách online Golang ReactJS hiệu quả

Mặc dù mang lại nhiều lợi ích, việc lập trình nhà sách online cũng đối mặt với nhiều thách thức. Một trong những thách thức lớn nhất là đảm bảo tính bảo mật của hệ thống, đặc biệt là thông tin cá nhân và thanh toán của khách hàng. Ngoài ra, cần phải tối ưu hóa hiệu năng của hệ thống để đáp ứng số lượng lớn người dùng truy cập cùng lúc. Bên cạnh đó, việc xây dựng một giao diện người dùng thân thiện, dễ sử dụng và hấp dẫn cũng là một yếu tố quan trọng để thu hút khách hàng. Thách thức khác bao gồm việc tích hợp các phương thức thanh toán trực tuyến, quản lý kho hàng và vận chuyển, cũng như xử lý các vấn đề liên quan đến bản quyền và nội dung số.

2.1. Vấn đề bảo mật và bảo mật nhà sách online

Bảo mật là một trong những yếu tố quan trọng nhất khi xây dựng website bán sách. Cần phải áp dụng các biện pháp bảo mật mạnh mẽ để bảo vệ thông tin cá nhân và thanh toán của khách hàng khỏi các cuộc tấn công mạng. Các biện pháp bảo mật có thể bao gồm sử dụng giao thức HTTPS, mã hóa dữ liệu, xác thực hai yếu tố, kiểm soát truy cập và giám sát hệ thống thường xuyên. Theo tài liệu, nhóm đã nghiên cứu PASETO (Platform-Agnostic Security Tokens) của Golang để bảo mật cho hệ thống. PASETO tập trung vào tính toàn vẹn dữ liệu và bảo mật thông tin, đảm bảo rằng dữ liệu không bị thay đổi trong quá trình truyền tải.

2.2. Tối ưu hiệu năng và trải nghiệm người dùng nhà sách online

Hiệu năng của hệ thống có ảnh hưởng trực tiếp đến trải nghiệm người dùng nhà sách online. Một hệ thống chậm chạp, khó sử dụng sẽ khiến khách hàng rời bỏ và chuyển sang đối thủ cạnh tranh. Cần phải tối ưu hóa hiệu năng của hệ thống bằng cách sử dụng các kỹ thuật như caching, load balancing, tối ưu hóa cơ sở dữ liệu và sử dụng CDN. Bên cạnh đó, việc xây dựng một giao diện người dùng thân thiện, dễ sử dụng và hấp dẫn cũng là một yếu tố quan trọng để thu hút khách hàng. Redux giúp các thành phần trong ứng dụng truy cập và cập nhật trạng thái dễ dàng, tạo điều kiện cho việc phát triển ứng dụng có cấu trúc rõ ràng. ReactJS sử dụng Virtual DOM (DOM ảo) để cải thiện hiệu suất và tối ưu hóa quá trình cập nhật giao diện.

2.3. Quản lý sản phẩm và quản lý sản phẩm nhà sách online hiệu quả

Quản lý sản phẩm là một phần quan trọng trong việc xây dựng website bán sách. Cần có một hệ thống quản lý sản phẩm hiệu quả để dễ dàng thêm, sửa, xóa và cập nhật thông tin sản phẩm. Hệ thống quản lý sản phẩm nên hỗ trợ các chức năng như tải lên hình ảnh, mô tả chi tiết, giá cả, số lượng tồn kho và phân loại sản phẩm. Đồng thời, cần phải tích hợp hệ thống quản lý kho hàng và vận chuyển để đảm bảo việc giao hàng đúng hẹn và đáp ứng nhu cầu của khách hàng.

III. Hướng dẫn xây dựng nhà sách online Golang ReactJS từng bước

Việc xây dựng nhà sách online đòi hỏi kiến thức về cả frontend và backend, cũng như kinh nghiệm làm việc với các công nghệ như Golang, ReactJS, PostgreSQL và các công cụ hỗ trợ khác. Hướng dẫn xây dựng nhà sách online dưới đây sẽ cung cấp một cái nhìn tổng quan về quy trình phát triển, từ thiết kế cơ sở dữ liệu, xây dựng API, đến phát triển giao diện người dùng và triển khai hệ thống.

3.1. Thiết kế cơ sở dữ liệu cho cơ sở dữ liệu nhà sách online

Thiết kế cơ sở dữ liệu là bước đầu tiên và quan trọng nhất trong quá trình xây dựng nhà sách online. Cơ sở dữ liệu cần phải được thiết kế sao cho đảm bảo tính toàn vẹn, bảo mật và hiệu năng của hệ thống. Các bảng dữ liệu chính có thể bao gồm: users, books, categories, orders, order_items, reviewsaddresses. Mỗi bảng cần có các cột dữ liệu phù hợp với chức năng của nó, ví dụ: bảng books có thể có các cột như id, title, author, description, price, image_urlcategory_id. Bảng dữ liệu quan hệ của PostgreSQL cho phép tổ chức dữ liệu thành bảng, mối quan hệ giữa các bảng được xác định bằng khóa ngoại và các truy vấn SQL được sử dụng để truy xuất và thao tác dữ liệu.

3.2. Xây dựng API cho API nhà sách online Golang

API là giao diện để frontend tương tác với backend. API cần phải được thiết kế sao cho dễ sử dụng, bảo mật và hiệu năng cao. Các API chính có thể bao gồm: register, login, logout, get_books, get_book_by_id, create_order, get_orders, create_reviewget_reviews. API nên sử dụng các phương thức HTTP như GET, POST, PUT và DELETE để thực hiện các thao tác CRUD (Create, Read, Update, Delete) trên dữ liệu. Gin framework giúp đơn giản hóa việc xây dựng các ứng dụng web nhanh chóng, hiệu quả, hỗ trợ routing, middleware, xử lý JSON, xử lý lỗi và nhiều công cụ hỗ trợ phát triển khác.

3.3. Phát triển giao diện người dùng ReactJS cho nhà sách online

Giao diện người dùng là bộ mặt của nhà sách online. Giao diện cần phải được thiết kế sao cho thân thiện, dễ sử dụng và hấp dẫn. Sử dụng ReactJS và các thư viện hỗ trợ như Redux, Material UI để xây dựng giao diện. Các trang chính có thể bao gồm: trang chủ, trang danh mục, trang chi tiết sản phẩm, trang giỏ hàng, trang thanh toán và trang quản lý tài khoản. Mỗi thành phần trong ReactJS có thể được xây dựng bằng JSX, cho phép viết mã HTML trong JavaScript, giúp code dễ bảo trì.

IV. Giải pháp triển khai nhà sách online và quản lý hiệu quả

Sau khi hoàn thành phát triển, việc triển khai nhà sách online và quản lý hiệu quả là rất quan trọng để đảm bảo hệ thống hoạt động ổn định và đáp ứng nhu cầu của khách hàng. Cần phải lựa chọn một nhà cung cấp dịch vụ hosting phù hợp, cấu hình máy chủ, cài đặt phần mềm và triển khai mã nguồn. Đồng thời, cần phải thực hiện các biện pháp bảo mật để bảo vệ hệ thống khỏi các cuộc tấn công mạng. Sau khi triển khai, cần phải thường xuyên theo dõi, bảo trì và cập nhật hệ thống để đảm bảo hoạt động ổn định và hiệu quả.

4.1. Lựa chọn hosting và triển khai nhà sách online Golang ReactJS

Lựa chọn hosting là một quyết định quan trọng ảnh hưởng đến hiệu năng và độ tin cậy của nhà sách online. Có nhiều loại hosting khác nhau như shared hosting, VPS hosting và cloud hosting. Cần phải lựa chọn loại hosting phù hợp với nhu cầu và ngân sách của dự án. 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, đả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.

4.2. Giám sát và bảo trì nhà sách trực tuyến Golang ReactJS

Giám sát và bảo trì hệ thống là một công việc liên tục và quan trọng. Cần phải thường xuyên theo dõi hiệu năng của hệ thống, kiểm tra các lỗi và cảnh báo, cập nhật phần mềm và thực hiện các biện pháp bảo mật. 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. ELK Stack là một tập hợp 3 phần mềm, phục vụ cho việc logging và tìm kiếm, giúp giám sát hệ thống.

4.3. Tiếp thị và phát triển nhà sách online Golang ReactJS

Tiếp thị và phát triển là một phần không thể thiếu trong quá trình xây dựng nhà sách online. Cần phải xây dựng một chiến lược tiếp thị hiệu quả để thu hút khách hàng và tăng doanh số bán hàng. Các kênh tiếp thị có thể bao gồm SEO, quảng cáo trực tuyến, mạng xã hội, email marketing và content marketing. Ngoài ra, cần phải liên tục cải thiện và phát triển nhà sách online để đáp ứng nhu cầu ngày càng cao của khách hàng. Content – Based Recommendation System sẽ gợi ý những sản phẩm có độ tương đồng nhất định với những sản phẩm đã được sử dụng trước đó, giúp tăng trải nghiệm người dùng.

V. Mã nguồn nhà sách online Golang ReactJS Hướng dẫn sử dụng

Để giúp bạn hình dung rõ hơn về cách xây dựng nhà sách online, phần này sẽ giới thiệu về mã nguồn nhà sách online sử dụng Golang cho backend và ReactJS cho frontend. Bạn có thể tham khảo source code nhà sách online này để hiểu rõ hơn về cấu trúc dự án, cách tổ chức mã, cách sử dụng các thư viện và framework. Cần lưu ý tuân thủ các quy tắc bảo mật và kiểm tra kỹ lưỡng mã nguồn trước khi sử dụng.

5.1. Cấu trúc dự án và source code nhà sách online

Dự án nhà sách online được tổ chức thành hai thư mục chính: backendfrontend. Thư mục backend chứa mã nguồn Golang cho API, cơ sở dữ liệu và logic nghiệp vụ. Thư mục frontend chứa mã nguồn ReactJS cho giao diện người dùng. Mỗi thư mục lại được chia thành các thư mục con để dễ dàng quản lý và bảo trì mã. Việc tổ chức mã nguồn rõ ràng sẽ giúp bạn dễ dàng tìm kiếm, sửa đổi và mở rộng dự án.

5.2. Hướng dẫn cài đặt và chạy mã nguồn nhà sách online Golang ReactJS

Để cài đặt và chạy mã nguồn nhà sách online, bạn cần cài đặt các công cụ cần thiết như Golang, Node.js, PostgreSQL và các thư viện phụ thuộc. Sau đó, bạn cần cấu hình cơ sở dữ liệu, cài đặt các gói phụ thuộc và chạy các lệnh để khởi động backend và frontend. Tài liệu hướng dẫn chi tiết sẽ được cung cấp kèm theo mã nguồn để giúp bạn thực hiện các bước này một cách dễ dàng.

VI. Kết luận và tương lai của nhà sách trực tuyến Golang ReactJS

Dự án xây dựng nhà sách online với Golang và ReactJS đã thành công trong việc tạo ra một nền tảng ecommerce hiện đại, thân thiện với người dùng và dễ dàng quản lý. Với sự phát triển không ngừng của công nghệ, nhà sách trực tuyến sẽ tiếp tục phát triển và mang lại nhiều lợi ích hơn cho cả người bán và người mua. Trong tương lai, có thể tích hợp thêm các tính năng mới như trí tuệ nhân tạo (AI), thực tế ảo (VR) và blockchain để nâng cao trải nghiệm người dùng và tăng cường tính bảo mật.

6.1. Tổng kết dự án xây dựng nhà sách online Golang ReactJS

Dự án xây dựng nhà sách online đã đạt được các mục tiêu đề ra, bao gồm xây dựng một website bán sách trực tuyến hoàn chỉnh, cung cấp các chức năng tìm kiếm, xem thông tin sản phẩm, đặt hàng, thanh toán, đánh giá sản phẩm và quản lý tài khoản người dùng. Hệ thống được xây dựng bằng GolangReactJS, đảm bảo hiệu năng cao, khả năng mở rộng tốt và trải nghiệm người dùng mượt mà. Theo tài liệu, nhóm đã có thêm kinh nghiệm về việc thiết kế ứng dụng mua bán, quản lý sản phẩm thương mại điện tử.

6.2. Hướng phát triển trong tương lai của nhà sách online Golang ReactJS

Trong tương lai, có thể tích hợp thêm nhiều tính năng mới cho nhà sách online như: cá nhân hóa trải nghiệm người dùng dựa trên lịch sử mua hàng và sở thích, tích hợp các phương thức thanh toán mới như ví điện tử và tiền điện tử, sử dụng AI để gợi ý sản phẩm và cung cấp dịch vụ khách hàng tự động, sử dụng VR để tạo ra trải nghiệm mua sắm ảo chân thực và sử dụng blockchain để đảm bảo tính minh bạch và bảo mật của các giao dịch.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

20/09/2025
Xây dựng nhà sách online sử dụng golang và reactjs

Trích đoạn nội dung tài liệu

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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ