1. Trang chủ
  2. » Cao đẳng - Đại học

KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử

178 182 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Khóa Luận Tốt Nghiệp Áp Dụng Công Nghệ Blockchain Xây Dựng Website Thương Mại Điện Tử
Tác giả Đặng Phương Tân
Người hướng dẫn ThS. Trần Anh Dũng
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ sư ngành Kỹ thuật phần mềm
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 178
Dung lượng 7,08 MB

Cấu trúc

  • Chương 1: TỔNG QUAN ĐỀ TÀI (24)
    • 1.1. Giới thiệu đề tài (24)
    • 1.2. Khảo sát hiện trạng (25)
    • 1.3. Một số vấn đề còn tồn tại (26)
    • 1.4. Hướng giải quyết (26)
    • 1.5. Mục tiêu đề tài (26)
  • Chương 2: KIẾN THỨC NỀN TẢNG (27)
    • 2.1. Blockchain (27)
      • 2.1.1. Tổng quan (27)
        • 2.1.1.1. Giới thiệu (27)
        • 2.1.1.2. Tính chất của Blockchain (29)
        • 2.1.1.3. Ứng dụng của Blockchain (31)
      • 2.1.2. Áp dụng vào đề tài (33)
    • 2.2. Smart Contract (33)
      • 2.2.1. Tổng quan (33)
        • 2.2.1.1. Giới thiệu (33)
        • 2.2.1.2. Cơ chế hoạt động (34)
        • 2.2.1.3. Tính chất của Smart Contract (35)
      • 2.2.2. Áp dụng vào đề tài (37)
    • 2.3. Nền tảng Ethereum (37)
      • 2.3.1. Tổng quan (37)
        • 2.3.1.1. Giới thiệu (37)
        • 2.3.1.2. Các thành phần trong Ethereum (38)
      • 2.3.2. Áp dụng vào đề tài (43)
    • 2.4. IPFS (43)
      • 2.4.1. Tổng quan (43)
        • 2.4.1.1. Giới thiệu (43)
        • 2.4.1.2. Đặc điểm nổi bật (44)
      • 2.4.2. Áp dụng vào đề tài (45)
    • 2.5. Server NodeJS (46)
      • 2.5.1. Tổng quan (46)
        • 2.5.1.1. Giới thiệu (46)
        • 2.5.1.2. Các đặc tính của NodeJS (47)
      • 2.5.2. Áp dụng vào đề tài (48)
    • 2.6. Solidity (48)
      • 2.6.1. Giới thiệu (48)
      • 2.6.2. Áp dụng vào đề tài (48)
    • 2.7. NodeMailer (48)
      • 2.7.1. Giới thiệu (48)
      • 2.7.2. Áp dụng vào đề tài (49)
    • 2.8. Socket.IO (50)
      • 2.8.1. Giới thiệu (50)
      • 2.8.2. Áp dụng vào đề tài (50)
  • Chương 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG (51)
    • 3.1. Đặc tả yêu cầu (51)
      • 3.1.1. Mục đích xây dựng hệ thống (51)
      • 3.1.2. Phạm vi hệ thống (54)
      • 3.1.3. Kiến trúc hệ thống (54)
    • 3.2. Thiết kế dữ liệu (55)
      • 3.2.1. Hệ thống bảng dữ liệu Smart Contract (55)
        • 3.2.1.1. Bảng “Product” thuộc Smart Contract (55)
        • 3.2.1.2. Bảng “Category” thuộc Smart Contract (56)
        • 3.2.1.3. Bảng “PurchasedInfo” thuộc Smart Contract (56)
        • 3.2.1.4. Bảng “SellerPicks” thuộc Smart Contract (57)
      • 3.2.2. Hệ thống bảng dữ liệu server NodeJs (58)
        • 3.2.2.1. Bảng “Account” thuộc NodeJS (58)
        • 3.2.2.2. Bảng “Cart” thuộc NodeJS (59)
        • 3.2.2.3. Bảng “Chat-notify” thuộc NodeJS (59)
        • 3.2.2.4. Bảng “Chat” thuộc NodeJS (60)
        • 3.2.2.5. Bảng “Comment” thuộc NodeJS (60)
        • 3.2.2.6. Bảng “Product-import-info” thuộc NodeJS (61)
        • 3.2.2.7. Bảng “Product-imports” thuộc NodeJS (61)
        • 3.2.2.8. Bảng “Product-license” thuộc NodeJS (61)
        • 3.2.2.9. Bảng “Product-quantity” thuộc NodeJS (61)
        • 3.2.2.10. Bảng “Rating” thuộc NodeJS (62)
        • 3.2.2.11. Bảng “Report” thuộc NodeJS (62)
        • 3.2.2.12. Bảng “Sale” thuộc NodeJS (62)
        • 3.2.2.13. Bảng “Shipper” thuộc NodeJS (63)
        • 3.2.2.14. Bảng “Site-settings” thuộc NodeJS (63)
        • 3.2.2.15. Bảng “Wish-list” thuộc NodeJS (64)
  • Chương 4: HIỆN THỰC HỆ THỐNG (65)
    • 4.1. Sơ đồ Usecase (65)
      • 4.1.1. Danh sách Actor (65)
      • 4.1.2. Sơ đồ Usecase tổng quát (65)
        • 4.1.2.1. Sơ đồ Usecase người dùng (65)
        • 4.1.2.2. Sơ đồ Usecase người bán hàng (67)
        • 4.1.2.3. Sơ đồ Usecase admin (67)
        • 4.1.2.4. Bảng danh sách các Usecase của hệ thống (69)
    • 4.2. Một số sơ đồ tuần tự (Sequence Diagram) và sơ đồ lớp (Class Diagram) chính 52 1. Đăng ký (72)
      • 4.2.1.1. Sơ đồ tuần tự (72)
      • 4.2.1.2. Sơ đồ lớp (73)
      • 4.2.2. Đăng nhập (75)
        • 4.2.2.1. Sơ đồ tuần tự (75)
        • 4.2.2.2. Sơ đồ lớp (75)
      • 4.2.3. Cập nhật tài khoản (77)
        • 4.2.3.1. Sơ đồ tuần tự (77)
        • 4.2.3.2. Sơ đồ lớp (78)
      • 4.2.4. Tạo sản phẩm (79)
        • 4.2.4.1. Sơ đồ tuần tự (79)
        • 4.2.4.2. Sơ đồ lớp (80)
      • 4.2.5. Nhắn tin (81)
        • 4.2.5.1. Sơ đồ tuần tự (81)
        • 4.2.5.2. Sơ đồ lớp (82)
      • 4.2.6. Đánh giá sản phẩm (83)
        • 4.2.6.1. Sơ đồ tuần tự (83)
        • 4.2.6.2. Sơ đồ lớp (83)
      • 4.2.7. Bình luận sản phẩm (85)
        • 4.2.7.1. Sơ đồ tuần tự (85)
        • 4.2.7.2. Sơ đồ lớp (86)
      • 4.2.8. Báo cáo hàng hóa (87)
        • 4.2.8.1. Sơ đồ tuần tự (87)
        • 4.2.8.2. Sơ đồ lớp (87)
      • 4.2.9. Thêm vào giỏ hàng (89)
        • 4.2.9.1. Sơ đồ tuần tự (89)
        • 4.2.9.2. Sơ đồ lớp (89)
      • 4.2.10. Giao dịch hàng hóa (90)
        • 4.2.10.1. Sơ đồ tuần tự (90)
        • 4.2.10.2. Sơ đồ lớp (91)
      • 4.2.11. Tìm kiếm/lọc sản phẩm (92)
        • 4.2.11.1. Sơ đồ tuần tự (92)
        • 1.1.1.1. Sơ đồ lớp (93)
      • 4.2.12. Cài đặt thông số hệ thống (94)
        • 4.2.12.1. Sơ đồ tuần tự (94)
        • 4.2.12.2. Sơ đồ lớp (94)
      • 4.2.13. Quản lý sản phẩm (96)
        • 4.2.13.1. Sơ đồ tuần tự tổng quát (96)
        • 4.2.13.2. Chức năng cập nhật sản phẩm (98)
        • 4.2.13.3. Chức năng xác nhận sản phẩm (100)
        • 4.2.13.4. Chức năng nhập kho sản phẩm (101)
        • 4.2.13.5. Chức năng đẩy tin sản phẩm (102)
        • 4.2.13.6. Chức năng xác nhận báo cáo sản phẩm (104)
      • 4.2.14. Quản lý người dùng (105)
        • 4.2.14.1. Sơ đồ tuần tự tổng quát (105)
        • 4.2.14.2. Chức năng cập nhật thông tin người dùng (106)
        • 4.2.14.3. Chức năng chặn người dùng (108)
      • 4.2.15. Quản lý khuyến mãi (110)
        • 4.2.15.1. Sơ đồ tuần tự tổng quát (110)
        • 4.2.15.2. Chức năng thêm khuyến mãi (111)
        • 4.2.15.3. Chức năng cập nhật khuyến mãi (113)
      • 4.2.16. Quản lý giao dịch (115)
        • 4.2.16.1. Sơ đồ tuần tự tổng quát (115)
        • 4.2.16.2. Chức năng cập nhật người giao (117)
        • 4.2.16.3. Chức năng xác nhận giao hàng (119)
    • 4.3. Thiết kế giao diện (121)
      • 4.3.1. Màn hình Trang chủ (121)
      • 4.3.2. Màn hình trang Đăng nhập/Đăng ký (122)
      • 4.3.3. Màn hình kích hoạt tài khoản (123)
      • 4.3.4. Màn hình Quên mật khẩu (123)
        • 4.3.4.1. Nhập Email (123)
        • 4.3.4.2. Nhập mã xác nhận (124)
        • 4.3.4.3. Đổi mật khẩu (124)
      • 4.3.5. Màn hình trang Liên hệ (125)
      • 4.3.6. Màn hình trang Thông tin tài khoản (126)
        • 4.3.6.1. Lịch sử mua (126)
        • 4.3.6.2. Đơn hàng (127)
        • 4.3.6.3. Sản phẩm đã duyệt (128)
        • 4.3.6.4. Sản phẩm chờ duyệt (129)
        • 4.3.6.5. Sản phẩm bị từ chối (130)
        • 4.3.6.6. Cập nhật thông tin (131)
      • 4.3.7. Màn hình trang nhắn tin (132)
      • 4.3.8. Màn hình trang thêm sản phẩm (132)
      • 4.3.9. Màn hình trang Chi tiết sản phẩm (133)
      • 4.3.10. Màn hình trang Cập nhật thông tin sản phẩm (134)
      • 4.3.11. Màn hình trang Danh sách mong muốn (134)
      • 4.3.12. Màn hình trang Giỏ hàng (135)
      • 4.3.13. Màn hình trang Tìm kiếm sản phẩm (136)
        • 4.3.13.1. Tìm kiếm theo tên (136)
        • 4.3.13.2. Tìm kiếm theo loại (137)
        • 4.3.13.3. Tìm kiếm theo mức giá (138)
      • 4.3.14. Màn hình trang Báo cáo thống kê (139)
      • 4.3.15. Màn hình trang Cài đặt thông số hệ thống (139)
      • 4.3.16. Màn hình trang Quản lý hàng hóa (140)
        • 4.3.16.1. Tất cả (140)
        • 4.3.16.2. Loại hàng hóa (141)
        • 4.3.16.3. Kiểm duyệt hàng hóa (141)
        • 4.3.16.4. Nhập kho hàng hóa (142)
        • 4.3.16.5. Chi tiết nhập kho (142)
        • 4.3.16.6. Đẩy tin (143)
        • 4.3.16.7. Hàng hóa bị báo cáo (144)
        • 4.3.16.8. Hàng hóa bị từ chối (144)
      • 4.3.17. Màn hình trang Quản lý tài khoản (145)
        • 4.3.17.1. Tất cả (145)
        • 4.3.17.2. Tài khoản bị khóa (145)
      • 4.3.18. Màn hình trang Quản lý khuyến mãi (146)
        • 4.3.18.1. Khả dụng (146)
        • 4.3.18.2. Chưa khả dụng (146)
      • 4.3.19. Màn hình trang Quản lý đơn hàng (147)
        • 4.3.19.1. Đang giao (147)
        • 4.3.19.2. Đã giao (147)
  • Chương 5: YÊU CẦU HỆ THỐNG VÀ CÀI ĐẶT (148)
    • 5.1. Yêu cầu hệ thống (148)
    • 5.2. Cài đặt (148)
      • 5.2.1. NodeJS và NPM (148)
      • 5.2.2. MongoDB (155)
      • 5.2.3. MetaMask (165)
      • 5.2.4. Cài đặt phần hỗ trợ (168)
      • 5.2.5. Chạy chương trình (169)
  • Chương 6: Tổng kết (175)
    • 6.1. Kết quả đạt được (175)
      • 6.1.1. Về nội dung nghiên cứu (175)
      • 6.1.2. Về chương trình và ứng dụng (175)
    • 6.2. Đánh giá (175)
      • 6.2.1. Thuận lợi (175)
      • 6.2.2. Khó khăn (176)
    • 6.3. Hướng phát triển (176)
    • 6.4. Kết luận (177)

Nội dung

KIẾN THỨC NỀN TẢNG

Blockchain

Blockchain là một nền tảng công nghệ lưu trữ thông tin, trong đó các đơn vị dữ liệu được tổ chức thành các khối (block) và liên kết với nhau tạo thành một chuỗi (chain).

Blockchain, hay còn gọi là chuỗi khối, là một hệ thống cơ sở dữ liệu phân cấp lưu trữ thông tin trong các khối được liên kết với nhau thông qua mã hóa Mỗi khối không chỉ chứa thông tin về thời gian khởi tạo mà còn liên kết với khối trước đó và bao gồm dữ liệu giao dịch Hệ thống này được mở rộng theo thời gian, tạo nên một mạng lưới thông tin an toàn và minh bạch.

Blockchain có thể được hình dung như một sổ cái chứa các giao dịch, trong đó mỗi trang tương ứng với một khối Điểm đặc biệt của Blockchain là các khối được liên kết theo thứ tự nhất định, không thể chèn thêm khối vào giữa chuỗi Nhờ vào công nghệ mã hóa, chuỗi khối được bảo vệ an toàn, tạo thành một chuỗi không thể bị phá vỡ Chúng ta chỉ có thể thêm các khối mới vào cuối chuỗi hiện tại.

Các block trong chuỗi blockchain là bất biến, nghĩa là khi một block đã được thêm vào chuỗi, nó không thể bị thay đổi Các block được liên kết với nhau thông qua việc sử dụng hash, trong đó block sau lưu trữ hash của block trước.

Blockchain được phát triển với khả năng chống lại việc thay đổi dữ liệu, đảm bảo rằng một khi thông tin đã được cập nhật, việc thay đổi nó trở nên rất khó khăn Trong trường hợp một phần của hệ thống Blockchain gặp sự cố, các máy tính và nút khác vẫn sẽ duy trì hoạt động để bảo vệ và giữ an toàn cho thông tin.

Công nghệ Blockchain là một hệ thống cho phép lưu trữ, xác nhận, vận chuyển và truyền tải dữ liệu qua mạng lưới các nút phân phối độc lập, không cần đến sự can thiệp của bên thứ ba.

Blockchain là một cơ sở dữ liệu phân tán toàn cầu, cho phép lưu trữ và quản lý thông tin cũng như tài sản giá trị một cách an toàn và riêng tư Nó hoạt động trên hàng triệu thiết bị và mở cho mọi người, thiết lập sự tin tưởng thông qua sự hợp tác giữa cộng đồng và hợp đồng thông minh, thay vì phụ thuộc vào các trung gian mạnh mẽ như chính phủ và ngân hàng.

Công nghệ Blockchain dựa trên hai kỹ thuật chính là hàm băm và chữ ký số, trong đó mỗi người dùng sở hữu một cặp khóa gồm khóa bí mật và khóa công khai Khóa bí mật được giữ kín để ký kết các giao dịch, trong khi chữ ký số được phát đi trên toàn mạng Quá trình chữ ký số bao gồm hai giai đoạn: ký kết và xác minh Khi người dùng A gửi thông báo cho người dùng B, A mã hóa dữ liệu bằng khóa bí mật và gửi kết quả đã mã hóa cùng dữ liệu gốc B sau đó sử dụng khóa công khai của A để xác nhận giao dịch, giúp kiểm tra tính xác thực của dữ liệu và phát hiện giả mạo.

Tính tin cậy là một trong những đặc điểm nổi bật của Blockchain Giao dịch trong Blockchain được ký số bằng thuật toán ECDSA, giúp giảm thiểu khả năng giả mạo chữ ký nhờ yêu cầu tài nguyên tính toán lớn Hơn nữa, việc sử dụng hàm băm mật mã từ khi khởi tạo giao dịch cho đến khi vào sổ cũng tăng cường độ tin cậy Tất cả các giao dịch đều được tóm lược và lưu trữ trong header của block, và quá trình kiểm tra các block cùng giao dịch diễn ra nhiều lần với nhiều lớp để đảm bảo tính chính xác.

Tính không thể đảo ngược của dữ liệu giao dịch là một đặc điểm quan trọng trong công nghệ blockchain Sau khi giao dịch được xác nhận và lưu trữ trong block, nó sẽ không thể thay đổi Các block được liên kết với nhau, và mỗi block chứa "dấu vết" của tất cả các giao dịch trước đó cùng với các yếu tố ngẫu nhiên Việc làm lại sổ giao dịch sẽ tiêu tốn một lượng lớn tài nguyên tính toán, đảm bảo tính an toàn và minh bạch cho hệ thống.

10 lớn, vì liên quan đến các block trước và chi phối toàn bộ các block sau

Hệ thống Blockchain có tính bền vững cao, khi phát triển đủ lớn sẽ trở nên không thể phá vỡ Nguyên tắc đồng thuận phân tán gia tăng khả năng kiểm tra và xác thực nhờ vào số lượng nút mạng tham gia Mạng ngang hàng cung cấp khả năng tính toán vượt trội và không có nút cổ chai, làm cho các cuộc tấn công DDoS trở nên khó khăn Trong trường hợp một nút gặp sự cố, các nút khác vẫn hoạt động bình thường với dữ liệu đã được đồng bộ, và dữ liệu trong hệ thống chỉ có thể được ghi và đọc, không thể bị xóa.

Tính sẵn sàng của mạng Blockchain được đảm bảo nhờ vào sự phân bố của các nút mạng ở nhiều khu vực địa lý khác nhau Việc không cần sự cấp phép từ một đơn vị quản lý tập trung giúp số lượng nút mạng gia tăng, đảm bảo tính linh hoạt và độ tin cậy Khi một máy gặp sự cố và được khôi phục, nó sẽ tự động kết nối và đồng bộ dữ liệu, giúp dữ liệu được lan truyền rộng rãi trên toàn cầu mà không phát sinh chi phí địa lý hay vận chuyển, từ đó tiết kiệm thời gian và công sức.

Hình 2.2 - Cách hoạt động của Blockchain

Blockchain tạo ra một hệ thống minh bạch với dữ liệu và lịch sử không thể thay đổi, không bị can thiệp bởi cá nhân hay tổ chức Sự minh bạch và dữ liệu sạch giúp xây dựng lòng tin từ người dùng, mở ra cơ hội cho Blockchain trở thành nền tảng cho nhiều ngành kinh tế mới ngoài tiền mã hóa Các lĩnh vực tiềm năng bao gồm nền kinh tế vi thanh toán, giao diện M2M cho hơn 30 tỷ thiết bị IoT, hợp đồng thông minh và ứng dụng phân tán.

Quản lý định danh hiện nay có thể được thực hiện thông qua công nghệ Blockchain, cho phép quản lý các loại thẻ như chứng minh thư, bằng đại học và bằng sáng chế Mặc dù một số tổ chức cung cấp dịch vụ xác minh trực tuyến như quét thẻ hoặc đóng dấu bằng số, nhưng chi phí cho các dịch vụ này có thể rất cao do yêu cầu thanh toán.

12 cho đám mây lưu trữ Với Blockchain, không cần phải xây dựng hạ tầng định dạng mà chỉ cần hỏi để mở Blockchain

Chứng thực quyền sở hữu thường được lưu trữ dưới dạng giấy tờ, dễ bị giả mạo hoặc sửa đổi Ngược lại, dữ liệu trên Blockchain không thể thay đổi, nhờ vào cấu trúc chuỗi khối phân tán trên nhiều máy tính, giúp ngăn chặn các tác động vật lý Thông tin kỹ thuật số được chia thành các khối và liên kết chặt chẽ với nhau, đảm bảo tính toàn vẹn và bảo mật.

Smart Contract

Hợp đồng thông minh (Smart Contract) là một bộ giao thức tự động thực hiện các điều khoản và thỏa thuận giữa các bên thông qua công nghệ Blockchain Toàn bộ quá trình của hợp đồng thông minh diễn ra mà không cần sự can thiệp từ bên ngoài hay sự tham gia của bên thứ ba trung gian, đảm bảo tính minh bạch và an toàn cho các giao dịch.

Hợp đồng thông minh (Smart Contract) là các hợp đồng minh bạch, dễ truy xuất và không thể bị can thiệp, với các điều khoản tương đương hợp đồng pháp lý được ghi dưới ngôn ngữ lập trình Điểm nổi bật của Smart Contract là khả năng cho phép hai bên thực hiện hợp đồng một cách chính xác, an toàn và nhanh chóng mà không cần biết nhau hay gặp mặt trực tiếp, chỉ cần có kết nối Internet Nick Szabo đã đề xuất nguyên tắc hoạt động của nó từ năm 1993, nhưng công nghệ và môi trường lúc đó chưa đủ để hiện thực hóa Tuy nhiên, sự phát triển của công nghệ Blockchain đã thay đổi mọi thứ.

Hình 2.4 - Hợp đồng truyền thống Hình 2.5 - Hợp đồng thông minh

Smart Contract hoạt động giống như một chiếc máy bán hàng tự động, tự động thực hiện các điều khoản đã được lập trình sẵn khi đáp ứng đủ yêu cầu Các điều khoản trong hợp đồng được viết bằng ngôn ngữ lập trình, sau đó mã hóa và chuyển vào một block thuộc Blockchain Sau khi được chuyển vào block, Smart Contract sẽ hoạt động theo cách đã được định sẵn.

15 được phân phối và sao chép lại bởi các node đang hoạt động trên nền tảng đó

Sau khi nhận lệnh triển khai, hợp đồng sẽ được thực hiện theo các điều khoản đã định sẵn Đồng thời, Smart Contract sẽ tự động kiểm tra và đảm bảo việc thực hiện các cam kết và điều khoản trong hợp đồng.

Trên mạng Ethereum, Smart Contract quản lý và thực thi các hoạt động trên Blockchain khi người dùng tương tác Các địa chỉ không phải Smart Contract được gọi là tài khoản độc lập (externally owned account, EOA), với Smart Contract được điều khiển bởi máy tính và EOA do người dùng kiểm soát.

Hình 2.6 - Cách Smart Contract hoạt động

2.2.1.3 Tính chất của Smart Contract

Smart Contract là ứng dụng khai thác tối đa tiềm năng của công nghệ Blockchain, mang lại nhiều lợi ích nổi bật Dưới đây là những lợi ích chính của Smart Contract.

Tự động hóa quy trình hợp đồng giúp bạn tạo ra hợp đồng một cách độc lập, không cần phụ thuộc vào môi giới hay luật sư Điều này không chỉ tiết kiệm thời gian mà còn giảm thiểu rủi ro từ bên thứ ba.

Tài liệu của bạn luôn được bảo đảm không bị thất lạc nhờ vào việc mã hóa trên một cuốn sổ cái chung Với công nghệ Blockchain, tất cả bạn bè của bạn đều có thể lưu trữ tài liệu này, đảm bảo tính an toàn và minh bạch.

An toàn: Blockchain sẽ đảm bản sự an toàn cho tài liệu của bạn Không một hacker nào có thể đe dọa đến chúng

Hợp đồng thông minh sử dụng ngôn ngữ lập trình để tự động hóa các điều khoản, giúp tiết kiệm thời gian và giảm thiểu những công việc không cần thiết.

Tiết kiệm: Hợp đồng thông minh tiết kiệm cho bạn hàng đống tiền nhờ xóa bỏ khâu trung gian

Chính xác: Các hợp đồng tự động không chỉ nhanh và rẻ hơn mà còn tránh được các lỗi thường thấy khi viết giấy tờ

Tính bảo mật của smart contract được đảm bảo nhờ vào việc mã hóa và phân phối đến các node, giúp ngăn chặn việc thất lạc hoặc sửa đổi mà không có sự cho phép của người dùng.

Tiêu chuẩn hóa: Hiện đã xuất hiện một loạt các hình thức

Smart Contract khác nhau Người dùng có thể chọn ra một kiểu và thay đổi sao cho phù hợp nhất với nhu cầu bản thân

Hình 2.7 - Kết hợp Smart Contract vào Blockchain

2.2.2 Áp dụng vào đề tài

Hợp đồng thông minh (Smart Contract) được sử dụng để phát triển hệ thống thương mại điện tử với ba chức năng chính: lưu trữ thông tin hàng hóa, tạo hợp đồng giao dịch hàng hóa và thực hiện giao dịch hàng hóa.

Nền tảng Ethereum

Ethereum là nền tảng điện toán phân tán, công khai và mã nguồn mở dựa trên công nghệ Blockchain, cho phép thực hiện các hợp đồng thông minh (Smart Contract) Nền tảng này sử dụng Blockchain để đồng bộ hóa và lưu giữ trạng thái hệ thống, cùng với đơn vị tiền tệ kỹ thuật số "Ether" để đo lường và chi trả chi phí tài nguyên thực thi Thêm vào đó, "gas" là cơ chế giá giao dịch nội bộ trong hệ thống.

18 trong mang lưới, được sử dụng để giảm thiểu các giao dịch rác (spam) và phần bổ nguồn lực trên mạng lưới

Nền tảng Ethereum hỗ trợ các nhà phát triển tạo ra ứng dụng phi tập trung (dApps) với các chức năng kinh tế tích hợp, giúp duy trì thời gian hoạt động liên tục Điều này không chỉ giảm thiểu hoặc loại bỏ sự kiểm duyệt và sự can thiệp của bên thứ ba mà còn giảm thiểu các rủi ro tiềm ẩn giữa các đối tác trên internet.

Ether (ETH) là loại tiền mã hóa được sử dụng trong các giao dịch trên mạng lưới Ethereum Hiện tại, Ether được liệt kê với mã ETH trên các sàn giao dịch.

2.3.1.2 Các thành phần trong Ethereum

Tài khoản trong Ethereum bao gồm nhiều đối tượng nhỏ (các tài khoản trực tuyến) có khả năng tương tác thông qua cơ chế truyền message Mỗi tài khoản sở hữu một định danh duy nhất (địa chỉ) dài 160 bit Ethereum phân chia thành hai loại tài khoản chính.

Tài khoản người dùng (Externally owned accounts) được quản lý bởi private key và không chứa mã nguồn, trong khi tài khoản hợp đồng chứa mã nguồn và được quản lý bởi mã nguồn trong hợp đồng Tài khoản hợp đồng chỉ có địa chỉ mà không có private key như tài khoản người dùng.

Trạng thái tài khoản bao gồm bốn thành phần thiết yếu: Nonce, Balance, StorageRoot và một thành phần nữa Nonce thể hiện số lượng giao dịch đã được gửi từ tài khoản người dùng, trong khi đối với tài khoản hợp đồng, nonce là số lượng hợp đồng đã được tạo Balance, hay số dư, là số lượng wei hiện có trong tài khoản (1 ether = 10^18 wei) Cuối cùng, StorageRoot là giá trị băm của phần gốc của cây lưu trữ.

Merkle Storage là cấu trúc lưu trữ chứa giá trị băm của các biến trong Storage của tài khoản, và mặc định là trống Trường CodeHash đại diện cho giá trị băm của mã hợp đồng dưới dạng bytecode trong EVM; đối với tài khoản người dùng, trường này sẽ là chuỗi trống.

Hình 2.9 - Tài khoản trong Ethereum

Trạng thái toàn cục của Ethereum bao gồm ánh xạ giữa các địa chỉ tài khoản và trạng thái tài khoản, được lưu trữ trong cấu trúc dữ liệu gọi là cây Merkle.

Cây Merkle là một cấu trúc dữ liệu nhị phân, bao gồm các nút khác nhau: các nút lá ở dưới cùng chứa dữ liệu cơ bản, trong khi các nút trung gian lưu trữ giá trị băm của hai nút con của chúng.

Một nút gốc duy nhất, cũng được hình thành từ hàm băm của hai nút con của nó, đại diện cho đỉnh của cây

Hình 2.10 - Cấu trúc cây Merkle

Phí giao dịch trong Ethereum, hay còn gọi là gas, là một khái niệm quan trọng mà người dùng cần nắm rõ Mọi hoạt động trên mạng Ethereum đều phải trả phí, và gas được sử dụng để đo lường các khoản phí này Người gửi giao dịch sẽ đặt Gas Limit và Gas Price, thể hiện số lượng gas tối đa mà họ sẵn sàng chi trả Ví dụ, nếu Gas Limit là 50.000 và giá gas là 20 gwei, người gửi sẽ chi tối đa 0,001 Ether cho giao dịch Nếu giao dịch tiêu tốn ít gas hơn Gas Limit, số gas dư sẽ được hoàn trả cho người dùng sau khi giao dịch kết thúc.

Hình 2.11 - Phí giao dịch trong Ethereum

Phí gas không chỉ được sử dụng để thanh toán cho các bước tính toán trong blockchain mà còn để chi trả cho việc lưu trữ dữ liệu.

Ethereum hoạt động như một máy trạng thái dựa trên các giao dịch, trong đó các giao dịch giữa các tài khoản thay đổi trạng thái toàn cục của mạng Có hai loại giao dịch chính: message calls và contract creator, dùng để tạo hợp đồng Ethereum mới Mỗi giao dịch bao gồm các thành phần quan trọng như nonce (số lượng giao dịch đã gửi), giá gas (gasPrice), giới hạn gas (gasLimit), địa chỉ tài khoản nhận (to), giá trị gửi (value), và các thông số v, r, s để xác thực chữ ký số Đối với giao dịch tạo hợp đồng, còn có thêm phần init, chứa mã EVM để khởi tạo tài khoản hợp đồng mới, và data, là dữ liệu đầu vào cho message calls, như các tham số khi gọi hàm trong hợp đồng thông minh.

Block: Tất cả các giao dịch được nhóm lại với nhau thành các block trên mạng Một blockchain chứa một chuỗi các block như vậy được nối với

Trong Ethereum, một block bao gồm các thành phần chính như block header, thông tin về tất cả giao dịch được gom trong block, và các commers, còn được gọi là uncle block.

2.3.2 Áp dụng vào đề tài

Ethereum là nền tảng Smart Contract lớn nhất và có IPO thành công nhất trong lịch sử Blockchain, do đó, tất cả các Smart Contract trong hệ thống thương mại điện tử sẽ được phát triển dựa trên nền tảng Ethereum và sử dụng tiền ảo Ether (ETH).

IPFS

IPFS (InterPlanetary File System) là một giao thức phân phối mã nguồn mở dựa trên nội dung và danh tính, hoạt động theo mô hình P2P (mạng ngang hàng) Giao thức này tận dụng khả năng tính toán băng thông của tất cả các máy tham gia, thay vì phụ thuộc vào một số máy chủ trung tâm như các giao thức truyền thống So với HTTP, IPFS không chỉ cải thiện tốc độ truyền tải mà còn giảm thiểu sự phụ thuộc vào các máy chủ, góp phần nâng cao cấu trúc của nền tảng Internet.

Tránh sự phụ thuộc vào máy chủ là điều cần thiết, bởi lỗi “404 Page Not Found” đã trở thành nỗi ác mộng của người dùng Internet khi nội dung tìm kiếm không tồn tại hoặc đã bị xóa Lỗi 404 xảy ra khi máy chủ không thể tìm thấy nội dung yêu cầu, thường gặp khi tìm kiếm thông tin cũ, khi ngoại tuyến, hoặc khi máy chủ gặp sự cố Đây là vấn đề lớn nhất của giao thức HTTP, mà nó không thể cải thiện Ngược lại, giao thức IPFS loại bỏ khái niệm máy chủ, tập trung vào nội dung tìm kiếm, giúp rút ngắn thời gian truy cập thông tin mà không lo gặp phải máy chủ kém chất lượng.

Mô hình Internet hiện nay không còn tập trung vào các máy chủ chính, mà thay vào đó, người dùng phải đối mặt với nhiều vấn đề dây chuyền Cuộc chiến giành người dùng giữa các gã khổng lồ công nghệ như Amazon, Google và Yahoo đã dẫn đến việc lộ bí mật chính phủ, sử dụng phần mềm gián điệp bởi các công ty, cũng như các cuộc tấn công DDoS từ tin tặc.

Mô hình website phân tán (decentralized) của IPFS giúp khắc phục các vấn đề như việc công khai chặn dịch vụ mà người dùng không muốn truy cập, ngăn cản dữ liệu khỏi nội bộ một quốc gia, và bảo vệ dữ liệu cá nhân khỏi việc bị sử dụng chống lại chính người dùng Với IPFS, chế độ quản lý phân cấp không còn tồn tại, mang lại sự tự do và an toàn cho người sử dụng.

Mô hình IPFS mang lại lợi ích giảm chi phí cho cả người cung cấp nội dung và người dùng Dữ liệu sử dụng trong giao thức HTTP thường rất tốn kém, với các nhà cung cấp tính phí và đưa ra thỏa thuận cho nội dung phổ biến Tuy nhiên, IPFS cho phép tải media trực tiếp về mạng nội bộ mà không phụ thuộc vào vị trí hay danh tính người dùng, từ đó loại bỏ sự cần thiết của nhiều trạm kết nối và máy chủ Internet, giúp giảm đáng kể chi phí tổng thể.

Hình 2.14 - Cách thức lưu trữ giữa HTTP và IPFS

2.4.2 Áp dụng vào đề tài

Hệ thống thương mại điện tử áp dụng IPFS mang lại nhiều lợi ích nổi bật, bao gồm việc lưu trữ tất cả media một cách hiệu quả và minh bạch Công nghệ lưu trữ phân tán này giúp tiết kiệm chi phí, tối ưu hóa dữ liệu về hàng hóa và đặc biệt là bảo vệ hệ thống khỏi sự can thiệp của hacker, đảm bảo tính toàn vẹn của thông tin.

Server NodeJS

Node.js là một JavaScript runtime được build dựa trên

Chrome’s V8 JavaScript engine Node.js sử dụng mô hình event- driven, non-blocking I/O khiến nó trở nên nhẹ và hiệu quả

NodeJS là một mã nguồn mở được phát triển dựa trên nền tảng Javascript V8 Engine, cho phép xây dựng các ứng dụng web như trang video, diễn đàn và mạng xã hội Với khả năng tương thích trên nhiều hệ điều hành, từ Windows đến Linux, NodeJS đã trở thành công cụ phổ biến được hàng ngàn lập trình viên trên toàn thế giới sử dụng.

NodeJS mang lại lợi thế lớn với sự cung cấp đa dạng các thư viện dưới dạng Javascript Module, giúp đơn giản hóa quy trình lập trình và tối ưu hóa thời gian phát triển.

V8 engine là một JavaScript engine mã nguồn mở, hoạt động trên các trình duyệt như Chrome, Opera và Vivaldi, với mục tiêu tối ưu hóa hiệu suất và chuyển đổi mã JavaScript thành mã máy Cần lưu ý rằng Node.js không chạy trên trình duyệt mà được phát triển dựa trên V8 engine, với những cải tiến như file system API, thư viện HTTP và các phương thức liên quan đến hệ điều hành Điều này có nghĩa là Node.js cho phép chạy mã JavaScript trên máy tính, thực chất là một môi trường thực thi JavaScript.

Hình 2.15 - Mô hình hệ thống Node.js

2.5.1.2 Các đặc tính của NodeJS

NodeJS hoạt động hoàn toàn không đồng bộ, với tất cả các API đều là none-blocking, dựa vào nền tảng của NodeJS Server để chờ nhận dữ liệu Cơ chế di chuyển máy chủ đến các API tiếp theo sau khi thực hiện các cuộc gọi, cùng với khả năng thông báo sự kiện của Node.js, giúp máy chủ nhận phản hồi từ các cuộc gọi API trước đó theo thời gian thực.

Chạy rất nhanh: NodeJ được xây dựng dựa vào nền tảng V8

Node.js có tốc độ thực thi nhanh nhờ vào Javascript Engine và sử dụng mô hình đơn luồng với cơ chế sự kiện lặp, cho phép máy chủ đáp ứng không ngăn chặn Điều này giúp Node.js có khả năng mở rộng cao hơn so với các máy chủ truyền thống như Apache HTTP Server, cho phép xử lý một lượng lớn yêu cầu cùng lúc.

Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng này chủ yếu là đầu ra dữ liệu

Có giấy phép: NodeJS đã được cấp giấy phép bởi MIT

2.5.2 Áp dụng vào đề tài

NodeJs được sử dụng trong hệ thống thương mại điện tử để tăng tốc độ tải dữ liệu, cải thiện trải nghiệm người dùng So với Blockchain, tốc độ tải dữ liệu của NodeJs nhanh hơn khoảng 3.67 lần Hơn nữa, server NodeJs cho phép phát triển các tính năng cần thiết cho thương mại điện tử mà Blockchain khó có thể đáp ứng.

Solidity

To write code for a Smart Contract using Solidity, a specialized programming language for Smart Contracts, you need to set up a development environment with essential tools Truffle serves as a framework for writing, testing, debugging, and deploying Smart Contracts, while Remix is a web-based IDE for Ethereum that allows you to write, test, and debug Smart Contracts efficiently.

NodeJS + Web3js để viết ứng dụng kết nối vào Ethereum tương tác với Smart Contract

2.6.2 Áp dụng vào đề tài

Xây dựng Smart Contract để lưu trữ thông tin và thực hiện giao dịch trên nền tảng ETH.

NodeMailer

NodeMailer là một module cho các ứng dụng Node.js để cho phép gửi email dễ dàng Dự án Nodemailer được khởi động từ năm 2010 khi không có

29 tùy chọn lành mạnh để gửi email, ngày nay nó là giải pháp mặc định mà hầu hết người dùng Node.js sử dụng

Các tính năng của Nodemailer:

- Chỉ có duy nhất một module, không có dependencies - code có thể dễ dàng được kiểm tra, đáng tin cậy

- Tập trung nhiều vào bảo mật

- Hỗ trợ Unicode để sử dụng bất kỳ ký tự nào, bao gồm cả biểu tượng cảm xúc

- Hỗ trợ Windows - bạn có thể cài đặt nó với npm trên Windows giống như bất kỳ module nào khác

- Sử dụng nội dung HTML, cũng như thay thế văn bản thuần túy

- Thêm tệp đính kèm vào tin nhắn

- Các tệp đính kèm hình ảnh được nhúng vào nội dung HTML

- Gửi email an toàn bằng TLS/STARTTLS

- Nhiều phương thức vận chuyển khác nhau ngoài hỗ trợ SMTP tích hợp

- Hỗ trợ Plugin tùy chỉnh để thao tác tin nhắn

- Sử dụng proxy cho kết nối SMTP

- Dùng ES6 - không còn bị rò rỉ bộ nhớ không chủ ý do var

Yêu cầu: Node.js v6.0.0 hoặc mới hơn

2.7.2 Áp dụng vào đề tài

Sử dụng NodeMailer để gửi email xác nhận tài khoản cho người dùng khi họ đăng ký tài khoản mới hoặc quên mật khẩu

Socket.IO

2.8.1 Giới thiệu Để xây dựng một ứng dụng realtime cần sử dụng SocketIO SocketIO sẽ giúp các bên ở những địa điểm khác nhau kết nối với nhau, truyền dữ liệu ngay lập tức thông qua server trung gian SocketIO có thể được sử dụng trong nhiều ứng dụng như chat, game online, cập nhật kết quả của một trận đấu đang xảy ra,

SocketIO không phải là ngôn ngữ lập trình mà chỉ là công cụ hỗ trợ xây dựng ứng dụng thời gian thực Do đó, để sử dụng SocketIO hiệu quả, cần kết hợp với một ngôn ngữ lập trình khác như PHP, ASP.NET hoặc NodeJS.

2.8.2 Áp dụng vào đề tài Ứng dụng tính chất realtime của SocketIO Ta sẽ xây dựng tính năng nhắn tin trực tuyến giữa những người dùng trong hệ thống với nhau

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Đặc tả yêu cầu

3.1.1 Mục đích xây dựng hệ thống

Hệ thống được xây dựng nhằm đảm bảo bảo mật thông tin người dùng, với dữ liệu cá nhân được lưu trữ an toàn trong cơ sở dữ liệu riêng, phục vụ cho việc xác thực và giao dịch hàng hóa Thông tin hàng hóa được ghi nhận trong Smart Contract, đảm bảo tính minh bạch và không thay đổi nhờ vào công nghệ Blockchain của nền tảng Ethereum Giao dịch giữa người mua và người bán diễn ra minh bạch, sử dụng tiền ảo ETH, cho phép người dùng kiểm tra lịch sử giao dịch một cách nhanh chóng Sau khi giao dịch hoàn tất, hợp đồng giao dịch sẽ được tạo ra và lưu trữ an toàn trong Smart Contract, đảm bảo tính toàn vẹn dữ liệu Cuối cùng, hàng hóa được kiểm duyệt bởi Admin sẽ được hiển thị trên hệ thống theo danh mục quy định, giúp người dùng dễ dàng tìm kiếm và lọc thông tin hàng hóa.

Hệ thống thương mại điện tử của chúng tôi cung cấp 32 tùy chọn hóa theo nhu cầu, bao gồm từ khóa tìm kiếm, loại hàng hóa và giá cả Tìm kiếm được tối ưu hóa nhờ sự kết hợp giữa nền tảng Ethereum và server NodeJs với MongoDB, đảm bảo nhanh chóng và phù hợp với tiêu chí người dùng Ngoài ra, mỗi sản phẩm đều có khu vực bình luận để người dùng trao đổi, đánh giá và nhận xét Hệ thống cũng cho phép nhắn tin trực tuyến, giúp người dùng dễ dàng liên lạc với nhau, bao gồm cả admin và người bán Cuối cùng, chúng tôi cung cấp quản lý hàng hóa đã giao dịch, hiển thị tất cả sản phẩm đã giao dịch thành công trên hệ thống.

Hàng hóa đã được giao sẽ đi kèm với hồ sơ mua bán cá nhân, được tạo riêng cho từng người dùng đã được định danh trên hệ thống Hồ sơ này đảm bảo tính minh bạch của dữ liệu và được xác minh một cách an toàn, giúp người dùng dễ dàng theo dõi và quản lý thông tin giao dịch của mình.

Hồ sơ mua bán cá nhân bao gồm các thông tin thiết yếu như: thông tin cá nhân của người dùng, danh sách hàng hóa đã mua (bao gồm hàng đang giao và đã giao), danh sách hàng hóa đã được duyệt, danh sách hàng hóa đang chờ duyệt, và danh sách hàng hóa bị từ chối.

Hệ thống cung cấp báo cáo thống kê chi tiết về tất cả hàng hóa và giao dịch, bao gồm số lượng hàng hóa hiện có, hàng hóa đang chờ duyệt, hàng hóa đã bị từ chối, và hàng hóa bị báo cáo Ngoài ra, hệ thống cũng theo dõi số lượng người dùng active và deactive, doanh thu từ giao dịch, cũng như số lượng hàng hóa đang và đã được giao Quản trị viên có khả năng quản lý người dùng, bao gồm việc nhanh chóng khóa tài khoản nếu phát hiện sai phạm, khiến người dùng không thể đăng nhập cho đến khi được kích hoạt lại Về quản lý hàng hóa, hệ thống cho phép theo dõi hàng hóa đang chờ xác nhận, hàng hóa bị từ chối, hàng hóa đã được xác nhận, hàng hóa đã xóa, và hàng hóa bị báo cáo từ người dùng, cùng với việc nhập kho và tình trạng đẩy tin của hàng hóa.

Người dùng có thể báo cáo sai phạm hàng hóa ngay cả khi chưa đăng nhập, giúp quản trị viên quản lý thông tin hàng hóa hiệu quả hơn Tại trang quản lý admin, quản trị viên nhận thông báo về các sai phạm và có thể nhanh chóng phản ứng bằng cách chặn hoặc xác nhận hàng hóa Ngoài ra, hệ thống còn cung cấp danh sách hàng hóa gợi ý dưới thông tin chi tiết, giúp người dùng dễ dàng tìm kiếm sản phẩm mong muốn.

3.1.2 Phạm vi hệ thống Ứng dụng được xây dựng trên nền tảng Blockchain của Ethereum sử dụng Smart Contract, NodeJs, Truffle, IPFS… Hệ thống được xây dựng là kết quả của việc khảo sát yêu cầu, tìm hiểu, nghiên cứu các tài liệu liên quan trong chương 2

Hình 3.1 - Mô hình kiến trúc hệ thống

Mô hình hệ thống được xây dựng theo sơ đồ trên:

Người dùng có thể truy cập vào hệ thống để thực hiện luân chuyển dữ liệu hàng hóa, bao gồm việc đăng ký tài khoản qua website hoặc mobile website để bán hàng hóa Quản trị viên cũng có thể truy cập để quản lý tất cả hàng hóa trong hệ thống Mỗi hàng hóa đều có transaction hash để theo dõi trên nền tảng Ethereum Dữ liệu này sẽ được xử lý và lưu trữ bởi back-end theo cấu trúc node của blockchain Ethereum, như đã trình bày trong phần lý thuyết.

Dữ liệu lưu trữ trên blockchain Ethereum sẽ được quản lý thông qua Smart Contract Kết hợp với các thuật toán đã đề cập, quá trình xử lý ở back-end sẽ cho phép người dùng hiển thị thông tin hàng hóa cùng với trạng thái tương ứng.

Thiết kế dữ liệu

3.2.1 Hệ thống bảng dữ liệu Smart Contract

STT Tên bảng Ý nghĩa, ghi chú

1 Product Lưu trữ thông tin hàng hóa trên hệ thống Smart

2 Category Lưu trữ thông tin danh mục hàng hóa trên hệ thống

3 PurchaseInfo Lưu trữ thông tin chi tiết giao dịch hàng hóa trên hệ thống Smart Contract

4 SellerPicks Lưu trữ thông tin đẩy tin hàng hóa trên hệ thống Smart

Bảng 3.1 - Danh sách các Model Smart Contract

3.2.1.1 Bảng “Product” thuộc Smart Contract

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 id uint Khóa chính Mã hàng hóa

2 name string Bắt buộc nhập Tên hàng hóa

3 categoryId uint Bắt buộc nhập Mã danh mục hàng hóa

4 price uint Bắt buộc nhập Giá hàng hóa

5 amount uint Bắt buộc nhập Số lượng hàng hóa

6 purchasedAmount uint Bắt buộc nhập Số lượng hàng hóa đã bán

7 imageHash string Bắt buộc nhập Mã hình ảnh của hàng hóa

8 userId string Bắt buộc nhập Mã người bán hàng hóa

9 sellerPicksEndTimestamp uint Tự phát sinh Thời gian hết hạn đẩy tin

10 isDeleted bool Tự phát sinh Có bị xóa hay không?

Bảng 3.2 - Mô tả bảng "Product" thuộc Smart Contract

3.2.1.2 Bảng “Category” thuộc Smart Contract

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 id uint Khóa chính Mã danh mục

2 name string Bắt buộc nhập Tên danh mục

3 isDeleted bool Tự phát sinh Có bị xóa hay không?

Bảng 3.3 - Mô tả bảng "Product" thuộc Smart Contract

3.2.1.3 Bảng “PurchasedInfo” thuộc Smart Contract

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 id uint Khóa chính Mã chi tiết giao dịch

2 detailsCount uint Tự phát sinh Số loại hàng hóa giao dịch

Bắt buộc nhập Mã hàng hóa giao dịch

Bắt buộc nhập Số lượng hàng hóa giao dịch

Bắt buộc nhập Đơn giá hàng hóa giao dịch

6 buyerId string Bắt buộc nhập Mã người mua

7 shipTimestamp uint Tự phát sinh Thời điểm giao dịch

8 deliverTimestamp uint Tự phát sinh Thời điểm giao hàng

9 saleId string Bắt buộc nhập Mã khuyến mãi

10 phoneNumber string Bắt buộc nhập Số điện thoại người mua

11 userAddress string Bắt buộc nhập Địa chỉ người mua

12 pin string Bắt buộc nhập Mã giao hàng

13 status string Tự phát sinh Trạng thái giao dịch Bảng 3.4 - Mô tả bảng "PurchasedInfo" thuộc Smart Contract

3.2.1.4 Bảng “SellerPicks” thuộc Smart Contract

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi

1 id uint Khóa chính Mã đẩy tin

2 totalPrice string Bắt buộc nhập Tổng giá đẩy tin

3 productId uint Bắt buộc nhập Mã hàng hóa đẩy tin

4 quantity uint Bắt buộc nhập Số lần đẩy tin

Bảng 3.5 - Mô tả bảng "SellerPicks" thuộc Smart Contract

3.2.2 Hệ thống bảng dữ liệu server NodeJs

STT Tên bảng Ý nghĩa, ghi chú

1 Account Lưu trữ thông tin người dùng

2 Cart Lưu trữ thông tin giỏ hàng của từng người dùng

3 Chat Lưu trữ thông tin nhắn tin giữa người dùng

4 Chat-notify Lưu trữ thông tin thông báo tin nhắn của người dùng

5 Comment Lưu trữ thông tin bình luận, đánh giá hàng hóa

Lưu trữ thông tin chi tiết nhập kho hàng hóa

7 Product-imports Lưu trữ thông tin nhập kho hàng hóa

8 Product-license Lưu trữ thông tin giấy phép được hiển thị trên server

9 Product-quantity Lưu trữ thông tin số lượng hàng hóa

10 Rating Lưu trữ thông tin đánh giá hàng hóa

11 Report Lưu trữ thông tin báo cáo hàng hóa

12 Sale Lưu trữ thông tin khuyến mãi

13 Shipper Lưu trữ thông tin người giao hàng

14 Site-settings Lưu trữ thông tin thông số hệ thống

15 Wish-list Lưu trữ thông tin danh sách hàng hóa mong muốn

Bảng 3.6 - Danh sách các Model Server NodeJs

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi

1 _id String Khóa chính Mã người dùng

2 username String Khóa chính Tên đăng nhập

3 password String Bắt buộc nhập Mật khẩu

4 firstName String Bắt buộc nhập Tên người dùng

5 lastName String Bắt buộc nhập Họ người dùng

6 phoneNumber String Bắt buộc nhập Số điện thoại

7 address String Bắt buộc nhập Địa chỉ

8 email String Bắt buộc nhập Địa chỉ email

9 owner String Bắt buộc nhập Địa chỉ ví

10 avatar String Bắt buộc nhập Ảnh đại diện

11 role String Tự phát sinh Vai trò tài khoản

12 activated Boolean Tự phát sinh Tài khoản đã kích hoạt chưa?

13 locked Boolean Tự phát sinh Tài khoản có bị khóa không?

14 verification String Tự phát sinh Mã kích hoạt tài khoản Bảng 3.7 - Mô tả bảng "Account" thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã giỏ hàng

2 userId String Bắt buộc nhập Id người dùng

3 productId String Bắt buộc nhập Id hàng hóa

4 amount Number Bắt buộc nhập Số lượng

Bảng 3.8 - Mô tả bảng "Cart" thuộc NodeJS

3.2.2.3 Bảng “Chat-notify” thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã thông báo

2 fromUserId String Tự phát sinh Id người gửi

3 toUserId String Tự phát sinh Id người nhận

4 new Boolean Tự phát sinh Đã xem tin nhắn chưa?

Bảng 3.9 - Mô tả bảng "Chat-notify" thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã tin nhắn

2 fromUserId String Bắt buộc nhập Id người gửi

3 toUserId String Bắt buộc nhập Id người nhận

4 content String Bắt buộc nhập Nội dung tin nhắn

5 sentDate Date Tự phát sinh Ngày gửi

Bảng 3.10 - Mô tả bảng "Chat " thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã bình luận

2 userId String Bắt buộc nhập Mã người bình luận

3 productId String Bắt buộc nhập Mã hàng hóa được bình luận

4 content String Bắt buộc nhập Nội dung bình luận

5 time Date Tự phát sinh Thời gian bình

41 luận Bảng 3.11 - Mô tả bảng "Comment " thuộc NodeJS

3.2.2.6 Bảng “Product-import-info” thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã chi tiết nhập kho

2 importsId String Bắt buộc nhập Mã nhập kho

3 productId String Bắt buộc nhập Mã hàng hóa nhập kho

4 quantity Number Bắt buộc nhập Số lượng hàng

Bảng 3.12 - Mô tả bảng "Product-import-info" thuộc NodeJS

3.2.2.7 Bảng “Product-imports” thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã nhập kho

2 importedDate Date Bắt buộc nhập Ngày nhập

3 importedBy String Tự phát sinh Người nhập

4 status String Tự phát sinh Tình trạng

Bảng 3.13 - Mô tả bảng "Product-imports " thuộc NodeJS

3.2.2.8 Bảng “Product-license” thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã duyệt

2 productId String Bắt buộc nhập Mã hàng hóa

3 accepted Boolean Bắt buộc nhập Có được chấp nhận hay không? Bảng 3.14 - Mô tả bảng "Product-license" thuộc NodeJS

3.2.2.9 Bảng “Product-quantity” thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi

1 _id String Khóa chính Mã số lượng

2 productId String Bắt buộc nhập Mã hàng hóa

3 quantity Number Tự phát sinh Tổng số lượng

4 purchasedQuantity Number Tự phát sinh Số lượng đã bán

Bảng 3.15 - Mô tả bảng "Product-quantity" thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã đánh giá

2 userId String Tự phát sinh Mã người dùng

3 productId String Tự phát sinh Mã hàng hóa

4 stars Number Bắt buộc nhập Số sao đánh giá

Bảng 3.16 - Mô tả bảng "Rating" thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã báo cáo

2 userId String Bắt buộc nhập Mã người dùng báo cáo

3 productId String Bắt buộc nhập Mã hàng hóa bị báo cáo

4 time Date Tự phát sinh Thời gian báo cáo

5 new Boolean Tự phát sinh Có phải báo cáo mới không? Bảng 3.17 - Mô tả bảng "Report" thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã khuyến mãi

2 saleName String Bắt buộc nhập Tên khuyến mãi

3 saleCode String Bắt buộc nhập Code khuyến mãi

4 saleOff Number Bắt buộc nhập Phần trăm giảm

5 quantity Number Bắt buộc nhập Tổng số lượng

6 usedQuantity Number Tự phát sinh Số lượng đã dùng

7 startDate Date Bắt buộc nhập Ngày bắt đầu

8 endDate Date Bắt buộc nhập Ngày kết thúc

Bảng 3.18 - Mô tả bảng "Sale" thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã thông tin giao

2 purchaseId String Bắt buộc nhập Mã giao dịch

3 userId String Bắt buộc nhập Mã người giao

Bảng 3.19 - Mô tả bảng "Shipper" thuộc NodeJS

3.2.2.14 Bảng “Site-settings” thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 commission Number Bắt buộc nhập Phần trăm hoa hồng

2 sellerPicks Number Bắt buộc nhập Số tiền đẩy tin 1 ngày

3 siteAddress String Bắt buộc nhập Địa chỉ ví của trang

Bảng 3.20 - Mô tả bảng "Site-settings" thuộc NodeJS

3.2.2.15 Bảng “Wish-list” thuộc NodeJS

STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ý nghĩa, ghi chú

1 _id String Khóa chính Mã mong muốn

2 userId String Bắt buộc nhập Mã người dùng

3 productId String Bắt buộc nhập Mã hàng hóa

Bảng 3.21 - Mô tả bảng "Wish-list" thuộc NodeJS

HIỆN THỰC HỆ THỐNG

Sơ đồ Usecase

Các đối tượng giao tiếp với hệ thống bao gồm:

Người dùng là đối tượng có nhu cầu giao dịch các loại hàng hóa và sử dụng các tính năng của hệ thống, bao gồm tra cứu hàng hóa, thực hiện giao dịch, bình luận, nhắn tin và báo cáo sai phạm liên quan đến hàng hóa.

2 Người bán hàng Là những người dùng có nhu cầu đăng bán và giao hàng hóa cho người dùng khác

Admin là những người dùng có quyền quản lý hệ thống, bao gồm việc quản lý và cập nhật thông tin như danh sách hàng hóa, kiểm duyệt hàng hóa, xác nhận báo cáo sai phạm, cùng với việc quản lý danh sách người dùng và danh sách giao dịch.

Bảng 4.1 Danh sách actor của hệ thốnga

4.1.2 Sơ đồ Usecase tổng quát

4.1.2.1 Sơ đồ Usecase người dùng

46 Hình 4.1 - Sơ đồ use-case người dùng của hệ thống

4.1.2.2 Sơ đồ Usecase người bán hàng

Hình 4.2 - Sơ đồ use-case người bán hàng của hệ thống

Hình 4.3 - Sơ đồ use-case admin của hệ thống

4.1.2.4 Bảng danh sách các Usecase của hệ thống

1 Đăng ký Người dùng truy cập vào trang web, điền đầy đủ thông tin cần thiết và đăng ký tài khoản vào hệ thống

Sau khi đăng ký thành công người dùng sẽ nhận được mail chứa mã kích hoạt tài khoản

Sau khi đăng ký, người dùng cần kích hoạt tài khoản bằng cách nhận mã kích hoạt qua email đã đăng ký và xác nhận với hệ thống để có thể sử dụng tài khoản.

3 Đăng nhập Người dùng nhập tên đăng nhập và mật khẩu vào hệ thống để đăng nhập

4 Đăng xuất Người dùng đăng xuất khỏi tài khoản hiện tại

Cập nhật tài khoản của bạn bằng cách chỉnh sửa thông tin quan trọng như họ tên, số điện thoại, địa chỉ, mật khẩu, địa chỉ ví, email và ảnh đại diện để đảm bảo thông tin luôn chính xác và bảo mật.

Để đăng bán hàng hóa, người dùng cần đăng nhập vào tài khoản đã được cấp quyền seller, sau đó nhập đầy đủ thông tin sản phẩm và xác nhận việc đăng bán thông qua Metamask, đảm bảo địa chỉ ví đúng với địa chỉ đã đăng ký.

7 Nhắn tin Hiển thị thông tin liên lạc giữa người dùng với nhau, thông báo tin nhắn mới và cho phép người dùng nhắn tin

Sau khi đăng nhập vào trang cá nhân, người dùng có thể dễ dàng quản lý tất cả hàng hóa của mình, bao gồm hàng hóa đã mua Đối với tài khoản seller, người dùng còn có thể theo dõi hàng hóa đã bán, hàng hóa đang chờ duyệt, hàng hóa đã được duyệt và hàng hóa bị từ chối.

Sau khi người dùng đăng nhập vào tài khoản được cấp quyền seller, họ có thể cập nhật thông tin hàng hóa như tên, danh mục, số lượng, giá cả và hình ảnh.

10 chi tiết hàng hóa cung cấp thông tin đầy đủ về tên, giá cả, hình ảnh, và bình luận liên quan đến sản phẩm Người dùng có thể dễ dàng bình luận, báo cáo, cũng như thêm hàng hóa vào giỏ hàng hoặc danh sách mong muốn.

11 Đẩy tin hàng hóa Người bán hoặc quản trị viên có thể trả một số phí nhất định để đẩy tin sản phẩm trong một hoặc nhiều ngày

12 Đánh giá hàng hóa Người dùng đánh giá sản phẩm từ 1 đến 5 sao

13 Bình luận hàng hóa Người dùng đăng nhập và bình luận hàng hóa tương ứng với nội dung phù hợp

14 Báo cáo hàng hóa Người dùng báo cáo hàng hóa sai phạm

15 Thêm vào giỏ hàng Người dùng thêm mặt hàng cần mua cụ thể vào giỏ hàng để thanh toán

16 Thêm vào danh sách mong muốn

Người dùng thêm mặt hàng vào danh sách mong muốn nhằm mục đích cân nhắc mua hàng sau

17 Giao dịch hàng hóa Người dùng sau khi đăng nhập truy cập hàng hóa trong giỏ hàng và mua hàng

18 Tìm kiếm/lọc hàng hóa Tìm kiếm/lọc hàng hóa theo những thông tin như từ khóa tìm kiếm, danh mục, giá cả…

19 Cài đặt thông số hệ thống Quản lý tất cả thông số của hệ thống như phần trăm hoa hồng, phí đẩy tin, địa chỉ ví của trang…

Quản lý hàng hóa là một quy trình quan trọng bao gồm các hoạt động như thêm và xóa loại hàng hóa, thêm hàng hóa mới, duyệt và nhập kho hàng hóa, cũng như xác nhận báo cáo liên quan đến hàng hóa Việc quản lý hiệu quả giúp tối ưu hóa quy trình lưu trữ và phân phối hàng hóa, đồng thời đảm bảo thông tin luôn được cập nhật và chính xác.

21 Quản lý người dùng Quản lý tất cả người dùng như quản lý admin, quản lý seller, quản lý member, cập nhật thông tin người dùng, chặn người dùng…

Quản lý khuyến mãi cho phép quản trị viên dễ dàng quản lý tất cả các chương trình khuyến mãi, bao gồm việc thêm mới, điều chỉnh thời gian hiệu lực và tăng cường số lượng khuyến mãi.

23 Quản lý giao dịch Quản lý tất cả giao dịch danh sách hàng hóa đang giao, danh sách hàng hóa đã giao, xác nhận giao hàng…

Báo cáo và thống kê cung cấp thông tin quan trọng về số lượng hàng hóa hiện có, số lượng hàng hóa đã bán, và tổng Ether đã giao dịch trên hệ thống Những dữ liệu này giúp người dùng nắm bắt tình hình hoạt động và hiệu quả kinh doanh một cách rõ ràng.

Bảng 4.2 - Danh sách các use-case của hệ thống

Một số sơ đồ tuần tự (Sequence Diagram) và sơ đồ lớp (Class Diagram) chính 52 1 Đăng ký

Hình 4.4 - Sơ đồ tuần tự chức năng đăng ký

Hình 4.5 - Sơ đồ lớp chức năng đăng ký

Mục đích của hệ thống là hỗ trợ người dùng trong quá trình giao tiếp và thao tác Để đảm bảo thông tin được lưu trữ chính xác trong cơ sở dữ liệu, người dùng cần nhập đầy đủ thông tin trước khi thực hiện lệnh lưu.

Bước 1: Đăng nhập vào ví điện tử metamask

Bước 2: Khởi tạo đăng ký

Bước 3: Nhập đầy đủ thông tin cần thiết

Bước 4: Thông tin người dùng sẽ được gửi lên hệ thống kiểm tra

Hệ thống sẽ tiến hành kiểm tra và lưu trữ thông tin của người dùng, đồng thời trả về thông tin tương ứng với đăng ký mới được tạo.

Bước 6: Thông tin người dùng đã được lưu trên hệ thống, hệ thống sẽ gửi Email có chứa mã kích hoạt và thông báo điều đó với người dùng

Bước 7: Người dùng check Email lấy mã kích hoạt và nhập vào trang kích hoạt tài khoản

Bước 8: Sau khi nhập đúng mã kích hoạt, tài khoản sẽ được kích hoạt và chuyển đến trang Login

Hình 4.6 - Sơ đồ tuần tự chức năng đăng nhập

Hình 4.7 - Sơ đồ lớp chức năng đăng nhập

Mục đích của hệ thống là hỗ trợ người dùng trong quá trình giao tiếp và thao tác Để tham gia vào hệ thống, người dùng cần nhập chính xác thông tin đăng nhập.

Bước 1: Vào trang đăng nhập

Bước 2: Nhập thông tin đăng nhập

Bước 3: Thông tin đăng nhập sẽ được gửi lên hệ thống kiểm tra

Bước 4: Tại hệ thống sẽ kiểm tra và trả về thông tin người dùng tương ứng nếu hợp lệ

Bước 5: Hệ thống xác nhận thông tin đăng nhập hợp lệ và người dùng sẽ tham gia vào hệ thống với tài khoản đó

Hình 4.8 - Sơ đồ tuần tự chức năng cập nhật tài khoản

Hình 4.9 - Sơ đồ lớp chức năng cập nhật tài khoản

Mục đích: Giúp người dùng cập nhật thông tin cá nhân

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Vào trang cá nhân

Bước 3: Chọn chỉnh sửa thông tin

Bước 4: Nhập thông tin cần chỉnh sửa

Bước 5: Thông tin tài khoản sẽ được gửi lên hệ thống để kiểm tra

Bước 6: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin tài khoản

Hình 4.10 - Sơ đồ tuần tự chức năng tạo sản phẩm

Hình 4.11 - Sơ đồ lớp chức năng tạo sản phẩm

Mục đích của hệ thống là hỗ trợ người bán hàng trong việc tạo sản phẩm với đầy đủ thông tin cần thiết, từ đó sản phẩm sẽ được đăng lên sàn giao dịch để tiếp cận người có nhu cầu Lưu ý rằng chỉ những người dùng có quyền từ người bán trở lên mới có thể tạo sản phẩm sau khi đăng nhập Sau khi sản phẩm được tạo, cần có thời gian để admin xác nhận; chỉ khi được xác nhận thành công, sản phẩm mới được công khai trên sàn giao dịch của hệ thống.

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Khởi tạo sản phẩm

Bước 3: Nhập thông tin cần thiết, hình ảnh, loại sản phẩm… Bước 4: Thông tin sản phẩm sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Hệ thống sẽ tiến hành kiểm tra và lưu trữ thông tin sản phẩm, đồng thời trả về mã sản phẩm duy nhất để phân biệt với các sản phẩm khác.

Bước 6: Mã sản phẩm đã được lưu trên hệ thống và trả về cho người dùng và admin

Bước 7: Admin kiểm duyệt sản phẩm và thực hiện thao tác như xác nhận đăng sản phẩm, từ chối đăng sản phẩm

Hình 4.12 - Sơ đồ tuần tự chức năng nhắn tin

Hình 4.13 - Sơ đồ lớp chức năng nhắn tin

Mục đích của chức năng nhắn tin là cho phép người dùng giao tiếp với nhau trên hệ thống, nhằm giải đáp thắc mắc liên quan đến sản phẩm, hệ thống hoặc bất kỳ vấn đề nào liên quan đến website.

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Vào trang nhắn tin

Bước 3: Chọn người dùng cần nhắn

Bước 3: Nhập nội dung tin nhắn và gửi

Bước 4: Thông tin tin nhắn sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin tin nhắn, thông báo cho người nhận và trả về thông báo cho người nhắn

Hình 4.14 - Sơ đồ tuần tự chức năng đánh giá sản phẩm

Hình 4.15 - Sơ đồ lớp chức năng đánh giá sản phẩm

Mục đích: Giúp người dùng đánh giá về sản phẩm trong hệ thống

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Truy cập trang chi tiết sản phẩm cần báo cáo

Bước 3: Nhấp vào nút đánh giá

Bước 4: Thông tin đánh giá sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa thêm.

Hình 4.16 - Sơ đồ tuần tự chức năng bình luận sản phẩm

Mục đích: Giúp người dùng đánh giá về sản phẩm trong hệ thống

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Truy cập trang chi tiết sản phẩm cần đánh giá

Bước 3: Chọn số sao đánh giá

Bước 4: Thông tin đánh giá sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa thêm

Hình 4.17 - Sơ đồ lớp chức năng bình luận sản phẩm

Mục đích: Giúp người dùng bình luận về sản phẩm trong hệ thống

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Truy cập trang chi tiết sản phẩm cần bình luận

Bước 3: Nhập nội dung bình luận

Bước 4: Thông tin bình luận sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa thêm

Hình 4.18 - Sơ đồ tuần tự chức năng báo cáo sản phẩm

Hình 4.19 - Sơ đồ lớp chức năng báo cáo sản phẩm

Mục đích: Giúp người dùng báo cáo về sản phẩm sai phạm trong hệ thống

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Truy cập trang chi tiết sản phẩm cần báo cáo

Bước 3: Nhấp vào nút báo cáo

Bước 4: Thông tin báo cáo sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa thêm

Hình 4.20 - Sơ đồ tuần tự chức năng thêm vào giỏ hàng

Hình 4.21 - Sơ đồ lớp chức năng thêm vào giỏ hàng

Mục đích: Giúp người dùng thêm sản phẩm vào giỏ hàng nhằm mục đích mua sản phẩm đó

Bước 1: Đăng nhập tài khoản người dùng

Bước 2: Truy cập trang chi tiết sản phẩm cần thêm

Bước 3: Chọn số lượng và nhấp vào nút thêm vào giỏ hàng Bước 4: Thông tin giỏ hàng sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa thêm

Hình 4.22 - Sơ đồ tuần tự chức năng giao dịch hàng hóa

Hình 4.23 - Sơ đồ lớp chức năng giao dịch hàng hóa

Mục đích của giao dịch sản phẩm là thực hiện tự động, và sau khi giao dịch thành công, sản phẩm sẽ được hiển thị trong danh sách sản phẩm đã giao dịch trên trang quản lý cá nhân, trang quản lý admin, cũng như trang truy xuất giao dịch của hệ thống.

Bước 1: Đăng nhập vào hệ thống

Bước 2: Truy cập trang giỏ hàng

Bước 3: Nhập mã khuyến mãi (nếu có) và nhấn nút mua sản phẩm

Bước 4: Xác nhận phí giao dịch và tạo hợp đồng Smart Contract với Metamaks

Bước 5: Hiển thị danh sách đơn hàng đã giao dịch tại trang quản lý admin

Bước 6: Hiển thị danh sách sản phẩm đã giao dịch tại trang thông tin cá nhân

Bước 7: Hiển thị danh sách sản phẩm đã giao dịch tại trang truy xuất giao dịch hệ thống

4.2.11 Tìm kiếm/lọc sản phẩm

Hình 4.24 - Sơ đồ tuần tự chức năng tìm kiếm/lọc sản phẩm

Hình 4.25 - Sơ đồ lớp chức năng tìm kiếm/lọc sản phẩm

Mục đích: Tìm kiếm sản phẩm theo tiêu chí nào đó như tên sản phẩm, loại sản phẩm, mức giá sản phẩm

Bước 1: Truy cập trang bất kỳ của hệ thống Bước 2: Nhập tên vào thanh tìm kiếm hoặc chọn loại sản phẩm hoặc chọn mức giá

Bước 3: Hiển thị danh sách sản phẩm theo tiêu chí

4.2.12 Cài đặt thông số hệ thống

Hình 4.26 - Sơ đồ tuần tự chức năng cài đặt thông số hệ thống

Hình 4.27 - Sơ đồ lớp chức năng cài đặt thông số hệ thống

Mục đích: Cài đặt thông số nhằm tùy chỉnh hệ thống theo mục đích của quản trị viên mà không cần can thiệp vào mã nguồn

Bước 1: Đăng nhập tài khoản admin

Bước 2: Truy cập trang cài đặt thông số hệ thống

Bước 3: Nhập thông số cần thay đổi

Bước 4: Thông tin thông số sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa thêm

4.2.13.1 Sơ đồ tuần tự tổng quát

Hình 4.28 - Sơ đồ tuần tự tổng quát chức năng quản lý sản phẩm

Mục đích của hệ thống là hỗ trợ admin trong việc quản lý sản phẩm, cho phép thực hiện các chức năng như xác nhận sản phẩm, cập nhật thông tin sản phẩm và nhập kho sản phẩm một cách hiệu quả.

Bước 1: Đăng nhập tài khoản admin

Bước 2: Truy cập trang quản lý sản phẩm

Bước 3: Chọn tính năng cần thực hiện vào sản phẩm

Bước 4: Thông tin sản phẩm sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa cập nhật

4.2.13.2 Chức năng cập nhật sản phẩm

Hình 4.29 - Sơ đồ tuần tự chức năng cập nhật sản phẩm

Hình 4.30 - Sơ đồ lớp chức năng cập nhật sản phẩm

4.2.13.3 Chức năng xác nhận sản phẩm

Hình 4.31 - Sơ đồ tuần tự chức năng xác nhận sản phẩm

Hình 4.32 - Sơ đồ lớp chức năng xác nhận sản phẩm

4.2.13.4 Chức năng nhập kho sản phẩm

Hình 4.33 - Sơ đồ tuần tự chức năng nhập kho sản phẩm

Hình 4.34 - Sơ đồ lớp chức năng nhập kho sản phẩm

4.2.13.5 Chức năng đẩy tin sản phẩm

Hình 4.35 - Sơ đồ tuần tự chức năng đẩy tin sản phẩm

Hình 4.36 - Sơ đồ lớp chức năng đẩy tin sản phẩm

4.2.13.6 Chức năng xác nhận báo cáo sản phẩm

Hình 4.37 - Sơ đồ tuần tự chức năng xác nhận báo cáo sản phẩm

Hình 4.38 - Sơ đồ lớp chức năng xác nhận báo cáo sản phẩm

4.2.14.1 Sơ đồ tuần tự tổng quát

Hình 4.39 - Sơ đồ tuần tự tổng quát chức năng quản lý người dùng

Mục đích của hệ thống là hỗ trợ admin trong việc quản lý người dùng, cho phép admin thực hiện các chức năng như cập nhật thông tin tài khoản và chặn người dùng vi phạm.

Bước 1: Đăng nhập tài khoản admin

Bước 2: Truy cập trang quản lý người dùng

Bước 3: Chọn cập nhật thông tin người dùng hoặc chặn người dùng

Bước 4: Thông tin người dùng sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa cập nhật

4.2.14.2 Chức năng cập nhật thông tin người dùng

Hình 4.40 - Sơ đồ tuần tự chức năng chỉnh sửa thông tin người dùng

Hình 4.41 - Sơ đồ lớp chức năng chỉnh sửa thông tin người dùng

4.2.14.3 Chức năng chặn người dùng

Hình 4.42 - Sơ đồ tuần tự chức năng chặn người dùng

Hình 4.43 - Sơ đồ lớp chức năng chặn người dùng

4.2.15.1 Sơ đồ tuần tự tổng quát

Hình 4.44 - Sơ đồ tuần tự tổng quát chức năng quản lý khuyến mãi

Mục đích: Giúp admin quản lý khuyến mãi trong hệ thống, admin có thể thực hiện các chức năng vào khuyến mãi như thêm, cập nhật…

Bước 1: Đăng nhập tài khoản admin

Bước 2: Truy cập trang quản lý khuyến mãi

Bước 3: Chọn thêm hoặc cập nhật khuyến mãi

Bước 4: Thông tin khuyến mãi sẽ được gửi lên hệ thống để kiểm tra

Bước 5: Tại hệ thống sẽ kiểm tra và bắt đầu lưu lại thông tin vừa cập nhật

4.2.15.2 Chức năng thêm khuyến mãi

Hình 4.45 - Sơ đồ tuần tự chức năng thêm khuyến mãi

Hình 4.46 - Sơ đồ lớp chức năng thêm khuyến mãi

4.2.15.3 Chức năng cập nhật khuyến mãi

Hình 4.47 - Sơ đồ tuần tự chức năng cập nhật khuyến mãi

Hình 4.48 - Sơ đồ lớp chức năng cập nhật khuyến mãi

4.2.16.1 Sơ đồ tuần tự tổng quát

Hình 4.49 - Sơ đồ tuần tự chức năng quản lý giao dịch

Mục đích của hệ thống là hỗ trợ admin trong việc quản lý giao dịch, cho phép theo dõi các giao dịch đang diễn ra và đã hoàn tất Admin có khả năng cập nhật thông tin người giao và xác nhận quá trình giao hàng một cách hiệu quả.

Bước 1: Đăng nhập tài khoản admin

Bước 2: Truy cập trang quản lý giao dịch

Bước 3: Chọn loại giao dịch cần xem

96 Bước 4: Hiển thị thông tin giao dịch tương ứng.

4.2.16.2 Chức năng cập nhật người giao

Hình 4.50 - Sơ đồ tuần tự chức năng cập nhật người giao

Hình 4.51 - Sơ đồ lớp chức năng cập nhật người giao

4.2.16.3 Chức năng xác nhận giao hàng

Hình 4.52 - Sơ đồ tuần tự chức năng xác nhận giao hàng

100 Hình 4.53 - Sơ đồ lớp chức năng xác nhận giao hàng

Thiết kế giao diện

Hình 4.54 - Màn hình Trang chủ

4.3.2 Màn hình trang Đăng nhập/Đăng ký

Hình 4.55 - Màn hình trang Đăng nhập/Đăng ký

4.3.3 Màn hình kích hoạt tài khoản

Hình 4.56 - Màn hình trang Kích hoạt tài khoản

4.3.4 Màn hình Quên mật khẩu

Hình 4.57 - Màn hình trang Nhập Email

Hình 4.58 - Màn hình trang Nhập mã xác nhận

Hình 4.59 - Màn hình trang Đổi mật khẩu

4.3.5 Màn hình trang Liên hệ

Hình 4.60 - Màn hình trang Liên hệ

4.3.6 Màn hình trang Thông tin tài khoản

Hình 4.61 - Màn hình trang Thông tin tài khoản - Lịch sử mua

Hình 4.62 - Màn hình trang Thông tin tài khoản – Đơn hàng

Hình 4.63 - Màn hình trang Thông tin tài khoản – Sản phẩm đã duyệt

Hình 4.64 - Màn hình trang Thông tin tài khoản – Sản phẩm chờ duyệt

4.3.6.5 Sản phẩm bị từ chối

Hình 4.65 - Màn hình trang Thông tin tài khoản – Sản phẩm bị từ chối

Hình 4.66 - Màn hình trang Thông tin tài khoản – Cập nhật thông tin

4.3.7 Màn hình trang nhắn tin

Hình 4.67 - Màn hình trang Nhắn tin

4.3.8 Màn hình trang thêm sản phẩm

Hình 4.68 - Màn hình trang Thêm sản phẩm

4.3.9 Màn hình trang Chi tiết sản phẩm

Hình 4.69 - Màn hình trang Chi tiết sản phẩm

4.3.10 Màn hình trang Cập nhật thông tin sản phẩm

Hình 4.70 - Màn hình trang Cập nhật thông tin sản phẩm

4.3.11 Màn hình trang Danh sách mong muốn

Hình 4.71 - Màn hình trang Danh sách mong muốn

4.3.12 Màn hình trang Giỏ hàng

Hình 4.72 - Màn hình trang Giỏ hàng

4.3.13 Màn hình trang Tìm kiếm sản phẩm

Hình 4.73 - Màn hình trang Tìm kiếm sản phẩm - Theo tên

Hình 4.74 - Màn hình trang Tìm kiếm sản phẩm - Theo loại

4.3.13.3 Tìm kiếm theo mức giá

Hình 4.75 - Màn hình trang Tìm kiếm sản phẩm - Theo mức giá

4.3.14 Màn hình trang Báo cáo thống kê

Hình 4.76 - Màn hình trang Báo cáo thống kê

4.3.15 Màn hình trang Cài đặt thông số hệ thống

Hình 4.77 - Màn hình trang Cài đặt thông số hệ thống

4.3.16 Màn hình trang Quản lý hàng hóa

Hình 4.78 - Màn hình trang Quản lý hàng hóa - Tất cả

Hình 4.79 - Màn hình trang Quản lý hàng hóa – Loại hàng hóa

Hình 4.80 - Màn hình trang Quản lý hàng hóa – Kiểm duyệt hàng hóa

Hình 4.81 - Màn hình trang Quản lý hàng hóa – Nhập kho hàng hóa

Hình 4.82 - Màn hình trang Quản lý hàng hóa – Chi tiết nhập kho

Hình 4.83 - Màn hình trang Quản lý hàng hóa – Đẩy tin

4.3.16.7 Hàng hóa bị báo cáo

Hình 4.84 - Màn hình trang Quản lý hàng hóa – Hàng hóa bị báo cáo

4.3.16.8 Hàng hóa bị từ chối

Hình 4.85 - Màn hình trang Quản lý hàng hóa – Hàng hóa bị từ chối

4.3.17 Màn hình trang Quản lý tài khoản

Hình 4.86 - Màn hình trang Quản lý tài khoản - Tất cả

Hình 4.87 - Màn hình trang Quản lý tài khoản – Tài khoản bị khóa

4.3.18 Màn hình trang Quản lý khuyến mãi

Hình 4.88 - Màn hình trang Quản lý khuyến mãi – Khả dụng

Hình 4.89 - Màn hình trang Quản lý khuyến mãi – Chưa khả dụng

4.3.19 Màn hình trang Quản lý đơn hàng

Hình 4.90 - Màn hình trang Quản lý đơn hàng – Đang giao

Hình 4.91 - Màn hình trang Quản lý đơn hàng – Đã giao

YÊU CẦU HỆ THỐNG VÀ CÀI ĐẶT

Tổng kết

Ngày đăng: 05/09/2021, 20:50

HÌNH ẢNH LIÊN QUAN

Hình 2.6 - Cách SmartContract hoạt động - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 2.6 Cách SmartContract hoạt động (Trang 35)
Hình 2.11 - Phí giao dịch trong Ethereum - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 2.11 Phí giao dịch trong Ethereum (Trang 42)
3.2.1.4. Bảng “SellerPicks” thuộc SmartContract - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
3.2.1.4. Bảng “SellerPicks” thuộc SmartContract (Trang 57)
Hình 4.4 - Sơ đồ tuần tự chức năng đăng ký - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.4 Sơ đồ tuần tự chức năng đăng ký (Trang 72)
Hình 4.6 - Sơ đồ tuần tự chức năng đăng nhập - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.6 Sơ đồ tuần tự chức năng đăng nhập (Trang 75)
Hình 4.10 - Sơ đồ tuần tự chức năng tạo sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.10 Sơ đồ tuần tự chức năng tạo sản phẩm (Trang 79)
Hình 4.11 - Sơ đồ lớp chức năng tạo sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.11 Sơ đồ lớp chức năng tạo sản phẩm (Trang 80)
Hình 4.12 - Sơ đồ tuần tự chức năng nhắn tin - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.12 Sơ đồ tuần tự chức năng nhắn tin (Trang 81)
Hình 4.14 - Sơ đồ tuần tự chức năng đánh giá sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.14 Sơ đồ tuần tự chức năng đánh giá sản phẩm (Trang 83)
Hình 4.18 - Sơ đồ tuần tự chức năng báo cáo sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.18 Sơ đồ tuần tự chức năng báo cáo sản phẩm (Trang 87)
Hình 4.20 - Sơ đồ tuần tự chức năng thêm vào giỏ hàng - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.20 Sơ đồ tuần tự chức năng thêm vào giỏ hàng (Trang 89)
Hình 4.22 - Sơ đồ tuần tự chức năng giao dịch hàng hóa - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.22 Sơ đồ tuần tự chức năng giao dịch hàng hóa (Trang 90)
Hình 4.23 - Sơ đồ lớp chức năng giao dịch hàng hóa - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.23 Sơ đồ lớp chức năng giao dịch hàng hóa (Trang 91)
Hình 4.24 - Sơ đồ tuần tự chức năng tìm kiếm/lọc sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.24 Sơ đồ tuần tự chức năng tìm kiếm/lọc sản phẩm (Trang 92)
Hình 4.26 - Sơ đồ tuần tự chức năng cài đặt thông số hệ thống - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.26 Sơ đồ tuần tự chức năng cài đặt thông số hệ thống (Trang 94)
Hình 4.31 - Sơ đồ tuần tự chức năng xác nhận sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.31 Sơ đồ tuần tự chức năng xác nhận sản phẩm (Trang 100)
Hình 4.36 - Sơ đồ lớp chức năng đẩy tin sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.36 Sơ đồ lớp chức năng đẩy tin sản phẩm (Trang 103)
Hình 4.3 7- Sơ đồ tuần tự chức năng xác nhận báo cáo sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.3 7- Sơ đồ tuần tự chức năng xác nhận báo cáo sản phẩm (Trang 104)
Hình 4.40 - Sơ đồ tuần tự chức năng chỉnh sửa thông tin người dùng - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.40 Sơ đồ tuần tự chức năng chỉnh sửa thông tin người dùng (Trang 106)
Hình 4.45 - Sơ đồ tuần tự chức năng thêm khuyến mãi - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.45 Sơ đồ tuần tự chức năng thêm khuyến mãi (Trang 111)
4.3.1. Màn hình Trang chủ - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
4.3.1. Màn hình Trang chủ (Trang 121)
4.3.6. Màn hình trang Thông tin tài khoản - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
4.3.6. Màn hình trang Thông tin tài khoản (Trang 126)
Hình 4.62 - Màn hình trang Thông tin tài khoản – Đơn hàng - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.62 Màn hình trang Thông tin tài khoản – Đơn hàng (Trang 127)
Hình 4.64 - Màn hình trang Thông tin tài khoản – Sản phẩm chờ duyệt - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.64 Màn hình trang Thông tin tài khoản – Sản phẩm chờ duyệt (Trang 129)
4.3.13. Màn hình trang Tìm kiếm sản phẩm - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
4.3.13. Màn hình trang Tìm kiếm sản phẩm (Trang 136)
Hình 4.81 - Màn hình trang Quản lý hàng hóa – Nhập kho hàng hóa - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 4.81 Màn hình trang Quản lý hàng hóa – Nhập kho hàng hóa (Trang 142)
Hình 5.6 - Tùy chỉnh cài đặt NodeJS - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 5.6 Tùy chỉnh cài đặt NodeJS (Trang 153)
Hình 5.11 - Cài đặt MongoDB Chọn ‘I accept the terms in the License Agreement’  - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 5.11 Cài đặt MongoDB Chọn ‘I accept the terms in the License Agreement’ (Trang 157)
Hình 5.14 - Tùy chỉnh cài đặt MongoDB Chọn thư mục lưu data và log cho MongoDB.  - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 5.14 Tùy chỉnh cài đặt MongoDB Chọn thư mục lưu data và log cho MongoDB. (Trang 160)
Hình 5.29 - Copy địa chỉ ví - KHÓA LUẬN tốt NGHIỆP áp DỤNG CÔNG NGHỆ BLOCKCHAIN xây DỰNG WEBSITE THƯƠNG mại điện tử
Hình 5.29 Copy địa chỉ ví (Trang 173)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w