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

Báo cáo thực tập tốt nghiệp tên Đề tài xây dựng api cho website bán hàng thương mại Điện tử

54 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 Api Cho Website Bán Hàng Thương Mại Điện Tử
Tác giả Nguyễn Hải Đăng
Người hướng dẫn Đào Duy Tùng
Trường học Trường Đại Học Tài Nguyên Và Môi Trường Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo thực tập tốt nghiệp
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 54
Dung lượng 5,18 MB

Cấu trúc

  • 1. Lý do chọn đề tài (8)
  • 2. M ục đích chọn đề tài (9)
  • 3. Phạ m vi nghiên c u ........................................... ứ Error! Bookmark not defined. - Xây dựng các ch ức năng giành cho ngườ i dùng và admin Error! Bookmark (0)
  • 1. NodeJs (12)
  • 2. Npm (13)
  • 3. Yarn (13)
  • 4. Bcrypt (15)
  • 5. Body parser (15)
  • 6. JsonWebToken (15)
  • 7. Multer (16)
  • 8. Mongoose (17)
  • 9. Mô hình MVC (17)
  • 10. Cơ chế middleware (18)
  • CHƯƠNG 2 PHÂN TÍCH THIẾ T KẾ CH ỨC NĂNG NGHIỆ P VỤ XÂY DỰNG (0)
    • 1. Chức năng xác thự c , phân quy n ............................................................ 21 ề (21)
      • 1.1 Chức năng đăng ký tài khoả n (21)
      • 1.2 Chức năng đăng nhậ p (23)
      • 1.3 Cơ chế phân quy n ............................................................................ 23 ề (23)
      • 1.4 Sơ đồ usecase t ng quát cho c h ổ ả ệ thố ng (24)
    • 2. Về phía ngườ i dùng (24)
      • 2.1 Biểu đồ Usecase t ng quát ................................................................. 24 ổ 2.2. Các ch ức năng .................................................................................... 25 2. Chức năng danh sách sả n ph m ..................................................... 25ẩ (0)
        • 2.2.3 Chức năng sửa thông tin người dùng (28)
        • 2.2.4 Module Giỏ hàng (29)
        • 2.2.5 Thêm giỏ hàng (0)
        • 2.2.6 S ửa giỏ hàng (0)
        • 2.2.7 Xoá giỏ hàng (0)
        • 2.2.8 Danh sách giỏ hàng (33)
        • 2.2.9 Thanh toán (34)
      • 3.1 Module User (Tài khoả n) (35)
      • 3.2 Danh sách tài khoả n (35)
      • 3.3 Thông tin chi tiế t tài kho n ................................................................. 36 ả (0)
      • 3.4 Xoá tài khoả n (37)
      • 3.5 Module Sả n ph m ............................................................................... 39 ẩ (0)
      • 3.6 Chức năng danh sách sả n ph m ........................................................ 39 ẩ (39)
      • 3.7 Chức năng thêm sả n ph ẩm mớ i (40)
      • 3.8 Chứ c năng s ử a thông tin s n ph m..................................................... 41 ả ẩ (41)
      • 3.9 Chức năng xoá sả n ph m .................................................................... 42 ẩ (42)
      • 3.10 Chức năng tìm kiếm sản phẩm (44)
      • 3.11 Module Voucher (45)
      • 3.12 Thêm Voucher (46)
      • 3.13 Chứ c năng s ử a voucher (47)
      • 3.14 Chức năng xoá voucher (48)
      • 3.15 Module Thố ng kê (0)
      • 3.16 Module đơn hàng (50)
      • 3.17 Chức năng danh sách đơn hàng (50)
  • Kết luận (53)

Nội dung

Em xin trân tr ng g i l i cọ ử ờ ảm ơn đến Ban Lãnh Đạo, các phòng ban của Công ty FPT Telecom đã tạo điều ki n thu n ệ ậlợi cho em được tìm hiểu cũng như trải nghiệm thực tế trong suốt

M ục đích chọn đề tài

Việc lựa chọn đề tài này có thể phục vụ nhiều mục đích khác nhau, tùy thuộc vào nhu cầu của đối tượng và mục tiêu kinh doanh Dưới đây là một số mục đích phổ biến mà bạn có thể tham khảo.

Mục đích chính của việc xây dựng API là tích hợp trang web bán hàng với các hệ thống khác như cổng thanh toán, quản lý kho, vận chuyển, và các dịch vụ bên thứ ba như mạng xã hội Điều này giúp tạo ra một hệ thống hoạt động mượt mà, liên kết các phần khác nhau của doanh nghiệp.

API cung cấp cơ hội để mở rộng và phát triển chức năng của trang web bán hàng một cách dễ dàng Điều này giúp doanh nghiệp nhanh chóng thích ứng với thị trường và nhu cầu khách hàng mới mà không cần phải xây dựng lại toàn bộ hệ thống.

API đa nền tảng cho phép trang web bán hàng tương tác hiệu quả với ứng dụng di động và các dịch vụ khác trên nhiều thiết bị khác nhau Điều này mang lại sự linh hoạt và tiện lợi cho người dùng, giúp họ dễ dàng truy cập và sử dụng dịch vụ trên nhiều nền tảng.

Tối ưu hóa quy trình phát triển bằng cách sử dụng API giúp tách biệt phần giao diện và phần logic, từ đó làm cho quy trình phát triển trở nên dễ quản lý hơn Điều này không chỉ giúp việc phát triển mà còn cả việc bảo trì trang web trở nên hiệu quả hơn.

Bảo mật và quản lý truy cập API là yếu tố quan trọng giúp kiểm soát quyền truy cập, bảo vệ dữ liệu và thông tin quan trọng Điều này đặc biệt cần thiết trong môi trường thương mại điện tử, nơi mà an ninh thông tin luôn được đặt lên hàng đầu.

API giúp nâng cao trải nghiệm người dùng bằng cách cung cấp thông tin sản phẩm, giảm thời gian tải trang và tối ưu hóa giao diện Điều này cho phép tích hợp các tính năng mới, tạo ra trải nghiệm người dùng tốt hơn.

Chương trình thực tập dành cho BackEnd Developer nhằm giúp sinh viên nắm vững kiến thức về lập trình API cho website, đồng thời rèn luyện kỹ năng lập trình, tư duy logic Sinh viên cũng sẽ được phát triển các kỹ năng mềm như làm việc nhóm và giao tiếp Tại công ty, họ có cơ hội học hỏi, khám phá và làm việc trong môi trường phát triển phần mềm chuyên nghiệp.

3.1 Tìm hi u công ty và các k ể ỹ năng cơ bản trong công ty

Công ty chúng tôi chuyên cung cấp dịch vụ và sản phẩm chất lượng cao Qua phần giới thiệu từ người phụ trách, bạn sẽ hiểu rõ hơn về quá trình hình thành và phát triển của công ty, cũng như quy trình làm việc hiệu quả Chúng tôi cam kết áp dụng các quy tắc nghiêm ngặt để tổ chức công việc một cách chuyên nghiệp và đồng bộ.

Ngoài ra, việc tự tập sinh còn được giới thiệu về các quy trình làm việc trong công ty, bao gồm thời gian làm việc, các quy định cần tuân thủ và cách sử dụng email trong công việc.

Kỹ năng sử dụng email trong công việc là rất quan trọng, giúp cải thiện quy trình giao tiếp và làm việc hiệu quả hơn Việc thiết lập và phát triển một hệ thống quản lý email hợp lý không chỉ giúp tăng cường trách nhiệm cá nhân mà còn tạo ra sự chuyên nghiệp trong công việc Nghiên cứu kỹ thuật sử dụng email sẽ mang lại nhiều lợi ích cho người lao động, bao gồm khả năng lập kế hoạch tốt hơn và tuân thủ các quy định trong môi trường làm việc.

3.2.1 Tìm hi u công nghể ệ NodeJS && ExpressJS

Tìm hiểu về cú pháp và cấu trúc của Node.js, các module cơ bản, cũng như các hàm để xử lý bất đồng bộ Khám phá framework ExpressJS để xây dựng ứng dụng, kiểm thử, và tối ưu hiệu suất cũng như bảo mật dữ liệu.

3.2.2 Tìm hi u công ngh MongoBD ể ệ

Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình cơ bản MongoDB, bao gồm cú pháp và cách sử dụng các câu truy vấn cùng với các toán tử xử lý dữ liệu Bên cạnh đó, chúng tôi sẽ trình bày cách tạo và quản lý các chỉ mục (index) trong MongoDB để tối ưu hiệu suất Cuối cùng, bài viết cũng đề cập đến việc quản lý quyền truy cập cho người dùng, giúp đảm bảo an toàn và hiệu quả trong việc sử dụng cơ sở dữ liệu.

2.3.3 Tìm hiểu các thư viện

N i dung : Tìm hiộ ểu cách cài đặt và s d ng các library h ử ụ ỗtrợ cho đề tài thực tập

2.3.4 Tìm hi u v mô hình MVC và HTTP Request & ể ề

N i dung : Tìm hi u sâu v mô hình MVC và HTTP Request, ộ ể ề RestFul Api để xây dựng api,và cơ chế xác thực và phân quyền người dùng

Phần 3 : PHẦN N I DUNG VÀ CHI TIỘ ẾT ĐỀ TÀI

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

Node.js là một hệ thống phần mềm lý tưởng để phát triển các ứng dụng internet mở rộng, đặc biệt là máy chủ web Được viết bằng JavaScript, Node.js sử dụng kỹ thuật điều khiển sự kiện và nhập/xuất không đồng bộ nhằm giảm thiểu chi phí tổng thể và tối đa hóa khả năng mở rộng Hệ thống này bao gồm V8 JavaScript engine của Google, libUV, cùng với một số thư viện khác.

Node.js được tạo bởi Ryan Dahl từ năm 2009, và phát triển dưới sự bảo trợ của Joyent

Mục tiêu ban đầu của Dahl là phát triển một trang web có khả năng push tương tự như các ứng dụng web như Gmail Sau khi thử nghiệm với nhiều ngôn ngữ lập trình, Dahl đã chọn Javascript do API Nhập/Xuất của nó không đầy đủ, cho phép anh định nghĩa một quy ước Nhập/Xuất theo sự kiện và không bị chặn Một số môi trường tương tự cũng đã được phát triển bằng các ngôn ngữ khác, bao gồm Twisted cho Python và Perl Object.

Environment cho Perl, libevent cho C và EventMachine cho Ruby Khác với hầu hết các chương trình Javascript,

NodeJs

Node.js là một nền tảng phần mềm mạnh mẽ, được thiết kế để phát triển các ứng dụng internet có khả năng mở rộng, đặc biệt là máy chủ web Với việc sử dụng JavaScript, Node.js áp dụng kỹ thuật điều khiển theo sự kiện và nhập/xuất không đồng bộ nhằm giảm thiểu chi phí và tối ưu hóa khả năng mở rộng Nền tảng này bao gồm động cơ V8 JavaScript của Google, libUV, cùng với một số thư viện khác, mang lại hiệu suất cao cho các ứng dụng web.

Node.js được tạo bởi Ryan Dahl từ năm 2009, và phát triển dưới sự bảo trợ của Joyent

Mục tiêu ban đầu của Dahl là phát triển một trang web có khả năng push tương tự như các ứng dụng web như Gmail Sau khi thử nghiệm với nhiều ngôn ngữ, anh đã chọn Javascript do API Nhập/Xuất không đầy đủ, cho phép định nghĩa quy ước Nhập/Xuất điều khiển theo sự kiện và không chặn Một số môi trường tương tự cũng đã được xây dựng bằng các ngôn ngữ khác như Twisted cho Python và Perl Object.

Environment cho Perl, libevent cho C và EventMachine cho Ruby Khác với hầu hết các chương trình Javascript,

Node.js hoạt động trên máy chủ thay vì trên trình duyệt, sử dụng các đặc điểm kỹ thuật của CommonJS Nó cũng cung cấp môi trường REPL để thực hiện kiểm thử tương tác hiệu quả.

Node.js được InfoWorld bình chọn là "Công nghệ của năm" vào năm 2012

• Express.js được s d ng ph biử ụ ổ ến để phát tri n ng d ng ể ứ ụ trên n n Nodejs ề

• Electron.js được s dử ụng để phát triển ứng dụng được s ử d ng trên ụ môi trường desktop.

Npm

npm (vi t t t c a Node Package Manager / nodepm ế ắ ủ

(pkgmakeinst) là chương trình quản lý thư viện mặc định trong môi trường Node.js, bao gồm một trình giao diện dòng lệnh (CLI) có tên gọi là npm Nó kết nối với cơ sở dữ liệu trực tuyến chứa các gói công khai và riêng tư, được gọi là npm registry Người dùng có thể truy cập npm registry thông qua npm client hoặc trình duyệt web, và tất cả đều được quản lý trực tiếp bởi npm, Inc.

Yarn

Yarn là công cụ quản lý gói phần mềm mạnh mẽ cho dự án, cho phép người dùng không chỉ sử dụng các gói phần mềm mà còn chia sẻ chúng với các lập trình viên trên toàn cầu Yarn thực hiện các công việc với tốc độ nhanh, bảo mật cao và đáng tin cậy Mọi mã nguồn được chia sẻ thường được gọi là package (gói phần mềm) hoặc module (mô đun phần mềm) Tất cả các gói được sử dụng sẽ được mô tả trong file package.json nằm trong thư mục gốc của dự án.

Bcrypt

Bcrypt là một hàm mã hóa mật khẩu mạnh mẽ, được thiết kế bởi Niels Provos và David Mazières, dựa trên các thuật toán mã hóa Blowfish Hàm này lần đầu tiên được giới thiệu tại hội nghị USENIX vào năm 1999.

1999 Nó là s k t h p c a c ba khái ni m ta vự ế ợ ủ ả ệ ừa tìm hiểu

Body parser

Body parser là một thành phần middleware quan trọng thường được sử dụng trong các ứng dụng web để xử lý dữ liệu từ người dùng gửi đến server thông qua các yêu cầu HTTP, đặc biệt là trong ngữ cảnh của Node.js và Express.js Khi người dùng gửi dữ liệu từ biểu mẫu trên trình duyệt, dữ liệu đó thường được gửi dưới dạng yêu cầu HTTP POST hoặc PUT Body parser giúp server đọc và phân tích dữ liệu từ phần thân của yêu cầu này để trích xuất thông tin cần thiết, bao gồm dữ liệu form, dữ liệu JSON, hoặc các loại dữ liệu khác tùy thuộc vào cách yêu cầu được xây dựng.

Trong môi trường Node.js và Express.js, việc tích hợp body parser thông qua middleware như body-parser giúp xử lý dữ liệu từ client và chuyển đổi chúng thành các đối tượng dễ dàng thao tác trong mã nguồn server.

JsonWebToken

JSON Web Token (JWT) là một tiêu chuẩn (RFC 7519) cho phép truyền thông tin an toàn giữa các bên dưới dạng đối tượng JSON JWT thường được sử dụng để xác thực và phân quyền người dùng trong các ứng dụng web và dịch vụ web.

- Header: Chứa thông tin về cách JWT được ký và mã hóa Thông thường, header sẽ có hai trường quan trọng: "alg" (algorithm - thu t toán) và "typ" (type - ậ loại)

- Payload: Chứa các thông tin c n truyầ ền Payload thường bao g m các mồ ục như thông tin về người dùng, quy n h n, ề ạ ho c b t k d u tùy ch nh nào mà ng d ng c n ặ ấ ỳ ữliệ ỉ ứ ụ ầ

Chữ ký trong JWT được tạo ra bằng cách kết hợp thông tin từ header và payload cùng với một khóa bí mật, nhằm tạo ra chữ ký số Chữ ký này đóng vai trò quan trọng trong việc xác minh tính toàn vẹn của JWT, đảm bảo rằng dữ liệu không bị thay đổi trong quá trình truyền tải và xác nhận rằng nó được phát hành bởi một bên đáng tin cậy.

JSON Web Token (JWT) là một phương thức phổ biến để xác thực người dùng sau khi đăng nhập Sau khi người dùng xác thực thành công, server sẽ tạo và ký JWT, sau đó gửi lại cho người dùng Người dùng có thể sử dụng JWT này trong mỗi yêu cầu gửi đến server để chứng minh quyền truy cập của mình.

Trong môi trường Node.js, thư viện jsonwebtoken thường được s dử ụng để ạ t o và xác minh JWT m t cách d dàng ộ ễ

Multer

Multer là một middleware Node.js được sử dụng để xử lý việc tải lên tệp tin trong các ứng dụng web Khi người dùng tải lên một tệp tin qua biểu mẫu trên trình duyệt, Multer hỗ trợ server trong việc xử lý và lưu trữ tệp tin đó một cách hiệu quả.

Multer là một middleware tích hợp với Express.js, một framework web phổ biến cho Node.js Khi sử dụng Multer, bạn có thể đơn giản hóa quá trình xử lý tệp tin được tải lên và truy xuất dữ liệu của nó trên server.

Mongoose

Mongoose là thư viện JavaScript được sử dụng trong môi trường Node.js và MongoDB, giúp tương tác với cơ sở dữ liệu MongoDB thông qua mã nguồn JavaScript hoặc TypeScript MongoDB là hệ thống quản lý cơ sở dữ liệu NoSQL, và Mongoose giúp việc làm việc với MongoDB trở nên dễ dàng và linh hoạt hơn.

Mongoose cung cấp một giao diện đối tượng (Object-Document Mapping - ODM) cho MongoDB, giúp bạn định nghĩa cấu trúc dữ liệu, kiểm soát quyền truy cập và thực hiện các truy vấn cơ sở dữ liệu một cách thuận tiện bằng cách sử dụng JavaScript hoặc TypeScript.

Mô hình MVC

Mô hình MVC (Model-View-Controller) là một kiến trúc thiết kế phổ biến trong phát triển phần mềm, giúp tách biệt các thành phần của ứng dụng và tổ chức mã nguồn một cách rõ ràng Mô hình này bao gồm ba thành phần chính: Model, View và Controller, mỗi thành phần đảm nhận một vai trò cụ thể trong việc quản lý dữ liệu, giao diện người dùng và logic điều khiển.

Mô hình là thành phần quan trọng trong việc quản lý dữ liệu và logic xử lý dữ liệu Nó đại diện cho cấu trúc dữ liệu, lưu trữ thông tin và thực hiện các thao tác như truy xuất, cập nhật và xóa dữ liệu Mô hình không liên quan đến giao diện người dùng hoặc cách thức hiển thị dữ liệu.

View là thành phần hiển thị dữ liệu cho người dùng và cho phép họ tương tác Nó đại diện cho giao diện người dùng, bao gồm các trang web, cửa sổ ứng dụng và các phương tiện tương tác khác View chỉ hiển thị dữ liệu nhận từ Model mà không thực hiện bất kỳ logic xử lý nào.

Controller là thành phần trung tâm chịu trách nhiệm xử lý sự kiện từ người dùng, tương tác với Model để cập nhật dữ liệu và điều khiển cách dữ liệu được hiển thị trong View Nó hoạt động như một trung tâm điều khiển luồng thông tin giữa Model và View, quyết định cách thức hiển thị và cập nhật dữ liệu dựa trên hành động của người dùng.

Quy trình hoạt động c ủa mô hình MVC thườ ng di n ra theo cách sau: ễ

- Ngườ i dùng tương tác v ớ i giao diện người dùng (View)

- View gửi thông tin v s ki n t i Controller ề ự ệ ớ

- Controller xử lý sự ện, tương tác với Model để ậ ki c p nh t d ậ ữ liệu

- Model thông báo cho Controller khi dữ liệu đã được cập nhật

- Controller cập nh t View v ậ ới dữ liệu mới

View hiển th d u m ị ữ liệ ới cho ngườ i dùng

Mô hình MVC giúp tăng tính mô đun, tái sử - dụng mã nguồn, và dễ bảo trì bằng cách chia ứng d ng thành các ph ụ ần độ ập nhau c l

Cơ chế middleware

Middleware là ph n mầ ềm trung gian để ế k t n i các thành phố ần trong hệ thống, ph m m m hay service ầ ề

Trong lập trình backend, middleware đóng vai trò quan trọng trong việc xử lý và truyền tải thông tin giữa Request và Response Nó giúp tiếp nhận và xử lý dữ liệu, hỗ trợ cho các middleware tiếp theo hoặc cho chính Request/Response đó.

Express.js là một framework web dựa trên Node.js, cung cấp cách đơn giản và nhanh chóng để phát triển ứng dụng web và API Nó giúp tối ưu hóa quá trình phát triển bằng cách cung cấp các tính năng và công cụ hữu ích, giúp lập trình viên dễ dàng xây dựng ứng dụng của mình.

Dướ i đây là m ộ ố t s đi ểm quan tr ng về Express.js: ọ

Express.js là một framework mạnh mẽ cho Node.js, tập trung vào sự linh hoạt và đơn giản Nó cho phép lập trình viên tự do lựa chọn cách tổ chức mã nguồn của họ và tích hợp các thành phần khác nhau một cách dễ dàng.

Express.js cung cấp một hệ thống định tuyến mạnh mẽ, cho phép xác định cách người dùng xử lý các yêu cầu từ phía người dùng Điều này giúp tạo ra các tuyến đường dễ đọc và quản lý, nâng cao hiệu quả trong việc phát triển ứng dụng web.

Middleware là một khái niệm quan trọng trong Express.js, cho phép thêm các chức năng xử lý giữa yêu cầu được nhận và phản hồi được gửi đi Điều này hỗ trợ trong việc xử lý các nhiệm vụ như xác thực, ghi log, nén dữ liệu, và nhiều chức năng khác.

Express.js không đi kèm với một template engine mặc định, nhưng nó hỗ trợ nhiều engine phổ biến như EJS, Pug (trước đây gọi là Jade) và Handlebars Điều này tạo điều kiện thuận lợi cho lập trình viên trong việc tạo và quản lý giao diện người dùng một cách dễ dàng.

Cộng đồng lớn xung quanh Express.js đã phát triển nhiều thư viện middleware và công cụ bổ sung, giúp mở rộng khả năng của framework Những công cụ này bao gồm xử lý CORS và quản lý phiên làm việc, mang lại sự linh hoạt và tiện ích cho các ứng dụng web.

- RESTFUL API : Express.js thường đượ c s d ử ụng để xây d ng RESTful APIs, ự giúp t o ra các d ch v web chuyên nghi p và d dàng tích h p v i các ng d ạ ị ụ ệ ễ ợ ớ ứ ụng khác

- Phát tri n nhanh chóng : ể Nhờ vào cú pháp đơn giản và c u trúc t ấ ổ chứ c linh ho ạt, Express.js giúp phát triển ng d ng nhanh chóng và hi u qu ứ ụ ệ ả

Express.js là một l a ch n ph bi n trong c ự ọ ổ ế ộng đồng Node.js và thường đượ c s d ng ử ụ để xây dựng cả các ứng d ng web nh và l n ụ ỏ ớ

PHÂN TÍCH THIẾ T KẾ CH ỨC NĂNG NGHIỆ P VỤ XÂY DỰNG

Chức năng xác thự c , phân quy n 21 ề

1.1 Chức năng đăng ký tài khoản

Biểu đồ tuần tự chức năng đăng ký tài khoản

Người dùng mở form đăng ký

Form đăng ký hiển thị và người dùng nhập thông tin đăng ký Form gửi yêu cầu đăng ký tới hệ thống

Hệ thống kiểm tra thông tin đăng ký và tính hợp lệ

Nếu thông tin hợp lệ, hệ thống lưu thông tin tài khoản vào cơ sở dữ liệu "users" và xác nhận đăng ký

Hệ thống hiển thị thông báo đăng ký cho người dùng

Biểu đồ tuần tự chức năng đăng nhập :

Người dùng mở form đăng nhập

Form đăng nhập hiển thị và người dùng nhập thông tin đăng nhập

Form gửi yêu cầu đăng nhập tới hệ thống.

Hệ thống kiểm tra thông tin đăng nhập và tính hợp lệ.

Nếu thông tin hợp lệ, hệ thống gửi token và lưu dưới cookie

Hệ thống hiển thị thông báo đăng nhập thành công cho người dùng

Khi người dùng đăng nhập vào tài khoản, nếu họ có quyền admin, họ sẽ có khả năng thao tác với tất cả các module dành cho admin Ngược lại, nếu người dùng chỉ có quyền user, họ sẽ chỉ được phép thao tác với các module dành cho user.

1.4 Sơ đồ usecase t ng quát cho c hổ ả ệ thống

Về phía ngườ i dùng

2.1 Biểu đồ Usecase t ng quát cho lu ng nghi p v user ổ ồ ệ ụ

Khi người dùng chưa đăng nhập, họ chỉ có thể sử dụng Module sản phẩm và không thể thêm sản phẩm vào giỏ hàng Sau khi đăng nhập, người dùng sẽ có quyền truy cập vào các chức năng đầy đủ bao gồm Module sản phẩm, Module giỏ hàng, Module cá nhân, Module thanh toán, và Module đơn hàng.

2.2.1 Chức năng danh sách sản phẩm

Biểu đồ tuần tự chức năng danh sách sản phẩm

Khi người dùng truy cập vào màn hình danh sách sản phẩm, hệ thống sẽ gửi yêu cầu lấy danh sách sản phẩm từ cơ sở dữ liệu Sau đó, hệ thống sẽ thực hiện truy vấn và hiển thị kết quả lên màn hình cho người dùng.

Biểu đồ tuần tự chi ti t s n ph m ế ả ẩ

Người dùng chọn sản phẩm cần xem chi tiết

Form chi tiết sản phẩm hiển thị và gửi yêu cầu truy vấn thông tin sản phẩm tới hệ thống

Hệ thống trả về chi tiết sản phẩm từ cơ sở dữ liệu

Form hiển thị chi tiết sản phẩm cho người dùng

2.2.3 Chức năng sửa thông tin người dùng

Biểu đồ tuần tự chức năng sửa thông tin người dùng

Người dùng mở form sửa thông tin profile

Form sửa thông tin profile hiển thị và người dùng nhập thông tin mới

Form gửi yêu cầu sửa thông tin profile tới hệ thống

Hệ thống kiểm tra thông tin mới và cập nhật thông tin profile trong cơ sở dữ liệu

Hệ thống xác nhận cập nhật và hiển thị thông báo cho người dùng

2.2.4 Module Giỏ hàng Ở module này user có thể s dử ụng được các chức năng : Danh sách gi hàng ỏ

S a sử ố lượng s n ph m trong gi hàng ả ẩ ỏ

Xoá s n ph m trong gi hàng ả ẩ ỏ

Biểu đồ tuần tự chức năng thêm giỏ hàng

Người dùng chọn sản phẩm để thêm vào giỏ hàng

Form chi tiết sản phẩm hiển thị và gửi yêu cầu truy vấn thông tin sản phẩm tới hệ thống

Hệ thống trả về chi tiết sản phẩm từ cơ sở dữ liệu

Người dùng có thể nhập số lượng sản phẩm mà họ muốn thêm vào giỏ hàng Sau khi nhập xong, họ sẽ gửi yêu cầu cập nhật giỏ hàng đến hệ thống để hoàn tất quá trình thêm sản phẩm.

Hệ thống cập nhật giỏ hàng và hiển thị thông báo thêm sản phẩm thành công cho người dùng

Biểu đồ tuần tự chức năng sửa thông tin giỏ hàng

Người dùng có thể mở giỏ hàng để kiểm tra thông tin các sản phẩm đã thêm Khi đó, form giỏ hàng sẽ hiển thị và gửi yêu cầu truy vấn thông tin tới hệ thống để lấy dữ liệu cần thiết.

Hệ thống trả về chi tiết giỏ hàng từ cơ sở dữ liệu

Người dùng chọn sản phẩm cần sửa thông tin trong giỏ hàng

Hệ thống hiển thị thông tin chi tiết sản phẩm và người dùng nhập số lượng mới

Người dùng sửa thông tin giỏ hàng và form gửi yêu cầu cập nhật giỏ hàng tới hệ thống

Hệ thống cập nhật giỏ hàng và hiển thị thông báo sửa thông tin giỏ hàng thành công cho người dùng

Biểu đồ tuần tự chức năng xoá gi hàng ỏ

Người dùng có thể mở giỏ hàng để kiểm tra thông tin các sản phẩm đã thêm vào Khi mở giỏ hàng, một biểu mẫu sẽ hiển thị và gửi yêu cầu truy vấn thông tin giỏ hàng đến hệ thống.

Hệ thống trả về chi tiết giỏ hàng từ cơ sở dữ liệu

Người dùng chọn sản phẩm cần xóa khỏi giỏ hàng

Hệ thống hiển thị thông tin chi tiết sản phẩm và yêu cầu xác nhận xóa

Người dùng xác nhận xóa sản phẩm và form gửi yêu cầu xóa sản phẩm tới hệ thống

Hệ thống giỏ hàng tự động cập nhật bằng cách loại bỏ các sản phẩm đã xóa và hiển thị thông báo xác nhận xóa sản phẩm thành công cho người dùng Danh sách giỏ hàng sẽ luôn phản ánh chính xác các mặt hàng hiện có.

Khi người dùng truy cập vào màn hình danh sách giỏ hàng, hệ thống sẽ gửi yêu cầu lấy danh sách giỏ hàng từ cơ sở dữ liệu Sau đó, hệ thống sẽ nhận kết quả và hiển thị thông tin giỏ hàng lên màn hình cho người dùng.

Biểu đồ tuần tự chức năng thanh toán giỏ hàng

Người dùng mở giỏ hàng để thanh toán

Form thanh toán hiển thị và gửi yêu cầu truy vấn thông tin giỏ hàng tới hệ thống

Hệ thống trả về chi tiết giỏ hàng từ cơ sở dữ liệu

Người dùng chọn phương thức thanh toán và nhập thông tin thanh toán

Hệ thống kiểm tra và áp dụng voucher nếu có

Form gửi yêu cầu xử lý thanh toán tới hệ thống

Hệ thống xử lý thanh toán và xác nhận thanh toán thành công

Hệ thống hiển thị thông báo thanh toán thành công cho người dùng

3.0 Sơ đồ usecase t ng quát cho ổ luồng nghi p v adminệ ụ

3.1 Module User (Tài khoản) Ở module này admin có thể s dử ụng được các chức năng : 3.2 Danh sách tài kho n ả

Biểu đồ tuần tự ch ức năng danh sách tài khoả n

Khi người dùng truy cập vào màn hình danh sách tài khoản, hệ thống sẽ gửi yêu cầu lấy danh sách tài khoản từ cơ sở dữ liệu Sau đó, hệ thống sẽ thực hiện truy vấn và hiển thị kết quả lên màn hình cho người dùng.

3.3 Thông tin chi ti t tài kho n ế ả

Người dùng chọn tài khoản cần xem chi tiết.

Modal chi tiết tài khoản hiển thị và gửi yêu cầu truy vấn thông tin sản phẩm tới hệ thống

Hệ thống trả về chi tiết tài khoản từ cơ sở dữ liệu.

Form hiển thị chi tiết tài khoản cho người dùng.

Người dùng có thể mở danh sách tài khoản để xem thông tin chi tiết Danh sách này sẽ hiển thị và gửi yêu cầu truy vấn thông tin tài khoản đến hệ thống.

Hệ thống trả về chi tiết tài khoản từ cơ sở dữ liệu.

Người dùng chọn tài khoản cần xóa khỏi danh sách

Hệ thống hiển thị thông tin chi tiết sản phẩm và yêu cầu xác nhận xóa

Người dùng xác nhận xóa tài khoản và form gửi yêu cầu xóa tài khoản tới hệ thống

Hệ thống cập nhật giỏ hàng bằng cách loại bỏ tài khoản đã xóa và hiển thị thông báo xóa tài khoản thành công cho người dùng.

Sơ đồ Usecase cho module sản phẩm Ở module này , admin có th thao tác v i các chức năng như ể ớ xem danh sách s n ph m , thêm ,s a,xoá s n ph m ả ẩ ử ả ẩ

3.6 Chức năng danh sách sản ph m ẩ

Biểu đồ tuần tự chức năng danh sách sản phẩm

Khi người dùng truy cập vào màn hình danh sách sản phẩm, hệ thống sẽ gửi yêu cầu lấy danh sách sản phẩm từ cơ sở dữ liệu Sau đó, hệ thống sẽ truy vấn và nhận dữ liệu, cuối cùng hiển thị danh sách sản phẩm lên màn hình.

3.7 Chức năng thêm sản ph m mẩ ới

Người dùng mở form thêm sản phẩm và nhập thông tin vào form thêm sản phẩm gửi thông tin thêm tới hệ thống.

Hệ thống nhận thông tin thêm và truy vấn thông tin sản phẩm từ cơ sở dữ liệu

Cơ sở dữ liệu trả về thông tin sản phẩm cho hệ thống

Hệ thống cập nhật thông tin sản phẩm trong cơ sở dữ liệu và xác nhận thêm mới

Hệ thống thông báo kết quả cập nhật cho người dùng

3.8 Chức năng sửa thông tin s n phả ẩm

Biểu đồ Tuần tự sửa sản phẩm

Người dùng mở form sửa sản phẩm và nhập thông tin cần sửa Form sửa sản phẩm gửi thông tin sửa tới hệ thống

Hệ thống nhận thông tin sửa và truy vấn thông tin sản phẩm từ cơ sở dữ liệu

Cơ sở dữ liệu trả về thông tin sản phẩm cho hệ thống

Hệ thống cập nhật thông tin sản phẩm trong cơ sở dữ liệu và xác nhận cập nhật

Hệ thống thông báo kết quả cập nhật cho người dùng

3.9 Chức năng xoá sản ph m ẩ

Biểu đồ tuần tự chức năng xoá sản phẩm

Người dùng chọn sản phẩm cần xóa

Người dùng gửi yêu cầu xóa sản phẩm tới hệ thống

Hệ thống xác nhận yêu cầu xóa và thực hiện xóa sản phẩm khỏi cơ sở dữ liệu

Cơ sở dữ liệu xác nhận xóa sản phẩm

Hệ thống thông báo kết quả xóa cho người dùng

Biểu đồ tuần tự danh sách sản phẩm

Người dùng yêu cầu danh sách sản phẩm

Hệ thống truy vấn danh sách sản phẩm từ cơ sở dữ liệu

Cơ sở dữ liệu trả về danh sách sản phẩm cho hệ thống

Hệ thống hiển thị danh sách sản phẩm cho người dùng

3.10 Chức năng tìm kiếm sản phẩm

Người dùng mở form tìm kiếm

Form tìm kiếm hiển thị và người dùng nhập thông tin tìm kiếm Form gửi yêu cầu tìm kiếm tới hệ thống

Hệ thống thực hiện tìm kiếm sản phẩm dựa trên thông tin nhận được

Hệ thống trả về kết quả tìm kiếm cho form

Form hiển thị kết quả tìm kiếm cho người dùng

Biểu đồ UseCase tổng quát Ở module này admin có thể s dử ụng được các chức năng : Danh sách voucher

Biểu đồ tuần tự chức năng thêm Voucher

Người dùng yêu cầu mở form thêm mã voucher, nhập thông tin mã voucher

Form mã vocuher hiển thị và gửi yêu cầu truy vấn thông tin voucher tới hệ thống.

Hệ thống trả về chi tiết sản phẩm từ cơ sở dữ liệu

Hệ thống cập nhật danh sách voucher và hiển thị thông báo thêm voucher thành công cho người dùng.

Người dùng mở form sửa voucher

Form sửa voucher hiển thị và người dùng chọn voucher cần sửa

Hệ thống truy vấn thông tin voucher từ cơ sở dữ liệu và hiển thị cho người dùng

Người dùng nhập thông tin sửa voucher

Form gửi yêu cầu sửa voucher tới hệ thống

Hệ thống kiểm tra thông tin sửa và cập nhật thông tin voucher trong cơ sở dữ liệu

Hệ thống xác nhận cập nhật và hiển thị thông báo sửa voucher cho người dùng

Người dùng mở form xóa voucher

Form xóa voucher hiển thị và người dùng chọn voucher cần xóa

Hệ thống truy vấn thông tin voucher từ cơ sở dữ liệu và hiển thị cho người dùng

Người dùng xác nhận xóa voucher

Form gửi yêu cầu xóa voucher tới hệ thống

Hệ thống xác nhận xóa voucher trong cơ sở dữ liệu

Hệ thống hiển thị thông báo xóa voucher cho người dùng

Biểu đồ tuần tự chức năng thống kê :

Khi người dùng truy cập vào màn hình trang chủ của quản lý, hệ thống sẽ yêu cầu cung cấp thông tin thống kê Sau đó, hệ thống sẽ truy vấn dữ liệu từ cơ sở dữ liệu và hiển thị kết quả lên màn hình.

3.17 Chức năng danh sách đơn hàng

Biểu đồ tuần tự chức năng danh sách đơn hàng

Khi người dùng truy cập vào màn hình danh sách đơn hàng, hệ thống sẽ gửi yêu cầu lấy danh sách đơn hàng từ cơ sở dữ liệu Sau đó, hệ thống sẽ truy vấn và trả về kết quả để hiển thị trên màn hình.

Tên trường Kiểu dữ liệu Ghi chú productId ObjectId Khoá chính image String name String price String quantity String

Tên trường Kiểu dữ liệu Ghi chú

_id ObjectId Khoá chính code String

Tên trường Kiểu dữ liệu Ghi chú

_id ObjectId Khoá chính name String age String address String project String money String avatar String email String username String password String role String cart [ObjectId] Khoá ngo i ạ

Tên trường Kiểu dữ liệu Ghi chú

_id ObjectId Khoá chính name String price String image String category String yearOfManufacture String status Boolean project String

Tên trường Kiểu dữ liệu Ghi chú user ObjectId Khoá ngo i ạ products [ObjectId] Khoá ngo i ạ totalAmount Number createdAt Date

Ngày đăng: 09/01/2025, 16:09

HÌNH ẢNH LIÊN QUAN

3.0  Sơ đồ  usecase t ng quát cho  ổ luồ ng nghi p v  admin ệ ụ - Báo cáo thực tập tốt nghiệp tên Đề tài xây dựng api cho website bán hàng thương mại Điện tử
3.0 Sơ đồ usecase t ng quát cho ổ luồ ng nghi p v admin ệ ụ (Trang 35)
Sơ đồ Usecase cho module sản phẩm - Báo cáo thực tập tốt nghiệp tên Đề tài xây dựng api cho website bán hàng thương mại Điện tử
secase cho module sản phẩm (Trang 39)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN