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

Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017

128 221 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 đề Xây Dựng Website Bán Xe Đạp Online
Tác giả Lương Quang Huy
Người hướng dẫn ThS. Nguyễn Văn Sáu
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ thông tin
Thể loại đồ án tốt nghiệp
Năm xuất bản 2021
Thành phố TP.HCM
Định dạng
Số trang 128
Dung lượng 18,64 MB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU VỀ SPRING BOOT (20)
    • 1.1. Ngôn ngữ lập trình Java (20)
      • 1.1.1 Lịch sử phát triển của Java (20)
      • 1.1.2 Những đặc trưng của ngôn ngữ Java (22)
      • 1.1.3 Những đặc điểm nổi bật có trong Java (22)
      • 1.1.4 Các IDE sử dụng cho Java (23)
        • 1.1.4.1 Netbeans (23)
        • 1.1.4.2 Eclipse (24)
        • 1.1.4.3 Visual Studio Code (25)
    • 1.2. Tìm hiểu về Spring Boot (25)
      • 1.2.1 Spring Boot là gì? (25)
        • 1.2.1.1 Spring Framework là gì? (25)
        • 1.2.1.2 Khái niệm về Spring Boot (26)
      • 1.2.2 Ưu điểm của Spring Boot (27)
      • 1.2.3 Các tính năng cơ bản của Spring Boot (27)
        • 1.2.3.1 Spring Application (28)
        • 1.2.3.2 Externalized Configuration (28)
        • 1.2.3.3 Các file Properties (28)
        • 1.2.3.4 Ghi log (28)
        • 1.2.3.5 Security (0)
    • 1.3. Swagger (29)
      • 1.3.1 OpenAPI là gì? (29)
      • 1.3.2 Định nghĩa Swagger là gì? (31)
      • 1.3.3 Cấu trúc cơ bản của Swagger (32)
        • 1.3.3.1 Metadata hay Info (32)
        • 1.3.3.2 Servers (32)
    • 1.4. Json Web Token (JWT) (34)
      • 1.4.1 JWT là gì? (34)
      • 1.4.2 Cấu trúc của một JWT (34)
        • 1.4.2.1 Header (35)
        • 1.4.2.2 Payload (35)
        • 1.4.2.3 Signature (36)
      • 1.4.3 Khi nào thì dùng JWT? (36)
    • 1.5. ReactJS – thư viện của Javascript (36)
      • 1.5.1 ReactJS là gì? (36)
      • 1.5.2 Tính năng của ReactJS (37)
      • 1.5.3 Các khái niệm cơ bản liên quan đến ReactJS (37)
        • 1.5.3.1 Redux (37)
        • 1.5.3.2 Virtual DOM (38)
        • 1.5.3.3 Component (38)
      • 1.5.4 Lợi ích khi sử dụng ReactJS (38)
    • 1.6. Kết luận (39)
  • CHƯƠNG 2. KHẢO SÁT HỆ THỐNG (0)
    • 2.1 Khảo sát hệ thống Website (40)
      • 2.1.1 Thông tin nhân viên và người dùng (40)
      • 2.1.2 Thông tin sản phẩm (40)
      • 2.1.3 Thông tin đơn đặt hàng (0)
    • 2.2 Đối tượng của Website (40)
    • 2.3 Đặc điểm (41)
  • CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG (0)
    • 3.1 Sơ đồ phân rã chức năng (BFD) (43)
    • 3.2 Mô hình use case tổng quát (43)
    • 3.3 Mô hình use case khách hàng (0)
      • 3.3.1 Mô hình use case chức năng đăng nhập, đăng kí của khách hàng (44)
      • 3.3.2 Mô hình use case chức năng quản lý tài khoản cá nhân (0)
      • 3.3.3 Mô hình use case chức năng xem thông tin (46)
      • 3.3.4 Mô hình use case chức năng đặt hàng (0)
      • 3.4.1 Mô hình use case chức năng quản lý đánh giá của khách hàng (0)
      • 3.4.2 Mô hình use case chức năng quản lý sản phẩm (49)
      • 3.4.3 Mô hình use case chức năng quản lý danh mục (0)
      • 3.4.4 Mô hình use case chức năng quản lý đơn hàng (50)
      • 3.4.5 Mô hình use case chức năng đăng nhập và quản lý tài khoản (0)
      • 3.4.6 Mô hình use case chức năng quản lý nhập hàng (51)
      • 3.4.7 Mô hình use case chức năng sao lưu và phục hồi dữ liệu (0)
      • 3.4.8 Mô hình use case chức năng thống kê thu chi (52)
      • 3.4.9 Mô hình use case chức năng thống kê sản phẩm trong kho (0)
      • 3.4.10 Mô hình use case chức năng thống kê sản phẩm bán chạy (53)
    • 3.5 Mô hình use case staff (0)
      • 3.5.1 Mô hình use case chức năng quản lý đánh giá của khách hàng (54)
      • 3.5.2 Mô hình use case chức năng quản lý sản phẩm (55)
      • 3.5.3 Mô hình use case chức năng quản lý danh mục (55)
      • 3.5.4 Mô hình use case chức năng quản lý đơn hàng (0)
      • 3.5.5 Mô hình use case chức năng đăng nhập và quản lý tài khoản (56)
      • 3.5.6 Mô hình use case chức năng quản lý nhập hàng (0)
      • 3.5.7 Mô hình use case chức năng thống kê thu chi (57)
      • 3.5.8 Mô hình use case chức năng thống kê sản phẩm trong kho (0)
      • 3.5.9 Mô hình use case chức năng thống kê sản phẩm bán chạy (58)
    • 3.6 Mô tả quá trình (58)
    • 3.7 Biểu đồ tuần tự (0)
      • 3.7.1 Biểu đồ tuần tự chức năng đăng nhập (62)
      • 3.7.2 Biểu đồ tuần tự chức năng đăng ký (62)
      • 3.7.3 Biểu đồ tuần tự chức năng đổi mật khẩu (62)
      • 3.7.4 Biểu đồ tuần tự chức năng quên mật khẩu (0)
      • 3.7.5 Biểu đồ tuần tự chức năng tìm kiếm (63)
      • 3.7.6 Biểu đồ tuần tự chức năng đặt hàng (0)
      • 3.7.7 Biểu đồ tuần tự chức năng thanh toán trực tuyến (64)
      • 3.7.8 Biểu đồ tuần tự chức năng quản lý sản phẩm (64)
      • 3.7.9 Biểu đồ tuần tự chức năng quản lý danh mục (0)
      • 3.7.10 Biểu đồ tuần tự chức năng quản lý đơn hàng (65)
      • 3.7.13 Biểu đồ tuần tự chức năng quản lý tài khoản khách hàng (66)
      • 3.7.14 Biểu đồ tuần tự chức năng quản lý tài khoản nhân viên (0)
      • 3.7.15 Biểu đồ tuần tự chức năng thống kê (67)
    • 3.8 Biểu đồ hoạt động (67)
      • 3.8.1 Biểu đồ hoạt động chức năng đăng nhập (67)
      • 3.8.2 Biểu đồ hoạt động chức năng đăng kí (0)
      • 3.8.3 Biểu đồ hoạt động chức năng quên mật khẩu (68)
      • 3.8.4 Biểu đồ hoạt động chức năng đổi mật khẩu (0)
      • 3.8.5 Biểu đồ hoạt động chức năng đặt hàng (69)
      • 3.8.6 Biểu đồ hoạt động chức năng quản lý sản phẩm (0)
      • 3.8.7 Biểu đồ hoạt động chức năng quản lý tài khoản (72)
      • 3.8.8 Biểu đồ hoạt động chức năng quản lý danh mục (74)
      • 3.8.9 Biểu đồ hoạt dộng chức năng quản lý đơn hàng (76)
      • 3.8.10 Biểu đồ hoạt động chức năng quản lý nhập hàng (77)
      • 3.8.11 Biểu đồ hoạt động chức năng thống kê (79)
    • 3.9 Thiết kế cơ sở dữ liệu (80)
  • CHƯƠNG 4. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH (0)
    • 4.1 Trang đăng nhập (87)
    • 4.2 Trang đăng kí (87)
    • 4.3 Trang quên mật khẩu (88)
    • 4.4 Trang đổi mật khẩu (89)
    • 4.5 Trang cập nhật thông tin tài khoản (0)
    • 4.6 Trang sản phẩm (90)
    • 4.7 Trang chi tiết sản phẩm (91)
    • 4.8 Trang chủ (0)
    • 4.9 Trang đánh giá (0)
    • 4.10 Trang giỏ hàng (93)
    • 4.11 Trang đặt hàng (0)
    • 4.12 Trang lịch sử đặt hàng (0)
    • 4.13 Trang Nhân viên (0)
    • 4.14 Trang Admin (98)
    • 4.18 Trang quản lý danh mục (101)
    • 4.19 Trang quản lý đơn hàng (102)
    • 4.20 Trang quản lý nhập hàng (102)
    • 4.21 Trang thống kê (104)
    • 4.22 Trang quản lý đánh giá sản phẩm (105)
    • 4.23 Trang sao lưu và phục hồi dữ liệu (106)
  • CHƯƠNG 5. KIỂM THỬ CHƯƠNG TRÌNH (107)
    • 5.1 Chạy thử chương trình để kiểm tra hệ thống đăng nhập (107)
    • 5.2 Chạy thử chương trình để kiểm tra hệ thống đăng kí tài khoản (0)
    • 5.3 Chạy thử chương trình để kiểm tra chức năng đổi mật khẩu (112)
    • 5.4 Chạy thử chương trình để kiểm tra chức năng quên mật khẩu (114)
    • 5.5 Chạy thử chương trình để kiểm tra chức năng đặt hàng (118)
  • KẾT LUẬN (0)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TÀI LIỆU THAM KHẢO BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP ONLINE ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC TÀI LIỆU THAM KHẢO BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP ONLINE

GIỚI THIỆU VỀ SPRING BOOT

Ngôn ngữ lập trình Java

1.1.1 Lịch sử phát triển của Java

Vào tháng 6 năm 1991, James Gosling, Mike Sheridan và Patrick Naughton khởi xướng dự án ngôn ngữ Java, ban đầu được thiết kế cho truyền hình tương tác nhưng quá tiên tiến cho ngành truyền hình cáp kỹ thuật số lúc bấy giờ Ngôn ngữ này ban đầu được gọi là Oak, theo tên một cây sồi bên ngoài văn phòng của Gosling, sau đó đổi tên thành Green và cuối cùng là Java, lấy cảm hứng từ loại cà phê Java của Indonesia Gosling đã phát triển Java với cú pháp tương tự C/C++, giúp các lập trình viên hệ thống và ứng dụng dễ dàng làm quen.

Năm 1996, Sun Microsystems đã phát hành Java 1.0, đánh dấu bản triển khai công khai đầu tiên với khả năng Viết một lần, Chạy mọi nơi (WORA), cho phép chạy miễn phí trên nhiều nền tảng phổ biến Java được thiết kế với tính năng bảo mật có thể định cấu hình, cho phép kiểm soát truy cập mạng và tệp Sự tích hợp của Java vào các trình duyệt web lớn đã giúp nó nhanh chóng trở nên phổ biến Trình biên dịch Java 1.0, được viết lại bằng Java bởi Arthur van Hoff, tuân thủ nghiêm ngặt các đặc tả ngôn ngữ Java 1.0.

Vào tháng 12 năm 1998-1999, Java 2, ban đầu được gọi là J2SE, đã được phát hành với nhiều cấu hình cho các nền tảng khác nhau J2EE cung cấp các công nghệ và API cho ứng dụng doanh nghiệp thường chạy trên máy chủ, trong khi J2ME được tối ưu hóa cho các ứng dụng di động Phiên bản dành cho máy tính để bàn đã được đổi tên thành J2SE Đến năm 2006, Sun đã tái định danh các phiên bản J2 thành Java EE, Java ME và Java SE nhằm mục đích tiếp thị.

Vào năm 1997, Sun Microsystems đã tiếp cận ISO/IEC JTC 1 và Ecma International để chính thức hóa Java, nhưng nhanh chóng rút lui khỏi quy trình này Java vẫn được coi là một tiêu chuẩn thực tế, được quản lý qua Quy trình cộng đồng Java Trong quá khứ, Sun từng cung cấp hầu hết các triển khai Java miễn phí, mặc dù phần mềm này thuộc quyền sở hữu độc quyền Doanh thu từ Java chủ yếu đến từ việc bán giấy phép cho các sản phẩm chuyên biệt như Hệ thống Doanh nghiệp Java.

Vào ngày 13 tháng 11 năm 2006, Sun Microsystems đã công bố phần lớn máy ảo Java (JVM) dưới dạng phần mềm mã nguồn mở miễn phí, tuân theo Giấy phép Công cộng GNU (GPL) Đến ngày 8 tháng 5 năm 2007, Sun hoàn tất việc cung cấp toàn bộ mã cốt lõi của JVM theo các điều khoản phân phối phần mềm miễn phí, ngoại trừ một phần nhỏ mã mà công ty không giữ bản quyền.

Vào năm 2009-2010, sau khi Tập đoàn Oracle mua lại, công ty đã khẳng định vai trò quản lý công nghệ Java với cam kết thúc đẩy sự tham gia của cộng đồng và tính minh bạch Tuy nhiên, vào ngày 2 tháng 4 năm 2010, James Gosling đã từ chức tại Oracle.

2016, Oracle đã thông báo rằng môi trường thời gian chạy Java dựa trên JDK 9 sẽ ngừng cung cấp plugin trình duyệt.

Phần mềm Java chạy trên mọi thứ, từ máy tính xách tay đến trung tâm dữ liệu, bảng điều khiển trò chơi đến siêu máy tính khoa học

Hình 1 1: Hình ảnh các phiên bản của Java

1.1.2 Những đặc trưng của ngôn ngữ Java

Hình 1 2: Hình ảnh quy trình chạy một chương trình Java

Ngôn ngữ lập trình Java có những đặc trưng cơ bản sau:

● Là ngôn ngữ hướng đối tượng.

Chương trình Java chạy trên máy ảo Java (JVM), cho phép thực thi mã trên nhiều hệ điều hành khác nhau mà không cần biên dịch lại Mỗi hệ điều hành có định dạng mã máy riêng, như Windows sử dụng file EXE và Linux sử dụng file ELF Sự phát triển của JVM bởi Sun Microsystems là yếu tố chính giúp Java hoạt động linh hoạt trên mọi nền tảng.

Java hỗ trợ lập trình đa nhiệm và đa luồng, cho phép nhiều tiến trình hoạt động song song và tương tác lẫn nhau.

● Java bỏ đa kế thừa trong C++ thay bằng sử dụng Interface.

1.1.3 Những đặc điểm nổi bật có trong Java

Java được thiết kế với tính độc lập phần cứng và hệ điều hành, cho phép biên dịch mã nguồn thành bytecode Bytecode này có thể chạy trên nhiều môi trường thực thi khác nhau, giúp chương trình Java hoạt động trên nhiều thiết bị và hệ điều hành khác nhau.

Hình 1 3: Java chạy trên nhiều hệ điều hành

● Mạnh mẽ : quá trình cấp phát, giải phóng bộ nhớ thực hiện tự động Không sử dụng con trỏ hoặc phép toán con trỏ.

Java cung cấp mức độ bảo mật cao hơn nhờ vào việc biên dịch qua máy ảo Java (JVM), đảm bảo rằng mọi đối tượng đều phải đi qua JVM trước khi truy cập vào hệ điều hành.

● Phân tán: Java hỗ trợ lập trình cho hệ thống phân tán như client-server, RMI bằng Java Web, UDP, TCP

1.1.4 Các IDE sử dụng cho Java

IDE (Môi trường phát triển tích hợp) là công cụ thiết yếu cho lập trình viên, cung cấp nhiều tính năng như xây dựng và phát triển ứng dụng Java, gỡ lỗi, kiểm tra mã, hỗ trợ mã, kiểm thử Junit, thiết kế giao diện người dùng (GUI), công cụ xây dựng Maven, cùng với nhiều chức năng hữu ích khác.

NetBeans là một IDE mã nguồn mở được phát triển bằng ngôn ngữ Java, ra mắt lần đầu vào năm 1996 với tên gọi ban đầu là Xelfi, xuất phát từ một dự án sinh viên.

NetBeans IDE hỗ trợ phát triển đa dạng các loại ứng dụng Java như Java SE, JavaFX, web và mobile Với kiến trúc module, NetBeans cho phép các nhà phát triển bên thứ ba dễ dàng tạo ra các plugin để mở rộng và nâng cao tính năng, bao gồm các plugin như PDF, easyUML, Darcula LAF và Git Toolbar.

NetBeans không chỉ hỗ trợ ngôn ngữ Java mà còn được sử dụng để phát triển ứng dụng với nhiều ngôn ngữ khác như PHP, C/C++, và HTML5 IDE này tương thích với hầu hết các hệ điều hành phổ biến, bao gồm Windows, macOS, Linux và Solaris.

Hình 1 4: Hình ảnh Netbeans 1.1.4.2 Eclipse

Eclipse là một IDE miễn phí cho lập trình Java, ra mắt vào tháng 11 năm 2001 Được phát triển chủ yếu bằng ngôn ngữ Java, Eclipse hỗ trợ xây dựng ứng dụng Java đa nền tảng cho mobile, web, desktop và các lĩnh vực doanh nghiệp.

Tìm hiểu về Spring Boot

Spring là một Framework mã nguồn mở, giúp các nhà phát triển xây dựng hệ thống và chạy ứng dụng trên JVM một cách đơn giản, thuận tiện và nhanh chóng Nó được phát triển rộng rãi và được nhiều người sử dụng.

Spring Framework là một tập hợp các dự án nhỏ như Spring MVC, Spring Data và Spring Boot, hỗ trợ xây dựng ứng dụng web Để phát triển một ứng dụng web cơ bản với Spring Framework, bạn cần thực hiện ít nhất 5 bước quan trọng.

● Tạo một project sử dụng Maven với các dependency cần thiết.

● Tạo một tập tin web đuôi (.xml) để khai báo DispatcherServlet (thuộc Spring MVC).

● Một tập tin có cấu hình của Spring MVC.

● Trả về một class Controller khi có request đến.

Để triển khai ứng dụng, cần có một web server hỗ trợ Việc khởi tạo dự án Spring truyền thống thường phức tạp và tốn nhiều công sức, vì lập trình viên phải khai báo các dependency trong pom.xml và cấu hình XML hoặc annotation phức tạp Tuy nhiên, với Spring Boot, quá trình tạo ra các ứng dụng trở nên đơn giản và nhanh chóng hơn rất nhiều.

1.2.1.2 Khái niệm về Spring Boot.

Spring Boot là một framework Java mạnh mẽ, mang đến nhiều tính năng hữu ích cho lập trình viên So với framework Spring truyền thống, Spring Boot có những ưu điểm vượt trội, giúp cải thiện hiệu suất và hỗ trợ lập trình viên trong việc giải quyết nhiều vấn đề khác nhau.

● Auto config: tự động cấu hình thay lập trình viên, bạn chỉ cần viết code và tiến hành chạy hệ thống là được.

● Dựa trên các Annotation để tạo lập các bean thay vì XML.

● Server Tomcat có thể được nhúng ngay trong file JAR build ra và có thể chạy ở bất kì đâu mà java chạy được.

Khi sử dụng Spring Boot, lập trình viên chỉ cần:

● Sử dụng Spring Initializr: nhập các thông tin của dự án (project), chọn thư viện (Library) rồi tải code về máy.

● Mở mã nguồn (source code) và bắt đầu viết code.

● Có thể chạy ngay trong IDE, hoặc build thành file JAR mà không cần cấu hình config cho server nữa.

Hình 1 7: Hình ảnh giao diện Spring Boot 1.2.2 Ưu điểm của Spring Boot

Spring Boot cho phép lập trình viên tập trung vào việc phát triển mã nguồn hiệu quả hơn, thay vì phải bận tâm đến các kỹ thuật lập trình phức tạp như khi sử dụng Node.js.

Spring Boot tích hợp nhiều thư viện, giúp cấu trúc mã nguồn trở nên chuẩn mực hơn và giảm bớt lo lắng về việc tối ưu hóa mã Nhờ đó, lập trình viên có thêm thời gian để tập trung vào logic và tính năng của sản phẩm.

Spring Boot là một phiên bản nâng cao của Spring, giúp đơn giản hóa nhiều quy trình phức tạp trong Spring Hơn nữa, việc học và làm quen với Spring Boot trở nên dễ dàng hơn rất nhiều.

Spring Boot làm đơn giản hóa cấu hình và xây dựng được các ứng dụng độc lập có khả năng chạy bằng java-jar nhờ các dependency starter.

Các lập trình viên có thể triển khai ứng dụng một cách dễ dàng nhờ vào việc nhúng trực tiếp các ứng dụng server vào trong ứng dụng, giúp tránh những khó khăn khi đưa lên môi trường production mà không cần tải file WAR.

Spring Boot có cấu hình tối giản và tự động, giúp tăng năng suất và giảm thời gian viết code mà không cần sử dụng cấu hình XML.

Spring Boot cung cấp nhiều plugin, số liệu, cấu hình ứng dụng từ bên ngoài.

1.2.3 Các tính năng cơ bản của Spring Boot

Khi sử dụng Spring, nhà phát triển có thể dễ dàng loại bỏ mã soạn sẵn, nhưng việc đảm bảo tính tương thích khi hoàn thiện chức năng từ mã khác trở thành một thách thức lớn Để giải quyết vấn đề khắc phục sự cố tương thích phức tạp này, Spring Boot cung cấp các tính năng hữu ích giúp đơn giản hóa quy trình phát triển.

Spring Boot cung cấp tính năng Spring Application, cho phép nhà phát triển khởi động ứng dụng Spring một cách dễ dàng thông qua phương thức chính Việc sử dụng phương thức run() giúp ứng dụng được khởi động nhanh chóng và thuận tiện.

Spring Boot cho phép chúng ta cấu hình từ bên ngoài (externalize), do đó một ứng dụng có thể chạy trên nhiều môi trường khác nhau.

Chúng ta có thể sử dụng file YAML, file properties, các biến môi trường và tham số command-line để thực hiện externalize configuration.

Các thuộc tính cấu hình có thể inject trực tiếp vào bean bằng cách sử dụng annotation

@Value hoặc thông qua object với @ConfigurationProperties

Hình 1 8: Hình ảnh ví dụ về Externalized Configuration 1.2.3.3 Các file Properties

Hỗ trợ các file YAML đã trở thành một giải pháp hiệu quả thay thế cho các file properties Các file properties chỉ đơn thuần là văn bản chứa một tập hợp thuộc tính cần thiết cho việc vận hành ứng dụng.

Ví dụ : khi sử dụng server-port = 8080 có nghĩa là cổng được sử dụng để chạy máy chủ là 8080.

Spring Boot sử dụng common logging cho tất cả chức năng log nội bộ.

Các dependency logging được quản lý mặc định, vì vậy không nên hoặc không cần sửa các dependency logging nếu các tùy biến customization không được yêu cầu.

Spring Boot cung cấp tính bảo mật cao cho ứng dụng web, với Spring Security được kích hoạt trong classpath, đảm bảo bảo vệ mặc định Hệ thống tự động xác định phương thức xác thực, sử dụng httpBasic hoặc formLogin tùy theo yêu cầu.

In addition to its core functionalities, Spring Boot offers a variety of features such as developing web applications, integrating with SQL technologies, messaging capabilities, caching solutions, calling REST services using RestTemplate or WebClient, sending emails, and implementing validation processes.

Swagger

OpenAPI, hay còn gọi là Open API Specification, là một định dạng dùng để mô tả API cho các Rest APIs hiện nay Với một tệp duy nhất, OpenAPI cho phép bạn mô tả toàn bộ API, bao gồm tất cả các nội dung cần thiết.

 Tạo điều kiện hoạt động các endpoints hay là các users cũng như cách thức hoạt động của các endpoints đó như get/users, post/users.

 Hiển thị rõ được các tham số về đầu vào và đầu ra của mỗi hoạt động.

 Thể hiện các phương thức xác thực được sử dụng.

 Thể hiện các thông tin liên lạc, các chứng chỉ, những điều khoản liên quan đến việc sử dụng và các thông tin liên quan khác.

API Specifications hiện có thể được viết bằng các định dạng như JSON và YAML, hai định dạng này dễ đọc và dễ hiểu, mang lại lợi ích cho cả người dùng và hệ thống máy tính.

Hình 1 9: Giới thiệu về OpenAPI

OpenAPI sử dụng các biểu thức mẫu với dấu ngoặc nhọn ({}) để tạo mẫu đường dẫn, cho phép thay thế các phần của URL bằng tham số đường dẫn OpenAPI tuân thủ tiêu chuẩn RFC6838 cho kết nối và sử dụng mã trạng thái HTTP để chỉ ra trạng thái của các hoạt động thực thi Các mã trạng thái này được xác định theo RFC7231, với các mã đã đăng ký được liệt kê bởi tổ chức IANA.

1.3.2 Định nghĩa Swagger là gì?

Swagger is an open-source tool designed for creating OpenAPI Specifications, enabling the design, documentation, and utilization of REST APIs effectively.

Với các nhà phát triển, khi sử dụng Swagger sẽ được cung cấp 3 tool chính như sau:

The Swagger Editor is a powerful tool for designing and building APIs from scratch or editing existing APIs by utilizing a configuration file.

 Tool Swagger Codegen: có tác dụng trong việc generate ra code thông qua sử dụng các file config sẵn có trước đó.

Swagger UI is a powerful tool for generating HTML, CSS, and other files from a configuration file Developers can utilize two approaches to create documentation for Swagger, leveraging this open-source framework effectively.

 Cách 1: Top down approach: dùng để thiết kế nên các APIs trước khi thực hiện việc code liên quan.

 Cách 2: Bottom down approach: dùng để mô tả các vấn đề, thông số liên quan API thông qua việc sử dụng thiết kế có sẵn của file config.

Swagger UI là công cụ phổ biến nhất trong bộ công cụ của Swagger, đóng vai trò quan trọng trong việc xây dựng giao diện cho tài liệu dựa trên file cấu hình theo chuẩn Open API Giao diện do Swagger UI tạo ra có tính minh bạch và rõ ràng, giúp các nhà phát triển dễ dàng đọc hiểu và sử dụng Điều này không chỉ hỗ trợ người dùng mà còn giúp lập trình viên tách biệt các tác vụ một cách hiệu quả.

Mỗi API trong quá trình này cung cấp thông tin chi tiết về nguồn ra, bao gồm các trường cần gửi lên hệ thống và các trạng thái kết quả có thể nhận được Đặc biệt, chúng ta có khả năng nhập dữ liệu để kiểm tra tính chính xác của các kết quả, từ đó đảm bảo tính đúng đắn của hệ thống.

1.3.3 Cấu trúc cơ bản của Swagger

Mỗi Open API Specification đều bắt đầu bằng từ khóa "Open API" để khai báo tên phiên bản Loại phiên bản này có vai trò quan trọng trong việc định nghĩa lại toàn bộ cấu trúc của API Phần Info chứa các thông tin cơ bản như tiêu đề, mô tả và phiên bản của API.

 Title sẽ là tên mà bạn đặt cho API của mình.

Mô tả API của bạn bao gồm các thông tin chi tiết và có thể được trình bày theo nhiều cách khác nhau Bạn có thể viết mô tả này thành nhiều dòng nếu cần thiết và sử dụng cú pháp hỗ trợ như markdown để tăng tính trực quan.

Phiên bản (Version) là yếu tố quan trọng trong quá trình phát triển ứng dụng của bạn với API Metadata hay thông tin bổ sung giúp cung cấp các từ khóa liên quan đến thông tin liên lạc, chứng chỉ và các điều khoản sử dụng, hỗ trợ người dùng hiểu rõ hơn về sản phẩm.

1.3.3.2 Servers Để có thể test được các API thì bạn cần có một đường dẫn liên quan đến servers Và đây chính là phần tạo ra một đường dẫn cụ thể của servers được sử dụng để thực hiện chức năng trên Trong phần này, việc định nghĩa hay là nhiều các servers khác nhau sẽ hoàn toàn tùy thuộc vào quyết định của bạn.

1.3.3.3 Paths Được biết phần mấu chốt, trọng tâm của API được sử dụng Với phần này, nhiệm vụ của những nhà lập trình viên chính là định nghĩa những paths xuất hiện trong API hay các phương thức, những tham số cụ thể tồn tại trong API đó.

Một vài lưu ý cần được chú ý như sau:

 Việc bắt đầu sẽ cần phải bằng từ khóa “paths”.

 Tiếp đó mới đến những thành phần có trong API như users,

 Sau đó chính là các phương thức được sử dụng trong API như Get, Post, Delete,

 Phần mô tả một cách tóm tắt, ngắn gọn của API: Summary.

Trong API, các tham số được gọi là parameters, cho phép lập trình viên thiết lập các tham số cần thiết, mô tả và xác thực chúng Đặc biệt, lập trình viên có thể chỉ định một model cụ thể để định nghĩa cho các tham số này.

Cuối cùng, phần trả về từ server, hay còn gọi là response, cho phép bạn định nghĩa các mã HTTP mà người dùng có thể nhận, chẳng hạn như 200, 404, cùng với những mô tả chi tiết cho từng trường hợp cụ thể.

Thêm vào đó, ở phần này, các parameters sẽ sở hữu khá nhiều loại khai báo khác nhau đứng sau từ khóa”in” mà chúng ta đều cần phải lưu ý:

Json Web Token (JWT)

Json Web Token (JWT) là một chuỗi mã hóa bắt nguồn từ dữ liệu JSON Thông qua quá trình mã hóa, chuỗi thông tin JSON trở thành một chuỗi ký tự phức tạp, khó hiểu đối với người đọc.

Theo định nghĩa tiêu chuẩn thì JSON Web Token (JWT) là 1 tiêu chuẩn mở (RFC

JWT (JSON Web Token) là một phương thức an toàn để truyền thông tin giữa các bên dưới dạng đối tượng JSON, với khả năng xác minh và độ tin cậy nhờ vào chữ ký số JWT có thể được ký bằng thuật toán bí mật thông qua HMAC hoặc bằng cặp khóa công khai/riêng tư sử dụng mã hóa RSA.

Như vậy, bảo mật JWT là phương pháp xác thực quyền truy cập (Authentication) bằng JSON Web Token.

1.4.2 Cấu trúc của một JWT

JSON Web ToKen bao gồm 3 phần, được ngăn cách bởi dấu chấm (.) được minh họa trong hình 1.12 :

Hình 1 10: Cấu trúc của JWT 1.4.2.1 Header

Header bao gồm hai phần chính:

 typ – Loại token (mặc định là JWT – cho biết đây là một Token JWT).

 alg – Thuật toán đã dùng để mã hóa (HMAC SHA256 – HS256 hoặc RSA).

Hình 1 11: Hình ảnh ví dụ của một Header 1.4.2.2 Payload

Payload là phần chứa nội dung thông tin (claim) trong một thông điệp Thông tin này có thể mô tả một thực thể, chẳng hạn như người dùng, hoặc cung cấp thông tin bổ sung cho phần Header Payload được phân loại thành ba loại chính: reserved, public và private.

 Reserved : là những thông tin đã được quy định ở trong IANA JSON Web

Trong hệ thống đăng ký token, các thông tin như tổ chức phát hành (iss), chủ đề (sub), đối tượng sử dụng (aud), thời điểm hết hạn (exp), thời điểm không hợp lệ trước (nbf), thời gian phát hành (iat), và mã định danh JWT (jti) đều không bắt buộc Tuy nhiên, yêu cầu về thông tin cần thiết có thể thay đổi tùy vào từng ứng dụng cụ thể.

Khóa trong JWT có thể được định nghĩa theo ý muốn của người sử dụng, nhưng để tránh trùng lặp, nên quy định khóa trong IANA JSON Web Token Registry hoặc sử dụng một URI với không gian tên độc nhất.

Claims tự định nghĩa là các thông tin được tạo ra riêng tư, không được trùng với các loại Reserved và Public Chúng được sử dụng để chia sẻ thông tin giữa hai bên đã có 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 bởi header, payload cùng với một chuỗi bí mật theo nguyên tắc sau:

Hình 1 12: Hình ảnh ví dụ của Signature

Do bản thân Signature đã bao gồm cả header và payload nên Signature có thể dùng để kiểm tra tính toàn vẹn của dữ liệu khi truyền tải.

1.4.3 Khi nào thì dùng JWT?

Xác thực là một tình huống phổ biến, khi người dùng đăng nhập, mỗi yêu cầu tiếp theo sẽ kèm theo chuỗi token JWT, cho phép truy cập vào các đường dẫn, dịch vụ và tài nguyên được phép tương ứng với token đó Chức năng Single Sign On cũng sử dụng JWT một cách rộng rãi, nhờ vào kích thước nhỏ gọn của chuỗi JWT, giúp dễ dàng đính kèm trong yêu cầu và sử dụng trên nhiều hệ thống thuộc các miền khác nhau.

JSON Web Token (JWT) là một phương pháp hiệu quả và an toàn để trao đổi thông tin giữa các ứng dụng, nhờ vào việc JWT được ký bằng cặp khóa công khai và riêng tư, giúp xác thực danh tính của người gửi Điều này làm giảm khả năng mạo danh và đảm bảo rằng nội dung không bị chỉnh sửa hoặc can thiệp Tuy nhiên, do cấu trúc đơn giản của JWT, nó có thể dễ dàng bị giải mã, vì vậy không nên sử dụng JWT để truyền tải thông tin nhạy cảm.

ReactJS – thư viện của Javascript

Năm 2013, Facebook “trình làng” một thư viện JavaScript mã nguồn mở mang tên

“ReactJS” Hiện nay, ReactJS đã “vượt mặt” hai đối thủ lớn thịnh hành nhất thời điểm ấy – Angular và Bootstrap

ReactJS is the preferred choice of major companies like Netflix, Airbnb, American Express, Facebook, WhatsApp, eBay, and Instagram Most users regard ReactJS as the most popular JavaScript library for building user interfaces (UI).

Mục đích cốt lõi của ReactJS là nâng cao độ mượt mà của trang web, tối ưu hóa tốc độ, khả năng mở rộng và đơn giản hóa quy trình phát triển.

ReactJS nổi bật với khả năng tập trung vào các phần riêng lẻ của giao diện người dùng, cho phép các nhà phát triển chia nhỏ giao diện phức tạp thành những thành phần đơn giản hơn Điều này giúp tối ưu hóa quá trình render dữ liệu, không chỉ thực hiện trên server mà còn có thể diễn ra tại client, mang lại hiệu suất cao hơn cho ứng dụng web.

Sử dụng ReactJS, người dùng có thể:

 Viết ứng dụng trực tiếp trên JavaScript.

 Phá vỡ những cấu tạo UI phức tạp và biến chúng thành những component độc lập.

 Chuyển các dữ liệu đã được tùy biến đến một UI component cụ thể.

 Thay đổi trạng thái cho nhiều component (child) trên ứng dụng nhưng không ảnh hưởng tới component gốc (parent) đang ở trạng thái Stateful.

 Biết chính xác khi nào cần render lại hoặc khi nào bỏ đi những phần tử của DOM chính.

1.5.3 Các khái niệm cơ bản liên quan đến ReactJS

ReactJS là một thư viện Javascript quan trọng trong việc phát triển tầng Views của mô hình MVC (Model View Controller) Thư viện này cho phép người dùng xây dựng website hoàn toàn bằng Javascript, tương tác với HTML một cách hiệu quả hơn nhờ vào công nghệ Virtual-DOM.

Redux là một phần cực kỳ quan trọng đối với ReactJS.

ReactJS không có các module chuyên dụng để xử lý dữ liệu, do đó nó được thiết lập một cách độc lập Việc chia nhỏ giao diện thành các component nhỏ giúp tăng cường sự liên kết giữa chúng.

Trong ReactJS, sự liên kết và mối quan hệ giữa các component rất quan trọng do luồng dữ liệu một chiều từ cha xuống con là nguyên tắc duy nhất Mặc dù việc sử dụng luồng dữ liệu một chiều có thể gây khó khăn cho những người mới bắt đầu, nhưng nó cũng mang lại lợi ích nổi bật Cơ chế này giúp ReactJS phát huy tối đa chức năng của mình, đồng thời làm cho các chức năng của view trở nên phức tạp hơn.

1.5.3.2 Virtual DOM Đây là một định dạng dữ liệu JavaScript nhẹ được dùng để thể hiện nội dung của DOM (Document Object Model, tạm dịch: Mô hình Đối tượng Tài liệu) tại một thời điểm nhất định nào đó.

ReactJS là một framework sử dụng Virtual-DOM, kết hợp giữa Model và View Mọi thay đổi trên Model sẽ tự động cập nhật View và ngược lại, cho phép thực hiện cơ chế Data-binding mà không cần tác động trực tiếp vào các phần tử DOM Nhờ vào điều này, tốc độ ứng dụng được cải thiện đáng kể.

Unlike other frameworks that rely on templates, ReactJS is built around components By using the createClass method, which accepts a parameter that describes the component's properties, you can easily create a component with all the desired characteristics.

1.5.4 Lợi ích khi sử dụng ReactJS

Lợi ích đầu tiên của ReactJS là khả năng tạo ra một DOM ảo, nơi các component được lưu trữ Việc sử dụng DOM ảo này giúp cải thiện hiệu suất làm việc đáng kể, vì ReactJS sẽ thực hiện các tính toán cần thiết trước khi cập nhật vào DOM thật, từ đó giảm thiểu thao tác trực tiếp trên DOM và tiết kiệm chi phí.

Một trong những lợi ích quan trọng của ReactJS là cú pháp JSX, giúp việc viết mã JavaScript trở nên dễ dàng hơn bằng cách cho phép kết hợp giữa HTML và JavaScript Điều này cho phép lập trình viên thêm mã trực tiếp vào hàm render mà không cần phải nối chuỗi, tạo ra sự tiện lợi và linh hoạt Chuyển đổi các đoạn HTML thành các hàm khởi động được thực hiện thông qua bộ biến đổi JSX, làm nổi bật tính năng độc đáo của ReactJS.

ReactJS cung cấp nhiều công cụ phát triển hữu ích, giúp cải thiện quá trình lập trình Khi bắt đầu với ReactJS, bạn nên cài đặt ứng dụng mở rộng dành riêng cho Chrome, điều này sẽ hỗ trợ bạn trong việc debug mã nguồn một cách dễ dàng hơn Sau khi cài đặt, bạn sẽ có cái nhìn trực tiếp vào Virtual DOM, tương tự như việc xem một cây DOM thông thường.

ReactJS nổi bật với khả năng thân thiện với SEO, điều này là một thách thức lớn đối với nhiều JS Frameworks khác, vốn không tối ưu cho các công cụ tìm kiếm Tuy nhiên, ReactJS tự hào vì có thể cải thiện tình hình nhờ vào khả năng render và trả về nội dung dưới dạng web page khi chạy trên server cùng với Virtual DOM Nhờ những tính năng này, ReactJS hoàn toàn đáp ứng yêu cầu về tính thân thiện với SEO.

Kết luận

Spring Boot là một công cụ mạnh mẽ giúp người dùng nhanh chóng thiết lập và triển khai các ứng dụng doanh nghiệp mà không cần lo lắng về cấu hình chính xác và an toàn Hơn nữa, cộng đồng người dùng của Spring Boot rất đông đảo, cung cấp nhiều hỗ trợ và tài nguyên hữu ích.

Mục tiêu chính của framework Spring Boot là rút ngắn thời gian phát triển và nâng cao hiệu suất thông qua việc cung cấp các thiết lập mặc định cho kiểm tra đơn vị và tích hợp Người dùng có thể nhanh chóng khởi động ứng dụng Java của mình bằng cách chấp nhận các giá trị mặc định và loại bỏ hoàn toàn việc cấu hình XML.

KHẢO SÁT HỆ THỐNG

Khảo sát hệ thống Website

2.1.1Thông tin nhân viên và người dùng

Cửa hàng sở hữu đội ngũ nhân viên đông đảo, mỗi nhân viên được phân biệt thông qua mã nhân viên riêng biệt Thông tin cá nhân của họ bao gồm họ tên, giới tính, ngày sinh, địa chỉ, số điện thoại, email và mật khẩu, giúp quản lý dễ dàng và hiệu quả hơn.

- Khách hàng có thông tin bao gồm mã khách hàng để phân biệt , họ, tên, giới tính, ngày sinh, địa chỉ, số điện thoại, email, password.

- Mỗi nhân viên và khách hàng chỉ thuộc một quyền và một quyền có nhiều nhân viên và khách hàng khác nhau.

Cửa hàng chúng tôi cung cấp đa dạng các loại xe đạp với thông tin chi tiết bao gồm mã xe đạp, tên xe, giá cả, số lượng có sẵn, mô tả sản phẩm, trạng thái và hình ảnh minh họa.

- Một xe đạp thuộc một loại xe (xe leo núi, xe đua, ).

Khách hàng có khả năng đánh giá sản phẩm dựa trên những sản phẩm đã mua trong đơn đặt hàng của mình Mỗi khách hàng có thể thực hiện nhiều đánh giá cho các sản phẩm khác nhau, nhưng chỉ được phép đánh giá mỗi sản phẩm một lần.

2.1.3 Thông tin đơn nhập hàng

- Trong đơn đặt hàng có thông tin mã đơn đặt hàng, ngày đặt hàng, trạng thái

- Một đơn đặt hàng có thể đặt nhiều xe đạp khác nhau, một xe đạp có thể có nhiều đơn đặt hàng

- Một đơn đặt hàng được đặt bởi 1 nhân viên và 1 nhân viên đặt được nhiều đơn đặt hàng.

2.1.4 Thông tin đơn mua hàng

Khách hàng có thể thực hiện nhiều giao dịch mua hàng với các đơn hàng khác nhau Mỗi đơn hàng sẽ bao gồm các thông tin quan trọng như mã đơn hàng, ngày đặt, thông tin người nhận, địa chỉ, số điện thoại của người nhận, cũng như trạng thái đơn hàng (đang chờ xử lý, đang giao, đã giao hoặc đã hủy) Mỗi đơn đặt hàng sẽ được liên kết với một khách hàng cụ thể.

Một đơn mua hàng có thể bao gồm nhiều loại xe đạp khác nhau, và một chiếc xe đạp có thể được đặt mua qua nhiều đơn hàng khác nhau Tất cả các đơn đặt hàng sẽ được phê duyệt bởi một nhân viên.

Đối tượng của Website

Website được xây dựng phục vụ ba đối tượng chính là Admin ( Quản trị viên), Staff(Nhân viên) và Khách hàng (Người dùng) với các chứng năng sau :

-Xem, cập nhật, xóa thông tin sản phẩm -Quản lí đơn nhập hàng

Quản lý đơn đặt hàng hiệu quả bao gồm việc xem và xử lý góp ý của khách hàng, cũng như xóa các thông tin không cần thiết Ngoài ra, bạn có thể xem, thay đổi và xóa thông tin của khách hàng và nhân viên để đảm bảo dữ liệu luôn chính xác Cuối cùng, việc tạo tài khoản cho nhân viên cũng là một phần quan trọng trong quy trình quản lý này.

-Thống kê thu chi, thống kê sản phẩm tồn kho, sản phẩm bán chạy -Sao lưu và phục hồi dữ liệu

- Xem, sửa và xóa thông tin sản phẩm

- Xem, sửa và xóa danh mục sản phẩm

- Xem cho tiết đơn hàng, thay đổi trạng thái đơn hàng

- Xem, thay đổi và xóa các thông tin của khách hàng

- Xem và tạo đơn nhập hàng

- Thống kê thu chi, thống kê sản phẩm tồn kho, sản phẩm bán chạy

-Xem toàn bộ sản phẩm được bán và chi tiết các sản phẩm đó.

-Có quyền đăng nhập, đăng xuất

-Có quyền đổi mật khẩu và lấy lại mật khẩu khi quên mật khẩu

-Xem lịch sử mua hàng.

Đặc điểm

Xây dựng một hệ thống bán xe đạp trực tuyến đơn giản và thân thiện với người dùng, giúp khách hàng dễ dàng xem thông tin sản phẩm và đặt hàng trực tuyến Hệ thống cũng cho phép người quản trị quản lý hiệu quả thông tin về sản phẩm và người dùng.

Website được thiết kế với:

 Giao diện hài hòa, thân thiện, giúp người dùng dễ dàng sử dụng. dễ dàng hơn trong việc tìm kiếm.

 Khách hàng có thể dễ dàng nhìn thấy thông tin chi tiết các loại xe đạp mà họ quan tâm.

 Khách hàng có thể tìm kiếm xe đạp mà họ quan tâm.

Khách hàng có thể dễ dàng lựa chọn và mua các loại xe đạp phù hợp với nhu cầu và khả năng tài chính của mình bằng cách thêm sản phẩm vào giỏ hàng.

 Có chức năng đăng ký, đăng nhập, đổi mật khẩu, quên mật khẩu

 Khách hàng có thể gửi ý kiến đánh giá sản phẩm.

 Khách hàng có thể xem lại lịch sử mua hàng.

 Khách hàng có thể thực hiện chọn phương thức thanh toàn và họ có thể thanh toán bằng hình thức online qua ví paypal.

Trong gian hàng ảo, thông tin và phân loại sản phẩm được hiển thị rõ ràng Mỗi sản phẩm trên website sẽ cung cấp đầy đủ thông tin, bao gồm hình ảnh, tên sản phẩm và giá cả, giúp người tiêu dùng dễ dàng lựa chọn.

Khi khách hàng đã xác định sản phẩm cụ thể, họ có thể sử dụng chức năng tìm kiếm để hiển thị toàn bộ thông tin liên quan đến từ khóa Chức năng này giúp tiết kiệm thời gian và giảm thiểu các thao tác phức tạp.

Khách hàng có thể dễ dàng đặt mua sản phẩm ngay trên Website thông qua chức năng giỏ hàng mà không cần đến địa điểm giao dịch Giỏ hàng được thiết kế giống như giỏ hàng thực tế, cho phép người dùng thêm hoặc bớt sản phẩm theo nhu cầu Khi hoàn tất việc đặt hàng, khách hàng cần cung cấp đầy đủ thông tin cá nhân, và thông tin này sẽ được hệ thống lưu trữ và xử lý một cách an toàn.

 Module đăng ký tài khoản và đăng nhập hệ thống:

Mỗi khách hàng khi giao dịch tại website có quyền đăng ký một tài khoản cá nhân Tài khoản này sẽ được sử dụng khi hệ thống yêu cầu và sẽ lưu trữ thông tin cá nhân của khách hàng.

 Module quản lý sản phẩm, đơn hàng:

Người quản trị có thể cập nhật thông tin các mặt hàng, loại hàng, quản lí thông tin đơn hàng.

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

Sơ đồ phân rã chức năng (BFD)

Hình 3.1 : Sơ đồ phân rã chức năng (BFD)

Mô hình use case tổng quát

Hình 3.2 : Sơ đồ use case tổng quát

Mô hình use case khách hàng

hàng 3.3.1 Mô hình use case chức năng đăng nhập, đăng kí của khách hàng của khách hàng

Hình 3.5 : Sơ đồ use case chức năng quản lý tài khoản cá nhân 3.3.3 Mô hình use case chức năng xem thông tin

Hình 3.6 : Sơ đồ use case chức năng xem thông tin

Hình 3.7 : Sơ đồ use case chức năng đặt hàng 3.3.5 Mô hình use case chức năng quản lý giỏ hàng

Hình 3.8 : Sơ đồ use case chức năng quản lý giỏ hàng

Hình 3.9 : Sơ đồ use case chức năng đánh giá sản phẩm

3.4 Mô hình use case admin

Hình 3.10 : Sơ đồ use case tổng quát chức năng của admin đánh giá của khách hàng

Hình 3.11 : Sơ đồ use case chức năng đánh giá và quản lý đánh giá sản phẩm 3.4.2 Mô hình use case chức năng quản lý sản phẩm

Hình 3.12 : Sơ đồ use case chức năng quản lý sản phẩm

Hình 3.13 : Sơ đồ use case chức năng quản lý danh mục 3.4.4 Mô hình use case chức năng quản lý đơn hàng

Hình 3.14 : Sơ đồ use case chức năng quản lý đơn hàng

Hình 3.15 : Sơ đồ use case chức năng đăng nhập và quản lý tài khoản 3.4.6 Mô hình use case chức năng quản lý nhập hàng

Hình 3.16 : Sơ đồ use case chức năng quản lý nhập hàng

Hình 3.17 : Sơ đồ use case chức năng sao lưu và phục hồi dữ liệu 3.4.8 Mô hình use case chức năng thống kê thu chi

Hình 3.18 : Sơ đồ use case chức năng thống kê lợi nhuận

Hình 3.19 : Sơ đồ use case chức năng thống kê sản phẩm trong kho 3.4.10 Mô hình use case chức năng thống kê sản phẩm bán chạy

Hình 3.20 : Sơ đồ use case chức năng thống kê sản phẩm bán chạy

Mô hình use case staff

đánh giá sản phẩm 3.5.2Mô hình use case chức năng quản lý sản phẩm

Hình 3.23 : Sơ đồ use case chức năng quản lý sản phẩm 3.5.3Mô hình use case chức năng quản lý danh mục

Hình 3.24 : Sơ đồ use case chức năng quản lý danh mục

Hình 3.25 : Sơ đồ use case chức năng quản lý đơn hàng 3.5.5Mô hình use case chức năng đăng nhập và quản lý tài khoản

Hình 3.26 : Sơ đồ use case chức năng đăng nhập và quản lý tài khoản

Hình 3.27 : Sơ đồ use case chức năng quản lý nhập hàng 3.5.7Mô hình use case chức năng thống kê thu chi

Hình 3.28 : Sơ đồ use case chức năng thống kê lợi nhuận

Hình 3.29 : Sơ đồ use case chức năng thống kê sản phẩm tồn kho 3.5.9Mô hình use case chức năng thống kê sản phẩm bán chạy

Hình 3.30 : Sơ đồ use case chức năng thống kê sản phẩm bán chạy

Mô tả quá trình

 Đăng nhập : use case này giúp người dùng sử dụng các chức năng của hệ thống cần đến quyền truy cập

Để sử dụng chức năng đăng nhập, người dùng cần đăng ký tài khoản Việc tạo tài khoản là bước đầu tiên và cần thiết để đảm bảo quá trình đăng nhập diễn ra thành công.

 Quản lý tài khoản cá nhân: khách hàng có thể quản lý tài khoản cá nhân của họ. như tên , email , số điện thoại ,…

- Đổi mật khẩu : khách hàng có thể thực hiện đổi mật khẩu tài khoản đăng nhập.

- Xóa tài khoản : khách hàng có thể xóa tài khoản khi không sử dụng nữa.

Chức năng xem thông tin sản phẩm cho phép người dùng tra cứu tên, loại, mô tả chi tiết và giá bán của sản phẩm.

 Tìm kiếm sản phẩm : use case này mô tả chức năng tìm kiếm sản phẩm theo tên sản phẩm, loại sản phẩm, hãng sản xuất.

 Xem lịch sử đặt hàng : use case giúp khách hàng có thể xem trạng thái đơn hàng, và lịch sử mua hàng.

 Đánh giá sản phẩm : use case này mô tả chức năng đánh giá sản phẩm cho người dùng.

Chức năng đặt hàng cho phép khách hàng dễ dàng thay đổi số lượng sản phẩm theo nhu cầu của mình Bên cạnh đó, khách hàng có thể lựa chọn phương thức thanh toán linh hoạt, bao gồm thanh toán trực tiếp hoặc thanh toán online qua ví PayPal.

 Quản lý giỏ hàng : chức năng của giỏ hàng là đựng những mặt hàng mà khách hàng chọn.

Sau khi xem thông tin sản phẩm, khách hàng có thể dễ dàng thêm mặt hàng mình cần vào giỏ hàng Nếu muốn lựa chọn thêm sản phẩm, họ chỉ cần quay lại trang sản phẩm để tiếp tục chọn và thêm vào giỏ hàng.

- Cập nhật số lượng sản phẩm : sau khi thêm sản phẩm vào giỏ hàng, nếu muốn tăng số lượng sản phẩm lên thì có thể cập nhật số lượng.

- Xóa sản phẩm : nếu không ưng ý mặt hàng đã chọn thì có thể xóa.

Quản lý sản phẩm là chức năng cho phép Admin hoặc Nhân viên cập nhật thông tin sản phẩm trong hệ thống Khi có thay đổi về thông tin của một sản phẩm, Admin sẽ thực hiện việc cập nhật để đảm bảo dữ liệu luôn chính xác và kịp thời.

- Thêm sản phẩm : Admin/Staff có thể thêm thông tin sản phẩm khi nhập mới một sản phẩm.

Admin và nhân viên có khả năng chỉnh sửa thông tin sản phẩm, bao gồm việc cập nhật thông tin cho các sản phẩm đã có trong cơ sở dữ liệu hoặc điều chỉnh một số thông tin liên quan đến sản phẩm đó.

- Tìm kiếm sản phẩm : Admin/Staff có thể tìm kiếm sản phẩm theo tên sản phẩm, loại sản phẩm,

- In danh sách sản phẩm : Admin có thể xuất danh sách sản phẩm.

 Quản lý đơn hàng : Admin/Staff quản lý đơn hàng khi khách hàng đặt mua sản phẩm của cửa hàng.

- Xem thông tin đơn hàng : Admin/Staff có thể xem thông tin chi tiết đơn đặt hàng của khách hàng.

- Cập nhật trạng thái : Admin/Staff có thể cập nhập trạng thái đơn hàng khi đơn hàng đã được giao hàng thành công.

- Xóa đơn hàng : Admin/Staff có thể có thể xóa đơn hàng của khách hàng khi đã được giao hàng thành công.

- Tìm kiếm đơn hàng : Admin/Staff có thể tìm kiếm đơn hàng nếu cần.

Quản lý danh mục sản phẩm là nhiệm vụ quan trọng, trong đó Admin/Staff cần cập nhật thông tin kịp thời khi có sự thay đổi Việc này đảm bảo rằng hệ thống luôn phản ánh chính xác các thông tin về danh mục sản phẩm.

- Thêm danh mục : Admin/Staff có thể thêm danh mục sản phẩm vào nếu chưa tồn tại danh mục sản phẩm đó.

- Sửa danh mục : Admin/Staff có thể sửa thông tin danh mục nếu danh mục sản phẩm đó đã được lưu trữ rồi.

- Xóa danh mục : Admin/Staff có thể xóa danh mục của sản phẩm đó khi không dùng sản phẩm của danh mục đó nữa.

Quản lý đánh giá sản phẩm là chức năng cho phép người dùng xem và xóa các đánh giá của khách hàng Chức năng này giúp cải thiện chất lượng sản phẩm thông qua việc theo dõi phản hồi từ người tiêu dùng.

-Đánh giá sản phẩm : Admin/Staff có thể đánh giá sản phẩm bất kì.

-Xem đánh giá : Admin/Staff có thể xem tất cả đánh giá của khách hàng.

-Xóa đánh giá : Admin có thể xóa bất kỳ đánh giá sản phẩm nào.

 Quản lý tài khoản chung : Admin quản lý tài khoản của những khách hàng đăng ký là thành viên của trang web và những nhân viên (staff).

- Tạo tài khoản : Admin thêm tài khoản Admin hoặc tài khoản Staff vào nếu chưa tồn tại tài khoản Admin hoặc Staff đó. của người dùng, Staff và Admin

- Sửa thông tin tài khoản : Admin sửa thông tin tài khoản (đổi mật khẩu) nếu tài khoản người dùng hoặc Staff đó đã được lưu trữ rồi.

- Xóa tài khoản : xóa tài khoản người dùng, tài khoản Staff và tài khoản Admin khi tài khoản đó không còn sử dụng nữa.

 Quản lý tài khoản khách hàng (Staff) :

- Xem thông tin tài khoản khách hàng : Staff có thể xem thông tin chi tiết tài khoản của người dùng

- Sửa thông tin tài khoản khách hàng : Staff sửa thông tin tài khoản nếu tài khoản người dùng đó đã được lưu trữ rồi.

- Xóa thông tin tài khoản khách hàng : xóa tài khoản người dùng khi tài khoản đó không còn sử dụng nữa.

 Quản lý nhập hàng : Admin/ Staff quản lý đơn nhập hàng khi cửa hàng nhập hàng mới về.

Admin và nhân viên có khả năng tạo đơn nhập hàng mới khi cần thiết Họ có thể sử dụng Excel để tạo đơn nhập hàng và sau đó lấy dữ liệu từ file vừa tạo để hoàn thiện đơn nhập.

- Xem đơn nhập hàng : Admin/Staff có thể xem thông tin chi tiết của đơn nhập hàng.

- Xóa đơn nhập hàng/Staff : có thể xóa đơn hàng khi đã nhận hàng thành công.

- Thống kê thu chi: Admin/Staff có thể xem chi phí nhập hàng, doanh thu theo tháng của website

Admin và nhân viên có thể thực hiện thống kê sản phẩm bán chạy bằng cách tổng hợp dữ liệu về tất cả các mặt hàng đã bán Điều này giúp xác định những sản phẩm nào có doanh số cao nhất và được tiêu thụ nhiều nhất theo từng tháng.

- Thống kê sản phẩm trong kho : Admin/Staff có thể xem thống kê các sản phẩm tồn kho, và các tình trạng của từng sản phẩm.

 Sao lưu và phục hồi dữ liệu: Admin có thể sao lưu và phục hồi dữ liệu về một thời điểm xác định

Biểu đồ tuần tự

Hình 3.31 : Biểu đồ tuần tự chức năng đăng nhập 3.7.2Biểu đồ tuần tự chức năng đăng ký

Hình 3.32 : Biểu đồ tuần tự chức năng đăng ký 3.7.3Biểu đồ tuần tự chức năng đổi mật khẩu

Hình 3.34 : Biểu đồ tuần tự chức năng quên mật khẩu 3.7.5Biểu đồ tuần tự chức năng tìm kiếm

Hình 3.35 : Biểu đồ tuần tự chức năng tìm kiếm

Hình 3.36 : Biểu đồ tuần tự chức năng đặt hàng 3.7.7Biểu đồ tuần tự chức năng thanh toán trực tuyến

Hình 3.37 : Biểu đồ tuần tự chức năng thanh toán trực tuyến 3.7.8Biểu đồ tuần tự chức năng quản lý sản phẩm

Hình 3.38 : Biểu đồ tuần tự chức năng quản lý sản phẩm

Hình 3.39 : Biểu đồ tuần tự chức năng quản lý danh mục 3.7.10 Biểu đồ tuần tự chức năng quản lý đơn hàng

Hình 3.40 : Biểu đồ tuần tự chức năng quản lý đơn hàng 3.7.11 Biểu đồ tuần tự chức năng quản lý nhập hàng

Hình 3.41 : Biểu đồ tuần tự chức năng quản lý nhập hàng của Admin

Hình 3.42 : Biểu đồ tuần tự chức năng quản lý nhập hàng của Nhân viên 3.7.12 Biểu đồ tuần tự chức năng quản lý đánh giá

Hình 3.43 : Biểu đồ tuần tự chức năng quản lý đánh giá sản phẩm 3.7.13 Biểu đồ tuần tự chức năng quản lý tài khoản khách hàng

Hình 3.44 : Biểu đồ tuần tự chức năng quản lý tài khoản khách hàng

Hình 3.45 : Biểu đồ tuần tự chức năng quản lý tài khoản nhân viên 3.7.15 Biểu đồ tuần tự chức năng thống kê

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

Biểu đồ hoạt động

3.8.1 Biểu đồ hoạt động chức năng đăng nhập

Hình 3.47 : Biểu đồ hoạt động chức năng đăng nhập

Hình 3.48 : Biểu đồ hoạt động chức năng đăng ký 3.8.3 Biểu đồ hoạt động chức năng quên mật khẩu

Hình 3.50 : Biểu đồ hoạt động chức năng đổi mật khẩu 3.8.5 Biểu đồ hoạt động chức năng đặt hàng

Hình 3.51 : Biểu đồ hoạt động chức năng đặt hàng

- Biểu đồ hoạt động chức năng thêm, sửa sản phẩm :

Hình 3.52 : Biểu đồ hoạt động chức năng thêm sửa sản phẩm của Admin

- Biểu đồ hoạt động chức năng xóa và in danh sách sản phẩm :

- Biểu đồ hoạt động chức năng thêm, sửa sản phẩm :

Hình 3.54 : Biểu đồ hoạt động chức năng thêm sửa sản phẩm của nhân viên

- Biểu đồ hoạt động chức năng xóa sản phẩm :

Hình 3.55 : Biểu đồ hoạt động chức năng xóa sản phẩm của nhân viên 3.8.7 Biểu đồ hoạt động chức năng quản lý tài khoản

- Biểu đồ hoạt động chức năng thêm và sửa tài khoản nhân viên và khách hàng :

Hình 3.57 : Biểu đồ hoạt động chức năng xóa tài khoản của Admin

- Biểu đồ hoạt động chức năng sửa tài khoản khách hàng :

Hình 3.58 : Biểu đồ hoạt động chức năng sửa tài khoản của nhân viên

- Biểu đồ hoạt động chức năng xóa tài khoản khách hàng :

Hình 3.59 : Biểu đồ hoạt động chức năng xóa tài khoản của nhân viên 3.8.8 Biểu đồ hoạt động chức năng quản lý danh mục

- Biểu đồ hoạt động chức năng thêm và sửa danh mục sản phẩm :

- Biểu đồ hoạt động chức năng xóa danh mục sản phẩm :

Hình 3.61 : Biểu đồ hoạt động chức năng xóa danh mục của Admin

- Biểu đồ hoạt động chức năng thêm và sửa danh mục sản phẩm : viên

- Biểu đồ hoạt động chức năng xóa danh mục sản phẩm :

Hình 3.63 : Biểu đồ hoạt động chức năng xóa danh mục của nhân viên 3.8.9 Biểu đồ hoạt dộng chức năng quản lý đơn hàng

- Biểu đồ hoạt động chức năng thay đổi trạng thái đơn hàng : của Admin

- Biểu đồ hoạt động chức năng thay đổi trạng thái đơn hàng :

Hình 3.65 : Biểu đồ hoạt động chức năng chỉnh sửa trạng thái đơn hàng của nhân viên 3.8.10 Biểu đồ hoạt động chức năng quản lý nhập hàng

- Biểu đồ hoạt động chức năng tạo đơn nhập hàng :

Hình 3.66 : Biểu đồ hoạt động chức năng thêm mới đơn nhập hàng của

- Biểu đồ hoạt động chức năng xóa đơn nhập hàng :

Hình 3.67 : Biểu đồ hoạt động chức năng xóa đơn nhập hàng của Admin

Hình 3.68 : Biểu đồ hoạt động chức năng thêm mới đơn nhập hàng của nhân viên 3.8.11 Biểu đồ hoạt động chức năng thống kê

Hình 3.69 : Biểu đồ hoạt động chức năng thống kê của Admin

Hình 3.70 : Biểu đồ hoạt động chức năng thống kê của nhân viên

Thiết kế cơ sở dữ liệu

 Xác định các thực thể :

- PRODUCTS(PRODUCTID, NAME, PRICE, QUANTITY,

DESCRIPTION, BRAND, PHOTO, CREATEDATE, UPDATEDATE, STATUS)

- PERSONS(PERSONID, EMAIL, PASSWORD, FULLNAME, DOB,

GENDER, ADDRESS, PHONENUMBER, ROLE, STATUS)

- REVIEW (REVIEWID , RATE_TEXT, RATE_NUM,

 Xác định mối quan hệ giữa các thực thể:

Mối quan hệ giữa hai thực thể PERSONS và PRODUCTS là 1-n, trong đó một nhân viên có thể thêm nhiều sản phẩm, nhưng một sản phẩm chỉ được thêm bởi một nhân viên duy nhất Đồng thời, một danh mục có thể chứa nhiều sản phẩm, trong khi mỗi sản phẩm chỉ thuộc về một danh mục cụ thể.

Mối quan hệ giữa hai thực thể PERSONS và ODERBILL là một-n, trong đó một nhân viên có khả năng tạo ra nhiều đơn hàng, nhưng mỗi đơn hàng chỉ được tạo bởi một nhân viên duy nhất.

Giữa hai thực thể PRODUCTS và ORDERBILL tồn tại mối quan hệ n-n, trong đó một sản phẩm có thể thuộc nhiều đơn đặt hàng và ngược lại, một đơn đặt hàng có thể chứa nhiều sản phẩm.

Trong hệ thống, mối quan hệ giữa hai thực thể PERSONS và ORDERIMPORT là mối quan hệ 1-n, trong đó một nhân viên có khả năng tạo ra nhiều đơn nhập hàng, nhưng mỗi đơn nhập hàng chỉ được tạo bởi một nhân viên duy nhất.

Mối quan hệ giữa hai thực thể PRODUCTS và ORDERIMPORT là mối quan hệ nhiều-nhiều (n-n), trong đó một sản phẩm có thể thuộc về nhiều đơn nhập hàng, và ngược lại, một đơn nhập hàng có thể chứa nhiều sản phẩm khác nhau.

Trong mối quan hệ giữa hai thực thể PERSONS và REVIEW, mỗi khách hàng có khả năng thực hiện nhiều đánh giá, trong khi mỗi đánh giá chỉ được thực hiện bởi một khách hàng duy nhất.

Giữa hai thực thể PRODUCTS và REVIEW tồn tại mối quan hệ 1-n, trong đó một sản phẩm có thể nhận được nhiều đánh giá, trong khi mỗi đánh giá chỉ phản ánh chất lượng của một sản phẩm cụ thể.

 Mô hình thực thể kết hợp:

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

- PRODUCTS(PRODUCTID, NAME, PRICE, QUANTITY,

DESCRIPTION, BRAND, PHOTO, CREATEDATE, UPDATEDATE, STATUS, UPDATEBY, PRODUCTTYPE)

- PERSONS(PERSONID, EMAIL, PASSWORD, FULLNAME, DOB,

GENDER, ADDRESS, PHONENUMBER, ROLE, STATUS)

- REVIEW (REVIEWID, RATE_NUM, RATE_TEXT,

Email Text Email người dùng

Password Text Mật khẩu người dùng

Fullname Text Tên người dùng

Phonenumber Text Số điện thoại

Status Bool Trạng thái người dùng

Bảng 3.1: Bảng dữ liệu người dùng (PERSONS)

STT Tên Loại Kiểu Miền giá trị Ý nghĩa

Khóa chính Int Mã thể loại

Name Text Tên thể loại

Bảng 3.2: Bảng dữ liệu danh mục (CATEGORIES)

STT Tên Loại Kiểu Miền giá trị Ý nghĩa

Khóa chính Text Mã sản phẩm

Name Text Tên sản phẩm

Price Float Giá sản phẩm

Quantity Int Số lượng còn

Description Text Miêu tả sản phẩm

Brand Bool Hãng của sản phẩm

Photo Bytea Hình sản phẩm

CreateDate Timestamp Ngày tạo sản phẩm

UpdateDate Timestamp Ngày sửa sản phẩm

UpdateBy Khóa ngoại Int Người cập nhật sản phẩm

Status Bool Trạng thái sản phẩm productType Khóa ngoại Int Thể loại sản phẩm

Bảng 3.3: Bảng dữ liệu sản phẩm (PRODUCTS)

The article outlines a structured format for product reviews, including key elements such as reviewId as the primary key, productId and customerId as foreign keys, and various attributes like rateNum for star ratings, rateText for the review content, and dateReview for the review date Each review is associated with a specific product and user, ensuring a comprehensive evaluation of the product's quality and customer satisfaction.

Bảng 3.4: Bảng dữ liệu đánh giá sản phẩm (Review)

STT Tên Loại Kiểu Miền giá trị Ý nghĩa

Khóa chính Text Mã đơn hàng customerId Khóa ngoại Int Mã người sử dụng

Timebought Timestamp Ngày giờ đặt hàng

Address Text Địa chỉ giao hàng

Status Bool Trạng thái đơn hàng ispay Bool Trạng thái thanh toán

Bảng 3.5: Bảng dữ liệu đơn đặt hàng (Orderbill)

OrderId Khóa chính Int Mã đơn hàng

ProductId Khóa chính Text Mã sản phẩm

Amount Int Số lượng mua

Bảng 3.6: Bảng dữ liệu chi tiết đơn đặt hàng (OrderDetails)

STT Tên Loại Kiểu Miền giá trị Ý nghĩa

Khóa Int Mã đơn nhậ p hàn g

Khóa Int Mã nhân viên tạo

Times Thời gian lúc tạo

4 Status Bool Trạng thái đơn nhậ p

Bảng 3.7: Bảng dữ liệu đơn nhập hàng (Orderimport)

STT Tên Loại Kiểu Miền giá trị Ý n g hĩ a

Bảng 3.8: Bảng dữ liệu chi tiết đơn nhập hàng (OrderimportDetails)

Hình 3.72 : Sơ đồ quan hệ cơ sở dữ liệu

PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH

KIỂM THỬ CHƯƠNG TRÌNH

Ngày đăng: 14/05/2022, 20:33

HÌNH ẢNH LIÊN QUAN

⇒ IK là đường trung bình của hình thang. - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
l à đường trung bình của hình thang (Trang 3)
a. Vẽ hình đúng - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
a. Vẽ hình đúng (Trang 3)
Hình 1. 3: Java chạy trên nhiều hệ điều hành - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 1. 3: Java chạy trên nhiều hệ điều hành (Trang 24)
Hình 1. 4: Hình ảnh Netbeans - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 1. 4: Hình ảnh Netbeans (Trang 25)
Hình 3.3: Sơ đồ use case tổng quát chức năng của khách hàng - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.3 Sơ đồ use case tổng quát chức năng của khách hàng (Trang 46)
3.3.1 Mô hình use case chức năng đăng nhập, đăng kí của khách hàng - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
3.3.1 Mô hình use case chức năng đăng nhập, đăng kí của khách hàng (Trang 46)
Hình 3.3 1: Biểu đồ tuần tự chức năng đăng nhập 3.7.2Biểu đồ tuần tự chức năng đăng ký. - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.3 1: Biểu đồ tuần tự chức năng đăng nhập 3.7.2Biểu đồ tuần tự chức năng đăng ký (Trang 64)
Hình 3.3 7: Biểu đồ tuần tự chức năng thanh toán trực tuyến 3.7.8Biểu đồ tuần tự chức năng quản lý sản phẩm. - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.3 7: Biểu đồ tuần tự chức năng thanh toán trực tuyến 3.7.8Biểu đồ tuần tự chức năng quản lý sản phẩm (Trang 66)
Hình 3.4 2: Biểu đồ tuần tự chức năng quản lý nhập hàng của Nhân viên 3.7.12Biểu đồ tuần tự chức năng quản lý đánh giá. - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.4 2: Biểu đồ tuần tự chức năng quản lý nhập hàng của Nhân viên 3.7.12Biểu đồ tuần tự chức năng quản lý đánh giá (Trang 68)
Hình 3.4 5: Biểu đồ tuần tự chức năng quản lý tài khoản nhân viên 3.7.15Biểu đồ tuần tự chức năng thống kê. - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.4 5: Biểu đồ tuần tự chức năng quản lý tài khoản nhân viên 3.7.15Biểu đồ tuần tự chức năng thống kê (Trang 69)
Hình 3.5 4: Biểu đồ hoạt động chức năng thêm sửa sản phẩm của nhân viên - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.5 4: Biểu đồ hoạt động chức năng thêm sửa sản phẩm của nhân viên (Trang 73)
Hình 3.5 6: Biểu đồ hoạt động chức năng thêm sửa tài khoản của Admin - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.5 6: Biểu đồ hoạt động chức năng thêm sửa tài khoản của Admin (Trang 74)
Hình 3.6 0: Biểu đồ hoạt động chức năng thêm sửa danh mục của Admin - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.6 0: Biểu đồ hoạt động chức năng thêm sửa danh mục của Admin (Trang 76)
Hình 3.6 5: Biểu đồ hoạt động chức năng chỉnh sửa trạng thái đơn hàng của nhân viên - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.6 5: Biểu đồ hoạt động chức năng chỉnh sửa trạng thái đơn hàng của nhân viên (Trang 79)
Hình 3.6 9: Biểu đồ hoạt động chức năng thống kê của Admin - Đề tài XÂY DỰNG WEBSITE BÁN XE ĐẠP | PTITHCM 2017
Hình 3.6 9: Biểu đồ hoạt động chức năng thống kê của Admin (Trang 81)

TỪ KHÓA LIÊN QUAN

w