1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack

82 7 0

Đ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 đề Xây Dựng Ứng Dụng Đấu Giá Trực Tuyến Sử Dụng Công Nghệ MERN STACK
Thể loại đồ án tốt nghiệp
Định dạng
Số trang 82
Dung lượng 3,18 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (9)
    • 1.1 Khảo sát hiện trạng (9)
    • 1.2 Giới thiệu sản phẩm (10)
    • 1.3 Mục tiêu đề tài (10)
    • 1.4 Cấu trúc khóa luận (11)
  • CHƯƠNG 2: GIỚI THIỆU VỀ CÔNG NGHỆ (11)
    • 2.1. Công nghệ MERN STACK là gì? (12)
      • 2.1.1 MongoDB là gì? (12)
      • 2.1.2 ExpressJS là gì? (14)
      • 2.1.3 ReactJs là gì? (15)
      • 2.1.4 NodeJS là gì? (17)
    • 2.2 RESTful API là gì (18)
      • 2.2.1 Khái niệm (18)
      • 2.2.2 Các phương thức HTTP được sử dụng trong REST (18)
      • 2.2.3 Ưu điểm (18)
    • 2.3 JSON Web Token (JWT) là gì? (19)
      • 2.3.1 Khái niệm (19)
      • 2.3.2 Thành phần (20)
    • 2.4 Heroku là gì (21)
      • 2.4.1 Khái niệm (21)
      • 2.4.2 Ưu điểm (21)
      • 2.4.3 Nhược điểm (21)
    • 2.5 Firebase là gì? (22)
      • 2.5.1 Khái niệm (22)
      • 2.5.3 Nhược điểm (22)
  • CHƯƠNG 3: ỨNG DỤNG ĐẤU GIÁ TRỰC TUYẾN (11)
    • 3.1 Giới thiệu ứng dụng (23)
      • 3.1.1 Khái niệm Đấu Giá Trực Tuyến (23)
      • 3.1.2 Khảo sát thị trường (23)
      • 3.1.3 Mô tả bài toán (23)
  • CHƯƠNG 4: THIẾT KẾ HỆ THỐNG (11)
    • 4.1 Yêu cầu chức năng (25)
      • 4.1.1 Guest (25)
      • 4.1.2 User (26)
      • 4.1.3 Admin (28)
    • 4.2 Yêu cầu phi chức năng (28)
    • 4.3 Thiết kế sơ đồ use case (30)
      • 4.3.1 Sơ đồ use case (30)
      • 4.3.2 Đặc tả use case (30)
    • 4.4 Một số lược đồ Activity chính (41)
      • 4.4.1 Activity đăng nhập (41)
      • 4.4.2 Activity đăng kí (42)
      • 4.4.3 Activity xem danh sách sản phẩm (43)
      • 4.4.4 Activity xem chi tiết sản phẩm (44)
      • 4.4.5 Activity đăng sản phẩm (44)
      • 4.4.6 Activity đặt giá (45)
      • 4.4.7 Activity duyệt sản phẩm (46)
    • 4.5 Một số lược đồ tuần tự chính (47)
      • 4.5.1 Lược đồ tuần tự chức năng đăng nhập (47)
      • 4.5.2 Lược đồ tuần tự chức năng đăng kí (48)
      • 4.5.3 Lược đồ tuần tự chức năng xem danh sách sản phẩm (49)
      • 4.5.4 Lược đồ tuần tự chức năng xem chi tiết sản phẩm (49)
      • 4.5.6 Lược đồ tuần tự chức năng đặt giá (51)
    • 4.6 Mô hình dữ liệu quan hệ (51)
      • 4.6.1 Rành buộc (52)
    • 4.7 Thiết kế giao diện hệ thống (54)
      • 4.7.1 Màn hình chính (54)
      • 4.7.2 Màn hình đăng nhập (56)
      • 4.7.3 Màn hình đắng kí tài khoản (58)
      • 4.7.4 Màn hình danh sách sản phẩm (58)
      • 4.7.5 Màn hình chi tiết sản phẩm (61)
      • 4.7.6 Màn hình đăng sản phẩm (63)
      • 4.7.7 Màn hình lịch sử đấu giá - theo dõi đấu giá (0)
      • 4.7.8 Màn hình thanh toán (66)
      • 4.7.9 Màn hình thông tin người dùng – hóa đơn – lịch sử (0)
      • 4.7.10 Màn hình đăng nhập admin (73)
      • 4.7.11 Màn hình quản lý người dùng – sản phẩm – đơn hàng (73)
  • CHƯƠNG 5: KẾT QUẢ, THỰC NGHIỆM, PHÂN TÍCH (79)
    • 5.1 Kết quả đạt được (79)
    • 5.2 Ưu điểm (79)
    • 5.3 Nhược điểm (79)
    • 5.4 Thực nghiệm (80)
    • 5.5 Phân tích (80)
  • CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (81)
    • 6.1 Kết luận (81)
    • 6.2 Hướng phát triển (81)
  • TÀI LIỆU THAM KHẢO (82)

Nội dung

TỔNG QUAN

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

Với sự phát triển mạnh mẽ của công nghệ thông tin và Internet, thương mại điện tử đang bùng nổ, tạo ra nhiều cơ hội cho doanh nghiệp như Amazon và Alibaba Thương mại điện tử giúp doanh nghiệp cắt giảm chi phí và mở rộng thị trường quốc tế, đồng thời cải thiện chất lượng dịch vụ và kết nối với khách hàng Website trở thành kênh kinh doanh hiệu quả và tiết kiệm cho các doanh nghiệp Việt Nam, giúp quảng bá hình ảnh và tìm kiếm khách hàng toàn cầu Để có một website thương mại điện tử hiện đại, doanh nghiệp cần thiết kế các module chức năng như cung ứng hàng hóa, quản trị khách hàng và thanh toán, kết hợp với công nghệ tiên tiến Nghiên cứu và khảo sát các mô hình thiết kế website thương mại điện tử là cần thiết để tối đa hóa hoạt động sản xuất kinh doanh.

Đấu giá trực tuyến tại Việt Nam vẫn còn là một khái niệm mới mẻ và chưa được nhiều người chú ý so với các trang thương mại điện tử thông thường Tuy nhiên, chức năng đấu giá có tiềm năng lớn, vì hầu hết các website thương mại điện tử lớn đều tích hợp tính năng này, cùng với nhiều nhóm đấu giá trên Facebook có hàng chục ngàn thành viên Trong việc thiết kế giao diện, do sự hạn chế của các trang web đấu giá hiện có, chúng tôi đã tạo ra một giao diện tương tự như các trang bán hàng, nhưng đã tinh chỉnh để phù hợp và thu hút người dùng hơn.

Nhóm chúng em quyết định chọn MERN STACK cho dự án của mình vì một thành viên đã có kinh nghiệm tiếp cận công nghệ này trong quá trình thực tập, đặc biệt là với Reactjs Việc sử dụng MERN STACK giúp chúng em dễ dàng tương tác và hỗ trợ lẫn nhau trong quá trình phát triển.

Giới thiệu sản phẩm

Sản phẩm của chúng tôi, được phát triển bằng công nghệ MERN STACK, đáp ứng đầy đủ các yêu cầu cơ bản của một trang web đấu giá trực tuyến Người dùng có thể dễ dàng đăng sản phẩm để đấu giá, tùy chỉnh bước giá và thời gian đấu giá theo nhu cầu của mình Điều này tạo ra sự thoải mái và linh hoạt, giúp người dùng tiếp cận trang web một cách dễ dàng và hiệu quả nhất.

Ngôn ngữ lập trình JavaScript đã trở thành một trong những ngôn ngữ phổ biến nhất trên thế giới trong những năm gần đây, đặc biệt là trong lĩnh vực lập trình web, bên cạnh HTML và CSS Khi nói đến JavaScript, không thể không nhắc đến bộ công cụ MERN STACK, bao gồm MongoDB, ExpressJS, ReactJS và NodeJS, giúp lập trình viên xây dựng ứng dụng web full stack từ backend đến frontend một cách hiệu quả.

Hệ thống website đấu giá của chúng tôi hiện tập trung vào các mặt hàng điện tử, nhưng có khả năng điều chỉnh và mở rộng để phục vụ đấu giá nhiều loại sản phẩm đa dạng hơn, bao gồm quần áo, giày dép, xe cộ và các đồ dùng khác theo nhu cầu của người dùng.

Mục tiêu đề tài

Để xây dựng một trang web đấu giá hiệu quả, việc nắm vững nghiệp vụ cơ bản của các trang web hiện có là rất quan trọng Chúng tôi cần khảo sát hiện trạng để hiểu rõ các chức năng và luồng xử lý của các trang web lớn, từ đó phát triển các tính năng hoàn thiện Điều này sẽ giúp tối ưu hóa trải nghiệm người dùng, đảm bảo rằng hệ thống hoạt động mượt mà và đáp ứng nhu cầu của người dùng.

- Tìm hiểu về công nghệ đang được sử dụng cho trang web MERN STACK

MERN STACK là công nghệ chủ yếu được sử dụng để xây dựng hệ thống, được phát triển hoàn toàn bằng ngôn ngữ JavaScript Các thành phần chính của MERN STACK bao gồm MongoDB, một cơ sở dữ liệu noSQL phổ biến, thường kết hợp với Mongoose để đơn giản hóa việc giao tiếp; ExpressJS, một web framework chạy trên Node.js, cung cấp nhiều tính năng như routing, middlewares và template engines; và ReactJS, một thư viện JavaScript thiết kế giao diện người dùng (UI) cho cả nền tảng Web và Mobile.

Chương 1: Tổng quan 3 dụng React Js có thể đem lại trải nghiệm tốt cho người dùng, cũng như khả năng Hot Reload giúp bạn lập trình nhanh hơn o NodeJS: Là một nền tảng được xây dựng trên V8 JavaScript Engine – trình thông dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng

- Tích hợp phương thức thanh toán trực tuyến PayPal

Thanh toán trực tuyến là yếu tố then chốt trong hệ thống thương mại điện tử, giúp hoàn thiện hóa giao dịch hoàn toàn trên Internet Phương thức này mang lại sự nhanh chóng, tiện lợi và tiết kiệm thời gian cho người tiêu dùng.

- Triển khai ứng dụng trong môi trường thực tế

Triển khai ứng dụng trong môi trường thực tế có nghĩa là ứng dụng đã được đưa ra thế giới bên ngoài và tiếp cận với người dùng Tuy nhiên, việc triển khai này đối mặt với nhiều thách thức, đặc biệt là các vấn đề liên quan đến bảo mật, khả năng lưu trữ và sức chịu tải của trang web Hiện tại, chúng tôi vẫn chưa đủ khả năng để tối ưu và xử lý hiệu quả những vấn đề này.

Chúng em sẽ triển khai trang web lên môi trường thực tế để thu thập trải nghiệm và kiến thức mới Cụ thể, backend sẽ được triển khai trên Heroku, trong khi frontend sẽ được triển khai trên Firebase.

Cấu trúc khóa luận

GIỚI THIỆU VỀ CÔNG NGHỆ

Công nghệ MERN STACK là gì?

MERN STACK là nguyên bộ combo open source các công nghệ đều liên quan đến JavaScript hot nhất hiện nay: MongoDB, ExpressJS, ReactJS, NodeJS

Hình 2.1: MEARN STACK 2.1.1 MongoDB là gì?

- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql và được hàng triệu người sử dụng

Chương 2: Giới thiệu về công nghệ 6

MongoDB là một cơ sở dữ liệu dạng tài liệu, trong đó dữ liệu được lưu trữ dưới dạng document kiểu JSON, khác với cấu trúc bảng của cơ sở dữ liệu quan hệ, giúp tăng tốc độ truy vấn một cách đáng kể.

Trong CSDL quan hệ, bảng là khái niệm cơ bản để lưu trữ dữ liệu, như trong MySQL hay SQL Server Ngược lại, MongoDB sử dụng khái niệm collection thay vì bảng để tổ chức dữ liệu.

- So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row, MongoDB sẽ dùng các document thay cho row trong RDBMS

- Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định

- Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB

MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON, cho phép mỗi collection có kích thước và các document khác nhau Điều này mang lại sự linh hoạt trong việc lưu trữ dữ liệu, giúp người dùng dễ dàng thêm mới thông tin mà không gặp phải giới hạn.

Dữ liệu trong MongoDB không yêu cầu sự ràng buộc lẫn nhau và không hỗ trợ join như trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Điều này cho phép quá trình chèn, xóa hoặc cập nhật dữ liệu diễn ra nhanh chóng mà không cần kiểm tra các ràng buộc dữ liệu như trong RDBMS.

MongoDB nổi bật với khả năng mở rộng dễ dàng thông qua tính năng mở rộng ngang (Horizontal Scalability) Hệ thống sử dụng khái niệm cluster, bao gồm các node chứa dữ liệu có khả năng giao tiếp với nhau Để mở rộng hệ thống, người dùng chỉ cần thêm một node mới vào cluster.

- Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấn thông tin đạt hiệu suất cao nhất

Khi có một truy vấn dữ liệu, bản ghi sẽ được lưu vào bộ nhớ RAM, giúp tăng tốc độ truy vấn cho lần tiếp theo mà không cần truy cập ổ cứng.

MongoDB mang lại hiệu năng cao với tốc độ truy vấn (tìm kiếm, cập nhật, chèn, xóa) nhanh hơn nhiều so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Các thử nghiệm cho thấy, với một lượng dữ liệu lớn, tốc độ chèn của MongoDB có thể nhanh gấp 100 lần so với MySQL.

Chương 2: Giới thiệu về công nghệ 7

Một trong những ưu điểm nổi bật của MongoDB chính là sự linh hoạt trong việc không có các tính chất ràng buộc như trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Tuy nhiên, điều này cũng trở thành nhược điểm, vì người dùng cần phải thao tác một cách cẩn thận để tránh các lỗi không mong muốn.

Dữ liệu lưu trữ dưới dạng key-value tiêu tốn bộ nhớ, vì các collection chỉ khác nhau ở giá trị, dẫn đến việc lặp lại key Hơn nữa, việc không hỗ trợ join khiến cho tình trạng dư thừa dữ liệu trở nên dễ xảy ra.

Khi thực hiện các thao tác insert, update hoặc remove bản ghi, MongoDB không ngay lập tức cập nhật dữ liệu xuống ổ cứng mà sẽ thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM sau 60 giây Điều này có thể trở thành nhược điểm lớn, vì có nguy cơ mất dữ liệu trong các tình huống như mất điện.

Express.js là một framework nhỏ nhưng linh hoạt, được xây dựng trên nền tảng Node.js, cung cấp những tính năng mạnh mẽ cho việc phát triển ứng dụng web và di động.

- Và hơn hết, các Framework nổi tiếng của NodeJS hiện nay đều sử dụng ExpressJS như một core function, chẳng hạn: MERN, SailsJS, MEAN,

- Root: Chứa các file như packages.json, webpack, và một file root(.js) chứa toàn bộ project

- Views: Chứa view/engine template cho ứng dụng

- Controller: o Nhận request và gửi lên server (thông qua models) sau đó trả lại response

Chương 2: Giới thiệu về công nghệ 8 o Controllers tương tác với cả views và models

- Models: o Chứa các schema tương ứng với các trường dữ liệu trên server o models chỉ tương tác với controller

- Public: Các file tĩnh như css, img, js

Middleware là các hàm trung gian giúp tiền xử lý và lọc các yêu cầu (request) trước khi gửi phản hồi (response) đến người dùng Chỉ những yêu cầu đáp ứng đủ điều kiện mới được phép tiếp tục xử lý trong chương trình.

ReactJS là một thư viện mã nguồn mở được phát triển bởi Facebook, nhằm tạo ra các ứng dụng web hấp dẫn với tốc độ nhanh và hiệu quả cao Thư viện này giúp tối ưu hóa mã hóa, mang lại trải nghiệm người dùng mượt mà và ấn tượng.

Mục đích chính của ReactJS là đảm bảo rằng các website sử dụng nó hoạt động mượt mà, nhanh chóng và có khả năng mở rộng cao, đồng thời dễ dàng trong việc triển khai.

Công nghệ DOM ảo, hay còn gọi là Virtual DOM, giúp cải thiện hiệu năng cho ứng dụng bằng cách chỉ thay đổi node gốc khi có sự thay đổi trạng thái, từ đó tái cấu trúc toàn bộ DOM tree mà không cần phải xử lý lại tất cả các phần tử Điều này giúp tăng tốc độ xử lý và tối ưu hóa hiệu suất cho các ứng dụng sử dụng React JS.

Chương 2: Giới thiệu về công nghệ 9

RESTful API là gì

REST, viết tắt của Representational State Transfer, là một chuẩn web dựa trên kiến trúc sử dụng giao thức HTTP Nó xử lý tài nguyên, trong đó mỗi thành phần là một tài nguyên có thể truy cập qua các giao diện chung bằng cách sử dụng các phương thức HTTP chuẩn Chuẩn REST lần đầu tiên được giới thiệu bởi Roy Fielding vào năm 2000.

Một REST Server cung cấp chế độ truy cập đến các nguồn tài nguyên, trong khi REST Client thực hiện việc truy cập và sửa đổi chúng thông qua các phương thức HTTP Mỗi nguồn tài nguyên được xác định bởi một URI, và REST sử dụng nhiều định dạng biểu diễn khác nhau cho các nguồn tài nguyên, với JSON là định dạng phổ biến nhất.

2.2.2 Các phương thức HTTP được sử dụng trong REST

HTTP định nghĩa 9 phương thức chính để thực hiện các yêu cầu giữa các hệ thống, bao gồm GET, HEAD, POST, PUT, PATCH, DELETE, CONNECT, OPTIONS và TRACE Trong bài viết này, nhóm thực hiện sẽ tập trung vào việc sử dụng các phương thức này để thêm, xóa, cập nhật và đọc tài nguyên.

- GET: dùng để truy xuất dữ liệu và không sửa đổi thông tin theo bất kì cách nào

- POST: dùng để tạo ra một đối tượng mới trong cơ sở dữ liệu

- PATCH: dùng để cập nhật một phần thông tin của đối tượng được yêu cầu

- DELETE: dùng để xóa đối tượng được yêu cầu

- Khả năng mở rộng cao nhờ sự tách biệt giữa các thành phần

- Sử dụng được cho nhiều nền tảng khác nhau mobile, web…

- Giao tiếp giữa các thành phần được định nghĩa rõ ràng, dễ hiểu

- Khả năng thay đổi linh hoạt, không phụ thuộc vào một loại dữ liệu nhất định

Chương 2: Giới thiệu về công nghệ 12

JSON Web Token (JWT) là gì?

JSON Web Token (JWT) là một tiêu chuẩn mở (RFC 7519) cho phép truyền tải thông tin an toàn giữa các bên thông qua một đối tượng JSON Thông tin trong JWT có thể được xác thực và đảm bảo tính tin cậy nhờ vào chữ ký của nó, được mã hóa bằng HMAC hoặc RSA.

Hình 2.6: Cách hoạt động của JWT

Những đặc điểm nổi bật của JWT:

JWT có kích thước nhỏ, cho phép truyền qua URL, giao thức POST, hoặc nhét vào HTTP Header, giúp tăng tốc độ truyền tải Dưới đây là hướng dẫn cách truyền token vào HTTP Header bằng Bearer Schema.

Payload là phần chứa toàn bộ thông tin cần thiết, như dữ liệu người dùng, giúp giảm thiểu việc truy vấn cơ sở dữ liệu nhiều lần.

Chương 2: Giới thiệu về công nghệ 13

Hình 2.7: Thành phần của JWT

Header của token bao gồm hai phần chính: loại token, mặc định là JWT, cho biết đây là một Token JWT, và thuật toán mã hóa được sử dụng, có thể là HMAC SHA256 (HS256) hoặc RSA.

Payload trong JWT chứa các claims, là những biểu thức liên quan đến thực thể như người dùng và các metadata phụ trợ Có ba loại claims chính trong Payload: claims reserved, public và private Claims reserved bao gồm các metadata được định nghĩa trước, trong đó một số là bắt buộc và số còn lại nên tuân theo để đảm bảo JWT hợp lệ Claims public là những claims được cộng đồng công nhận và sử dụng rộng rãi Cuối cùng, claims private là các claims tự định nghĩa, không trùng với claims reserved và public, được tạo ra để chia sẻ thông tin giữa hai bên đã thỏa thuận và thống nhất trước đó.

Chữ ký (Signature) trong JWT là một chuỗi được mã hóa từ header và payload kết hợp với một chuỗi bí mật Vì Signature bao gồm cả header và payload, nó có thể được sử dụng để kiểm tra tính toàn vẹn của dữ liệu trong quá trình truyền tải.

Chương 2: Giới thiệu về công nghệ 14

Heroku là gì

Heroku là nền tảng đám mây PaaS (Platform as a Service) giúp lập trình viên xây dựng, triển khai, quản lý và mở rộng ứng dụng một cách dễ dàng.

Nó rất linh hoạt và dễ sử dụng, mang đến một phương thức đơn giản để tiếp cận người dùng Giải pháp này cho phép các nhà phát triển tập trung vào việc cải tiến sản phẩm mà không cần lo lắng về việc quản lý máy chủ hay phần cứng.

- Có thể dùng miễn phí cho nhiều ngôn ngữ: Nodejs, PHP, Python, Kotlin,…

- Cung cấp Database, SSL miễn phí, hỗ trợ mạnh làm việc team cũng như liên kết với Github một cách đơn giản

- Việc miễn phí sẽ chỉ có giới hạn là 550 giờ mỗi tháng Nếu muốn tăng lên 1000 giờ thì bạn cần cài đặt phương thức thanh toán trên đó

Chương 2: Giới thiệu về công nghệ 15

ỨNG DỤNG ĐẤU GIÁ TRỰC TUYẾN

THIẾT KẾ HỆ THỐNG

Yêu cầu chức năng

Bảng 1: Yêu cầu chức năng của Guest

Tạo tài khoản ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép Guest tạo tài khoản Đăng nhập ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép Guest đăng nhập vào ứng dụng

Xem trang chủ ôFunctionalằ Status: Approved Priority: Hight Difficulty: Medium

Cho phép Guest xem trang chủ của ứng dụng Bao gồm:

- Xem một số sản phẩm sắp hết hạn

- Xem một số sản phẩm theo từng loại sản phẩm (điện thoại, máy tính,…)

Xem danh sách sản phẩm ôFunctionalằ Status: Approved Priority: Hight Difficulty: Medium

Cho phép Guest xem toàn bộ sản phẩm mà người dùng đã chọn ở trang chủ Bao gồm:

- Xem một số sản phẩm sắp hết hạn, có phân trang

- Xem một số sản phẩm theo từng loại sản phẩm (điện thoại, máy tính,…), có phân trang

Xem chi tiết sản phẩm ôFunctionalằ Status: Approved Priority: Hight Difficulty: Medium

Chương 4: Thiết kế hệ thống 19

Cho phép khách hàng xem thông tin chi tiết về sản phẩm bao gồm tên sản phẩm, hình ảnh, giá hiện tại, bước giá, giá mua ngay, mô tả sản phẩm và danh sách những người đang đặt giá cho sản phẩm đó.

Bảng 2: Yêu cầu chức năng của User

Xem trang chủ (giống với Guest)

Xem danh sách sản phẩm (giống với Guest)

Xem chi tiết sản phẩm (giống với Guest)

Tạo sản phẩm đấu giá ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Users can create products for auction by entering all necessary information Each product can include a maximum of four images The auction status is set to "Approved," with a high priority and medium difficulty level.

Cho phép User thực hiện đấu giá sản phẩm mà họ mong muốn Giá đấu sẽ bằng chính giá hiện tại của sản phẩm cộng thêm bước giá

Thực hiện mua sản phẩm ngay lập tức ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép người dùng ngay lập tức mua được ngay sản phẩm

Xem danh sách sản phẩm đã tạo ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Chương 4: Thiết kế hệ thống 20

Cho phép User xem lại, theo dõi các sản phẩm mà mình đã tạo

Xem danh sách sản phẩm đã đấu giá ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép User xem lại, theo dõi các sản phẩm mà mình đã đấu giá

Xem thông tin cá nhân ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép User xem lại thông tin cá nhân của bản thân

Thanh toán sản phẩm ôFunctionalằ Status: Approved Priority: Hight Difficulty: Medium

Người dùng có thể cung cấp thêm thông tin để thực hiện thanh toán sản phẩm Nếu chỉ nhập địa chỉ, ứng dụng sẽ mặc định thanh toán theo hình thức COD Bên cạnh đó, người dùng cũng có tùy chọn thanh toán qua ví điện tử PayPal.

Rating người bán ôFunctionalằ Status: Approved Priority: Medium Difficulty: Medium

Cho phép User đánh giá người dùng khác thông qua hóa đơn sản phẩm Mỗi hóa đơn thì User sẽ chỉ đánh giá được một lần

Thông báo ôFunctionalằ Status: Approved Priority: Medium Difficulty: Medium

Cho phép User nhận được thông báo khi đấu giá thành công sản phẩm Đăng xuất ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Chương 4: Thiết kế hệ thống 21

Cho phép User đăng xuất tài khoản Sau khi đăng xuất thì token, thông tin của User sẽ bị xóa

Bảng 3: Yêu cầu chức năng Admin Đăng nhập admin ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép Admin đăng nhập với tài khoản đã có sãn

Xem thống kê ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép Admin xem thống kê doanh thu của ứng dụng

Quản lý tài khoản ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép Admin xem danh sách toàn bộ thông tin tài khoản Có thể xóa tài khoản nếu thấy cấn thiết

Quản lý sản phẩm ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Cho phép Admin xem danh sách thông tin toàn bộ sản phẩm, duyệt những sản phẩm hợp lệ để show trên trang web ứng dụng

Yêu cầu phi chức năng

Bảng 4: Yêu cầu phi chức năng

Khả năng mở rộng ôFunctionalằ Status: Proposed Priority: Medium Difficulty: High

Có khả năng mở rộng thêm các chức năng mới

Giao diện ôFunctionalằ Status: Approved Priority: High Difficulty: High

Chương 4: Thiết kế hệ thống 22

Giao diện dễ nhìn, dễ sử dụng

Authorization ôFunctionalằ Status: Approved Priority: Hight Difficulty: Low

Xác thực người dùng Hệ thống phân quyền cho người dùng và lưu lại token khi người dùng đăng nhập vào hệ thống

Chương 4: Thiết kế hệ thống 23

Thiết kế sơ đồ use case

Hình 4.1: Sơ đồ Use Case

Bảng 5: Use case đăng nhập

Tên use case Đăng nhập

Tóm tắt Usecase bắt đầu khi một người dùng muốn đăng nhập vào hệ thống

Chương 4: Thiết kế hệ thống 24

Dòng sự kiện chính 1 Người dùng chọn chức năng “Đăng nhập”

2 Hệ thống yêu cầu người dùng nhập tài khoản, mật khẩu

3 Người dùng nhập tài khoản, mật khẩu

4 Hệ thống kiểm tra tài khoản, mật khẩu được nhập và cho phép người dùng đăng nhập vào hệ thống

5 Usecase kết thúc Dòng sự kiện phụ 1 Người dùng nhập sai tài khoản hoặc mật khẩu

2 Hệ thống đưa cho phép người dùng nhập lại, hệ thống trở về đầu dòng sự kiện chính

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Có tài khoản trong hệ thống

Hậu điều kiện Nếu Người dùng đăng nhập thành công, hệ thống cung cấp quyền tương ứng cho actor Ngược lại trạng thái hệ thống không thay đổi

Bảng 6: Use case đăng kí

Tên use case Đăng kí

Tóm tắt Usecase bắt đầu khi một người dùng muốn tạo tài khoản

Dòng sự kiện chính 1 Người dùng chọn chức năng “Đăng ký”

2 Hệ thống hiển thị và yêu cầu người dùng điền các thông tin sau: họ tên, tài khoản, email, số điện thoại, ngày sinh, giới tính, địa chỉ

3 Người dùng điền đầy đủ các thông tin trên, đồng ý “Đăng ký” với các điều khoản hệ thống đưa ra

4 Hệ thống kiểm tra tính hợp lệ của các thông tin: a Họ tên, tài khoản, email, số điện thoại, b Tài khoản chỉ bao gồm các ký tự là chữ cái hoặc số, dấu chấm, gạch dưới, không được có các ký tự đặc biệt

Chương 4: Thiết kế hệ thống 25 c Tài khoản, Họ Tên không phản cảm, không có ý nghĩa bậy bạ không có khoảng trắng

5 Hệ thống lưu thông tin xuống CSDL

6 Usecase kết thúc Dòng sự kiện phụ 1 Tài khoản đã tồn tại.-> Hệ thống yêu cầu người dùng chọn tài khoản khác

2 Email hoặc Số điện thoại đã tồn tại.-> Hệ thống yêu cầu người dùng kiểm tra Email hoặc Số điện thoại Nếu người dùng đã đăng ký, vui lòng chọn chức năng “Khôi phục tài khoản”

3 Người dùng chưa nhập đầy đủ thông tin.-> Hệ thống yêu cầu người dùng nhập đầy đủ thông tin

4 Thông tin về họ, tên, email, số điện thoại ngày sinh, giới tính, chỗ ở hiện nay không hợp lệ.-> Hệ thống yêu cầu người dùng khai báo chính xác, kèm theo hướng dẫn giúp người dùng thực hiện Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Có tài khoản trong hệ thống

Hậu điều kiện Kết thúc usecase: Nếu thành công, người dùng tạo tài khoản thành công và trở thành thành viên của hệ thống

Hệ thống cập nhật cơ sở dữ liệu cho phép người dùng đăng nhập để tham gia đấu giá hoặc đăng sản phẩm cho người khác đấu giá Tuy nhiên, trạng thái của hệ thống sẽ không thay đổi trong quá trình này.

Bảng 7: Use case xem trang chủ

Tên use case Xem trang chủ

Tóm tắt Usecase bắt đầu khi người dùng đăng nhập hay mở trang web lên

Dòng sự kiện chính Người dùng có thể thấy được thông tin, giao diện chính của trang web

Chương 4: Thiết kế hệ thống 26

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Phải đăng nhập vào hệ thống

Hậu điều kiện Kết thúc usecase, người dùng xem được sản phẩm và có thể thao tác để tiến tới thao tác xem danh sách sản phẩm

4.3.2.4 Use case xem danh sách sản phẩm

Bảng 8: Use case xem danh sách sản phẩm

Tên use case Xem danh sách sản phẩm

Tóm tắt Usecase bắt đầu khi người dùng muốn xem danh sách sản phẩm

Dòng sự kiện chính 1 Người dùng có nhu cầu lựa chọn sản phẩm

2 Hệ thống cho phép người dùng xem danh sách sản phẩm

3 Người dùng chọn danh sách muốn xem theo danh mục hoặc có thể là những sản phẩm sắp hết thời gian đấu giá

4 Hệ thống hiển thị danh sách sản phẩm

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Không có

Hậu điều kiện Kết thúc usecase, người dùng xem được danh sách sản phẩm mong muốn

4.3.2.5 Xem chi tiết sản phẩm

Bảng 9: Use case xem chi tiết sản phẩm

Tên use case Xem chi tiết sản phẩm

Tóm tắt Usecase mô tả các cách người dùng xem thông tin sản phẩm

Chương 4: Thiết kế hệ thống 27

Dòng sự kiện chính 1 Người dùng chọn sản phẩm muốn xem

2 Hệ thống hiển thị chi tiết sản phẩm bao gồm các thông tin: tên sản phẩm, hình ảnh sản phẩm, thông tin chi tiết sản phẩm, tình trạng sản phẩm, giá hiện tại, bước giá, thời gian kết thúc đấu giá, và danh sách các phiên đấu giá của trước đó của sản phẩm

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Không có

Hậu điều kiện Kết thúc usecase, người dùng xem được thông tin chi tiết sản phẩm

Bảng 4.10: Use case quản lý tài khoản

Tên use case Quản lý thông tin tài khoản

Tóm tắt Usecase mô tả các cách người dùng xem thông tin tài khoản

Dòng sự kiện chính 1 Người dùng bấm vào chọn thông tin cá nhân

2 Hệ thống hiển thị thông tin cá nhân của người dùng

3 Người dùng có thể chỉnh sửa thông tin cá nhận của bản thân

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Phải đăng nhập vào hệ thống

Hậu điều kiện Kết thúc usecase, người dùng xem, chỉnh sửa được thông tin của bản thân

Chương 4: Thiết kế hệ thống 28

Bảng 4.11: Use case quản lý sản phẩm

Tên use case Quản lý sản phẩm đăng bán

Tóm tắt Usecase mô tả các cách người dùng đăng bán sản phẩm hoặc theo dõi, xem lại sản phẩm mình đã đăng

Dòng sự kiện chính 1 Thành viên chọn chức năng “Đăng sản phẩm”.

2 Hệ thống hiển thị giao diện đăng sản phẩm cho thành viên điền thông tin

3 Thành viên điền các thông tin của sẩn phẩm cần đăng

4 Hệ thống kiểm tra tính hợp lệ của các thông tin Thành viên đã điền vào

5 Hệ thống cho phép Thành viên đăng hình ảnh sản phẩm, tối đa 4 hình ảnh

6 Thành viên đồng ý “Hoàn Tất”

7 Hệ thống lưu sản phẩm và đặt sản phẩm ở trạng thái “Chưa đấu giá”, phải đợi admin duyệt xem sản phẩm có hợp lệ

8 Nếu hợp lí sản phẩm sẽ được đăng lên để mọi người khác đấu giá

9 Người dùng có thể chọn xem lại sản phẩm đã đăng để có thể theo dõi tình hình cũng như giá hiện tại của sản phẩm

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Phải đăng nhập vào hệ thống

Hậu điều kiện Không có

Chương 4: Thiết kế hệ thống 29

Bảng 4.12: Use case đấu giá sản phẩm

Tên use case Đấu gia sản phẩm

Tóm tắt Usecase bắt đầu khi thành viên muốn tham gia đấu giá sản phẩm

Dòng sự kiện chính 1 Thành viên chọn đấu giá sản phẩm

2 Hệ thống cập nhật “giá hiện tại” theo bước giá mà người đăng bán đã đặt và thành viên, người ra giá hiện tại xuống CSDL và hiện lên trên bảng các phiên đấu giá của sản phẩm

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Thành viên đã đăng nhập vào hệ thống

Hậu điều kiện Kết thúc usecase: Thành viên đặt giá thành công

Bảng 4.13: Use case theo dõi sản phẩm

Tên use case Theo dõi sản phẩm

Tóm tắt Usecase mô tả cách người dùng theo dõi các sản phẩm mình đã đấu giá

Dòng sự kiện chính 1 Thành viên chọn xem lại lịch sử phiên đấu giá

2 Người dùng có thể thấy toàn bộ sản phẩm mình đã đang đấu giá, theo dõi giá hiện tại của sản phẩm

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có

Chương 4: Thiết kế hệ thống 30 Điều kiện tiên quyết Thành viên đã đăng nhập vào hệ thống Sản phẩm đó còn đang được đấu giá

Hậu điều kiện Không có

4.3.2.10 Mua sản phẩm ngay lập tức

Bảng 4.14: Use case mua sản phẩm ngay

Tên use case Mua sản phẩm ngay lập tức

Tóm tắt Usecase mô tả cách người dùng nhấn nút mua sản phẩm ngay lập tức

Dòng sự kiện chính 1 Thành viên nhấn nút mua sản phẩm ngay lập tức

2 Chuyển tới trang thanh toán để xử lý hóa đơn người dùng

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Thành viên đã đăng nhập vào hệ thống

Hậu điều kiện Không có

Bảng 4.15: Use case đánh giá

Tên use case Đánh giá

Tóm tắt Usecase mô tả cách mà người dùng đánh giá người đang sản phẩm thông qua hóa đơn

Dòng sự kiện chính 1 Thành viên vào trang xem lại lịch sử hóa đơn

2 Nhấp vào hóa đơn và chọn số sao để đánh giá người đăng bán sản phẩm đó

3 Rating người bán sẽ bằng trung bình số sao người đó có được trên từng hóa đơn

Chương 4: Thiết kế hệ thống 31

Dòng sự kiện phụ Không có

Để đánh giá hóa đơn, thành viên cần đăng nhập vào hệ thống và đảm bảo rằng hóa đơn chưa được đánh giá trước đó Mỗi hóa đơn chỉ được phép đánh giá một lần.

Bảng 4.16: Use case thanh toán

Tên use case Thanh toán

Tóm tắt Usecase mô tả cách mà người thanh toán sản phẩm

Dòng sự kiện chính 1 Thành viên vào trang thanh toán sản phẩm

2 Nếu muốn thanh toán trực tuyến thì nhấp chọn thanh toán bằng thẻ hoặc PayPal, còn nếu thanh toán khi nhận hàng thì có thể ấn submit thanh toán luôn

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Thành viên đã đăng nhập vào hệ thống Nhập đầy đủ thông tin địa chỉ cần thiết

Hậu điều kiện Không có

Bảng 4.17: Use case đăng xuất

Tên use case Đăng xuất

Tóm tắt Usecase mô tả chức năng đăng xuất

Dòng sự kiện chính 1 Người dùng bấm đăng xuất khỏi trang web

Chương 4: Thiết kế hệ thống 32

Token của người dùng sau đó sẽ bị xóa

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Thành viên đã đăng nhập vào hệ thống

Hậu điều kiện Không có

Bảng 4.18: Use case thống kê doanh thu

Tên use case Thống kê doanh thu

Tóm tắt Usecase bắt đầu khi Admin đăng nhập thành công

Dòng sự kiện chính 1 Admin khi vào trang có thể xem thống kê doanh thu của trang web

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Admin đã đăng nhập vào hệ thống

Hậu điều kiện Không có

Bảng 4.19: Use case quản lý sản phẩm Admin

Tên use case Quản lý sản phẩm

Tóm tắt Usecase bắt đầu khi Admin ấn vào nút bấm sản phẩm trên Sidebar

Dòng sự kiện chính 1 Admin khi ấn vào nút bấm sản phẩm

2 Show toàn bộ sản phẩm có trên trang web

3 Admin có thể chọn những sản phẩm chưa được bày bán để duyệt sản phẩm và cho sản phẩm đó

Chương 4: Thiết kế hệ thống 33 đăng trên trang web

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Admin đã đăng nhập vào hệ thống

Hậu điều kiện Không có

4.3.2.15 Xem thông tin người dùng

Bảng 4.20: Use case xem thông tin người dùng

Tên use case Xem thông tin người dùng

Tóm tắt Usecase bắt đầu khi Admin ấn vào nút bấm user trên

Dòng sự kiện chính 1 Admin khi ấn vào nút bấm user

2 Show toàn bộ user có trên trang web, tuy nhiên mật khẩu sẽ bị hash

Dòng sự kiện phụ Không có

Các yêu cầu đặc biệt Không có Điều kiện tiên quyết Admin đã đăng nhập vào hệ thống

Hậu điều kiện Không có

Chương 4: Thiết kế hệ thống 34

Một số lược đồ Activity chính

Chương 4: Thiết kế hệ thống 35

Chương 4: Thiết kế hệ thống 36

4.4.3 Activity xem danh sách sản phẩm

Hình 4.4: Activity xem danh sách sản phẩm

Chương 4: Thiết kế hệ thống 37

4.4.4 Activity xem chi tiết sản phẩm

Hình 4.5: Activity xem chi tiết sản phẩm 4.4.5 Activity đăng sản phẩm

Hình 4.6: Activity đăng sản phẩm

Chương 4: Thiết kế hệ thống 38

Chương 4: Thiết kế hệ thống 39

Hình 4.8: Activity duyệt sản phẩm

Chương 4: Thiết kế hệ thống 40

Một số lược đồ tuần tự chính

4.5.1 Lược đồ tuần tự chức năng đăng nhập

Hình 4.9: Lược đồ đăng nhập

Chương 4: Thiết kế hệ thống 41

4.5.2 Lược đồ tuần tự chức năng đăng kí

Hình 4.10: Lược đồ đăng kí

Chương 4: Thiết kế hệ thống 42

4.5.3 Lược đồ tuần tự chức năng xem danh sách sản phẩm

Hình 19: Lược đồ xem danh sách sản phẩm 4.5.4 Lược đồ tuần tự chức năng xem chi tiết sản phẩm

Hình 4.11: Lược đồ xem chi tiết sản phẩm

Chương 4: Thiết kế hệ thống 43

4.5.5 Lược đồ tuần tự chức năng đăng sản phẩm

Hình 4.12: Lược đồ đăng sản phẩm

Chương 4: Thiết kế hệ thống 44

4.5.6 Lược đồ tuần tự chức năng đặt giá

Mô hình dữ liệu quan hệ

Chương 4: Thiết kế hệ thống 45

Hình 4.14: Mô hình quan hệ dữ liệu

Trong dữ liệu được lưu trữ, mỗi sản phẩm chỉ thuộc một người dùng và một người dùng có thể tạo nhiều sản phẩm

Trong dữ liệu được lưu trữ, mỗi phiên đấu giá chỉ thể hiện cho một sản phẩm nhưng mỗi sản phẩm có thể có nhiều phiên đấu giá

Chương 4: Thiết kế hệ thống 46

Trong dữ liệu được lưu trữ, mỗi phiên đấu giá chỉ thể hiện cho một người dùng nhưng một người dùng có thể đấu giá nhiều lần

Trong dữ liệu được lưu trữ, mỗi hóa đơn chỉ thuộc một người dùng và một người dùng có thể có nhiều hóa đơn

Trong dữ liệu được lưu trữ, mỗi hóa đơn chỉ điền cho một người bán và mỗi người bán có thể bán nhiều sản phẩm

Trong dữ liệu được lưu trữ, mỗi hóa đơn chỉ điền cho một sản phẩm và một sản phẩm cũng chỉ cho một hóa đơn

Trong dữ liệu được lưu trữ, mỗi hóa đơn chỉ điền cho một địa chỉ và mỗi địa chỉ chỉ dành cho một hóa đơn

Chương 4: Thiết kế hệ thống 47

Thiết kế giao diện hệ thống

Bảng 4.21: Mô tả màn hình chính

Chức năng Mô tả chức năng

Chương 4: Thiết kế hệ thống 48 Đang đấu giá Hiển thị danh sách các sản phẩm đang đấu giá và các sản phẩm đang bán (nếu chưa đăng nhập sẽ bị chuyển qua trang đăng nhập) Đăng nhập Chuyển qua trang Đăng nhập để đăng nhập tài khoản Đăng kí Chuyển qua trang Đăng ký để đăng ký tài khoản mới

Sell now Đăng sản phẩm mình muốn đấu giá (nếu chưa đăng nhập sẽ bị chuyển qua trang đăng nhập)

Giới thiệu Hướng dẫn người dùng cách thức đăng sản phẩm, đấu giá…

Tên các loại sản phẩm

Chuyển vào trang xem tất cả các sản phẩm

Expire Hiển thị 5 sản phẩm có thời gian gần hết hạn nhất

Laptop Hiển thị 5 sản phẩm của laptop

Mobile Hiển thị 5 sản phẩm của điện thoại

Watch Hiển thị 5 sản phẩm của đồng hồ thông minh

Tablet Hiển thị 5 sản phẩm của tablet

Accessory Hiển thị 5 sản phẩm của phụ kiện

Camera Hiển thị 5 sản phẩm của máy chụp hình

Trang chủ Tải lại trang chủ

Chương 4: Thiết kế hệ thống 49

Hình 4.16: Màn hình đăng nhập

Hình 4.16.1: Modal đăng nhập bằng Google

Chương 4: Thiết kế hệ thống 50

Hình 4.16.2: Màn hình đăng nhập bằng Facebook

Bảng 4.22: Mô tả màn hình đăng nhập

Chức năng Mô tả chức năng Đăng nhập Người dùng truy cập hệ thống bằng tài khoản (user): tên đăng nhập và password.

Thông báo Thông báo nếu người sử dụng nhập sai thông tin sẽ nhận được thông báo sai username hoặc password

Create new account Đăng ký tài khoản truy cập hệ thống đấu giá trực tuyến nếu chưa có. Đăng nhập bằng

Người dùng truy cập hệ thống bằng tài khoản Google Khi click sẽ hiển thị modal để nhập tài khoản google

Chương 4: Thiết kế hệ thống 51 Đăng nhập bằng

Người dùng truy cập hệ thống bằng tài khoản Facebook Khi click sẽ hiển thị modal để nhập tài khoản facebook

4.7.3 Màn hình đắng kí tài khoản

Hình 4.17: Màn hình đăng kí Bảng 4.23: Mô tả màn hình đăng kí tài khoản

Chức năng Mô tả chức năng Đăng ký tài khoản Người dùng đăng ký tài khoản truy cập hệ thống nếu chưa có.

Thông báo Thông báo đăng ký thành công.

Thông báo User already registered nếu tài khoản đã tồn tại Thông báo Something went wrong nếu bạn nhập sai thông tin

4.7.4 Màn hình danh sách sản phẩm

Chương 4: Thiết kế hệ thống 52

Hình 4.18: Màn hình danh sách sản phẩm

Chương 4: Thiết kế hệ thống 53

Hình 4.18.1: Modal danh sách các màn hình cá nhân

Hình 4.18.2: Modal hiển thị các thông báo

Bảng 4.24: Mô tả màn hình danh sách sản phẩm

Chức năng Mô tả chức năng

Hiển thị thông báo của người dùng (nếu chưa đăng nhập thì thông báo sẽ trống)

Chương 4: Thiết kế hệ thống 54

Thông tin tài khoản - Profile: chuyển sang trang thông tin của người dùng (nếu chưa đăng nhập thì chuyển về trang đăng nhập)

- History: chuyển sang trang lịch sử những đơn hàng của người dùng (nếu chưa đăng nhập thì chuyển về trang đăng nhập)

- Home: chuyển về trang chủ

- Log out: đăng xuất khỏi tài khoản hiện tại và chuyển về trang chủ (nếu chưa đăng nhập thì chuyển về trang chủ)

Expired Hiển thị danh sách tất cả các tài khoản theo thứ tự thời gian đấu giá còn lại tăng dần

Hiển thị danh sách tất cả các sản phẩm đấu giá theo loại sản phẩm được chọn

Các sản phẩm Chọn sản phẩm nào sẽ chuyển vào trang thông tin chi tiết của sản phẩm đó

Phân trang Chọn số trang để coi thêm các sản phẩm

4.7.5 Màn hình chi tiết sản phẩm

Chương 4: Thiết kế hệ thống 55

Hình 4.19: Màn hình chi tiết sản phẩm Bảng 4.25: Mô tả màn hình chi tiết sản phẩm

Chức năng Mô tả chức năng

Hiển thị hình ảnh đầu tiên của sản phẩm Chọn những hình ảnh còn lại để có thể coi rõ hơn về kiểu dáng của sản phẩm

Hiển thị tên, giá hiện tại của sản phẩm, giá để có thể lấy luôn sản phẩm, mô tả và bước giá của sản phẩm

Hiển thị thời gian còn lại của phiên đấu giá

Thông tin người đang bỏ giá

Hiển thị tên người đặt giá cùng số tiền đặt Để tham gia đấu giá, người dùng cần đặt giá sản phẩm bằng giá hiện tại cộng thêm bước giá Nếu người dùng chưa đăng nhập, hệ thống sẽ chuyển hướng về trang đăng nhập Sau khi nhấn nút, bảng thông tin về người đang bỏ giá sẽ được cập nhật theo thời gian thực mà không cần tải lại trang.

Chương 4: Thiết kế hệ thống 56

Mua luôn Cho người dùng mua ngay sản phẩm nếu muốn mua ở mức giá mua ngay của người đăng

Làm mới Reload lại trang

4.7.6 Màn hình đăng sản phẩm

Chương 4: Thiết kế hệ thống 57

Hình 4.20: Màn hình đăng sản phẩm Bảng 4.26: Mô tả màn hình đăng sản phẩm

Chức năng Mô tả chức năng

Hiển thị các textbox yêu cầu điền thông tin của sản phẩm, thông tin đấu giá của sản phẩm cần đăng

Thông báo Thông báo thiếu thông tin chỗ bị thiếu thông tin

Thông báo đăng sản phẩm thành công Đăng hình Cho phép người dùng đăng 1 hoặc nhiều tấm hình của sản phẩm

Submit Xác nhận người đăng đã cọc tiền và điền đầy đủ thông tin trước khi đăng sản phẩm đấu giá

Paypal Bắt buộc người bán phải đặt cọc tiền thông qua chuyển khoản bằng

Paypal trước khi đăng bán đấu giá để tránh bán hàng gian dối sẽ mất tiền đã đặt cọc

Chương 4: Thiết kế hệ thống 58

Để ngăn chặn tình trạng bán hàng gian dối, người bán được yêu cầu phải đặt cọc tiền thông qua chuyển khoản bằng thẻ trước khi tiến hành đăng bán đấu giá Việc này giúp bảo vệ quyền lợi của cả hai bên và đảm bảo rằng số tiền đặt cọc sẽ không bị mất.

4.7.7 Màn hình đang đấu giá - theo dõi đấu giá

Hình 4.21: Màn hình đang đấu giá - theo dõi đấu giá

Chương 4: Thiết kế hệ thống 59

Bảng 4.27: Mô tả màn hình lịch sử đấu giá

Chức năng "Đang theo dõi" cho phép người dùng xem thông tin về các sản phẩm mà họ đã đặt giá, trong khi chức năng "Đang đấu giá" hiển thị thông tin của các sản phẩm hiện đang trong quá trình đấu giá.

Trở lại Chuyển về trang chủ

Các sản phẩm đang theo dõi/ đấu giá

Chuyển qua trang thông tin chi tiết của sản phẩm đang đặt giá

Chương 4: Thiết kế hệ thống 60

Hình 4.22: Màn hình thanh toán

Chương 4: Thiết kế hệ thống 61

Bảng 4.28: Mô tả màn hình thanh toán

Chức năng Mô tả chức năng

Submit Điền đầy đủ thông tin và submit nếu bạn muốn thanh toán trực tiếp khi nhận hàng Sau đó chuyển về trang

Chương 4: Thiết kế hệ thống 62

Paypal Click paypal sẽ hiển thị màn hình đăng nhập của

Paypal sau khi đăng nhập và thanh toán xong nút paypal sẽ biến mất

TDebit or Credit Card Click sẽ hiện thị phần điền thông tin thanh toán thẻ sau khi thanh toán xong sẽ biến mất

Thank you Chuyển về trang chủ

4.7.9 Màn hình thông tin người dùng – hóa đơn – xác nhận thanh toán - lịch sử

Chương 4: Thiết kế hệ thống 63

Chương 4: Thiết kế hệ thống 64

Hình 4.23: Màn hình thông tin người dùng – hóa đơn – xác nhận thanh toán - lịch sử

Hình 4.23.1: Trạng thái nút lưu

Hình 4.23.2: Modal đánh giá đơn hàng

Chương 4: Thiết kế hệ thống 65

Hình 4.23.3: Modal thay đổi mật khẩu

Bảng 4.29: Mô tả màn hình thông tin người dùng

Chức năng Mô tả chức năng

Thông tin người dùng Hiển thị tên người dùng, địa chỉ, số điện thoại, số sao đánh giá,…

Chỉnh sửa (hình bút chì) Chỉnh sửa thông tin của chỗ được chọn và chuyển nút chỉnh sửa thành nút lưu

Lưu (hình ) Lưu thông tin được thay đổi và chuyển nút lưu thành nút sửa

Trở lại Chuyển trở về trang chủ

Thay đổi mật khẩu Hiển thị modal thay đổi mật khẩu để đặt lại mật khẩu

Hóa đơn hiển thị tên sản phẩm, số sao đánh giá, số tiền hiện tại và trạng thái của các sản phẩm đã được xác nhận thanh toán Đối với những sản phẩm chưa được đánh giá, khi người dùng nhấp vào, sẽ xuất hiện modal để đánh giá đơn hàng.

Modal đánh giá Sau khi đánh giá sẽ xuất hiện thông báo “Đánh giá đơn hàng thành công! Cảm ơn bạn!” và khóa đánh giá lại

Xác nhận thanh toán hiển thị thông tin gồm tên sản phẩm, số tiền đấu giá và trạng thái của các sản phẩm đã được đấu giá thành công Để xác nhận thanh toán, hãy chọn sản phẩm mong muốn và nhấn nút xác nhận.

Lịch sử Thông tin của những sản phẩm do tài khoản đó đã đăng lên đấu giá

Xác nhận Chuyển qua trang thanh toán của sản phẩm đó

Chương 4: Thiết kế hệ thống 66

4.7.10 Màn hình đăng nhập admin

Hình 4.24: Màn hình đăng nhập Admin Bảng 4.30: Mô tả màn hình đăng nhập Admin

Chức năng Mô tả chức năng

Login Đăng nhập tài khoản admin

Username Password Nhập username và password đã được cung cấp

4.7.11 Màn hình quản lý Admin

Chương 4: Thiết kế hệ thống 67

Hình 4.25: Màn hình quản lý user

Hình 4.26: Màn hình quản lý sản phẩm

Chương 4: Thiết kế hệ thống 68

Hình 4.26.1: Modal hình ảnh chi tiết sản phẩm

Hình 4.27: Màn hình quản lý hóa đơn

Chương 4: Thiết kế hệ thống 69

Hình 4.27.1: Modal thanh toán người bán

Hình 4.28: Màn hình duyệt sản phẩm

Chương 4: Thiết kế hệ thống 70

Hình 4.29: Màn hình thống kê doanh thu Bảng 4.31: Mô tả tổng quan màn hình trang Admin

Chức năng Mô tả chức năng

Quản lý user Xem thông tin tài khoản người dùng

Khóa Khóa những tài khoản có đánh giá thấp hơn 3 sao

Quản lý sản phẩm Thông tin tất cả các sản phẩm đang bán Chọn vào sản phẩm sẽ hiển thị hiển thị Modal thông tin sản phẩm

Modal thông tin sản phẩm

Hiển thị tất cả hình ảnh về sản phẩm Click chọn hình ảnh để hiển thị lớn hơn

Quản lý hóa đơn Thông tin tất cả các hóa đơn đã xác nhận thanh toán

Khi chọn vào đơn hàng có trạng thái “Hết hạn đổi” thì hiển thị modal thanh toán

Khi chọn vào đơn hàng có trạng thái “Đã nhận hàng” thì cho phép nút Hủy bỏ được click

Hủy bỏ Khi click sẽ hủy bỏ đơn hàng đó và đổi trạng thái thành

Chương 4: Thiết kế hệ thống 71

Duyệt sản phẩm Thông tin tất cả các sản phẩm đã được người dùng đăng đấu giá

Duyệt Khi click sẽ cho phép sản phẩm đấu giá được đăng lên

Thống kê doanh thu Chọn năm để hiển thị số tiền doanh thu của từng tháng trong năm đó

Chương 5: Kết quả, thực nghiệm và phân tích 72

KẾT QUẢ, THỰC NGHIỆM, PHÂN TÍCH

Kết quả đạt được

Về cơ bản, nhóm em đã tìm hiểu được:

- Tổng quan về công nghệ MEARN STACK, định nghĩa, cấu trúc cũng như cách hoạt động

- Hiểu được về cách thi triển xây dung website thông qua RESTful API

- Sử dụng Heroku để deploy backend và Firebase để deploy ứng dụng phía frontend

- Biết thêm một số kiến thức về thương mại điện tử, đấu giá trực tuyến và các loại hình thanh toán trực tuyến phổ biến – thanh toán bằng PayPal

Xây dựng một trang web đấu giá trực tuyến sử dụng công nghệ MEARN STACK, với các chức năng chính như đăng nhập hệ thống, đăng ký tài khoản, và đăng sản phẩm để người khác tham gia đấu giá Trang web cũng cho phép các thành viên tham gia đấu giá và quản lý các phiên đấu giá mà họ đã tham gia.

Ưu điểm

- Ứng dụng đơn giản dễ sử dụng

- Khả năng bảo trì, mở rộng dễ dàng và nhanh chóng

- Có áp dụng thanh toán bằng ví PayPal để người dùng có nhiều chọn lựa khi thanh toán

- Áp dụng công nghệ mới

- Giao diện cơ bản, dễ nhận diện.

Nhược điểm

- Chưa áp dụng real-time kiến cho sản phẩm còn nhiều bất cập

- Sản phẩm còn nhiều chỗ chưa hoàn thiện hoàn toàn

- Giao diện còn nhiều thiếu xót, chưa được bắt mắt

- Ứng dụng quản lý còn thiếu xót chưa hoàn chỉnh

- Nghiệp vụ làm việc còn đơn giản chưa có nhiều gợi ý cho khách hàng đặt lịch

- Vẫn có khả năng tồn tại lỗi

Chương 5: Kết quả, thực nghiệm và phân tích 73

Thực nghiệm

Về thực nghiệm, ứng dụng đã được triển khai tới người dùng đầu cuối thành công Website đấu giá trực tuyến hiện đang public tại địa chỉ:

AK AUCTION (webapp-4bf67.web.app)

Phân tích

Các thông số khi ứng dụng được deploy:

Hình 5.1: Thông số của MongoDB Atlas

Hình 5.2: Thông số của Firebase

Chương 6: Kết luận và hướng phát triển 74

Ngày đăng: 07/06/2022, 22:41

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] MEARN STACK là gì? https://viblo.asia/p/gioi-thieu-mern-stack-bWrZnv4vZxw Link
[2] MongoDB là gì? https://topdev.vn/blog/mongodb-la-gi/ Link
[3] Express là gì? https://topdev.vn/blog/express-js-la-gi/ Link
[4] React là gì? https://www.hostinger.vn/huong-dan/react-la-gi-va-no-hoat-dong-nhu-the-nao/ Link
[5] NodeJS là gì? https://freetuts.net/nodejs-la-gi-584.html [6] Heroku là gì? https://topdev.vn/blog/heroku-la-gi/ Link
[7] RESTful API là gì? https://movan.vn/rest-api-gioi-thieu-rest-api/ Link
[8] JWT là gì? https://techmaster.vn/posts/33959/khai-niem-ve-json-web-token Link

HÌNH ẢNH LIÊN QUAN

Hình 2.1: MEARN STACK  2.1.1 MongoDB là gì? - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 2.1 MEARN STACK 2.1.1 MongoDB là gì? (Trang 12)
Hình 2.5: NodeJs  2.1.4.1 Khái niệm - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 2.5 NodeJs 2.1.4.1 Khái niệm (Trang 17)
Hình 2.6: Cách hoạt động của JWT - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 2.6 Cách hoạt động của JWT (Trang 19)
Hình 2.7: Thành phần của JWT - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 2.7 Thành phần của JWT (Trang 20)
Hình 2.8: Khái niệm Heroku - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 2.8 Khái niệm Heroku (Trang 21)
Hình 2.10 Firebase - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 2.10 Firebase (Trang 22)
Bảng 3: Yêu cầu chức năng Admin - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Bảng 3 Yêu cầu chức năng Admin (Trang 28)
Hình 4.1: Sơ đồ Use Case - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 4.1 Sơ đồ Use Case (Trang 30)
Bảng 6: Use case đăng kí - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Bảng 6 Use case đăng kí (Trang 31)
Bảng 4.16: Use case thanh toán - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Bảng 4.16 Use case thanh toán (Trang 38)
Hình 4.2: Activity đăng nhập - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 4.2 Activity đăng nhập (Trang 41)
Hình 4.3: Activity đăng kí - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 4.3 Activity đăng kí (Trang 42)
Hình 4.4: Activity xem danh sách sản phẩm - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 4.4 Activity xem danh sách sản phẩm (Trang 43)
Hình 4.7: Activity đặt giá - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 4.7 Activity đặt giá (Trang 45)
Hình 4.8: Activity duyệt sản phẩm - Xây dựng website đấu giá trực tuyến sử dụng công nghệ mern stack
Hình 4.8 Activity duyệt sản phẩm (Trang 46)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w