1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng website bán quần áo thể thao

127 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 Website Bán Quần Áo Thể Thao
Tác giả Nguyễn Văn Đạt, Hoàng Minh Thành
Người hướng dẫn ThS. Nguyễn Minh Đạo
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 127
Dung lượng 9,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phía người quản trị Cho phép người quản tr vào trang web để: - Trang chi tiết sản phẩm - Thêm sản phẩm vào giỏ hàng - Tìm kiếm sản phẩm Cho phép khách đã có tài khoản truy cập: - Tất

Trang 1

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG WEBSITE BÁN QUẦN ÁO THỂ THAO

GVHD: THS NGUYỄN MINH ĐẠO SVTH: NGUYỄN VĂN ĐẠT

HOÀNG MINH THÀNH

Trang 2

-

MSSV: 16110050

MSSV: 18110196

Ngành: CÔNG NGHỆ PHẦN MỀM

NGÀNH CÔNG NGHỆ THÔNG TIN

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG WEBSITE BÁN QUẦN ÁO THỂ THAO

GVHD: ThS NGUYỄN MINH ĐẠO

SVTH: NGUYỄN VĂN ĐẠT

SVTH: HOÀNG MINH THÀNH

Trang 3

NGÀNH CÔNG NGHỆ THÔNG TIN

-

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG WEBSITE BÁN QUẦN ÁO THỂ THAO

Trang 4

Tp Hồ Chí Minh, ngày 21 Tháng 12 năm 2022

NHIỆM VỤ KHÓA LUẬN TỐT NGHIỆP

Họ và tên sinh viên: Nguyễn Văn Đạt MSSV: 16110050

Ngành: Công Nghệ Thông Tin Lớp: 16110CLST1

Họ và tên sinh viên: Hoàng Minh Thành MSSV: 18110196

Ngành: Công Nghệ Thông Tin Lớp: 18110CLST1

Giảng viên hướng dẫn: ThS Nguyễn Minh Đạo

Ngày nhận đề tài: 05/09/2022 Ngày nộp đề tài: 21/12/2022

1 Tên đề tài: Xây dựng website bán quần áo thể thao

2 Các số liệu, tài liệu ban đầu: Khảo sát hiện trạng thông qua các website

thương mại điện tử phổ biến hiện này và áp dụng những thông tin tìm được

vào đồ án

3 Nội dung thực hiện đề tài:

Xây dựng ứng dụng web cho phép khách hàng có thể đặt hàng trực tuyến

(Ký & ghi rõ họ tên)

GIẢNG VIÊN HƯỚNG DẪN

(Ký & ghi rõ họ tên)

Trang 5

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Họ và tên sinh viên: Nguyễn Văn Đạt MSSV: 16110050

Họ và tên sinh viên: Hoàng Minh Thành MSSV: 18110196

Ngành: Công Nghệ Thông Tin

Tên đề tài: Website bán quần áo thể thao trực tuyến

Họ và tên Giáo viên hướng dẫn: ThS Nguyễn Minh Đạo

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

………

………

………

2 Ưu điểm: ………

………

………

3 Khuyết điểm: ………

………

………

4 Đề ngh cho bảo vệ hay không? ………

………

………

5 Đánh giá loại:………

6 Điểm:……… (Bằng Chữ:……… )

Tp Hồ Chí Minh, ngày tháng 12 năm 2022

Giảng viên hướng dẫn

(Ký & ghi rõ họ tên)

Trang 6

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên sinh viên: Nguyễn Văn Đạt MSSV: 16110050

Họ và tên sinh viên: Hoàng Minh Thành MSSV: 18110196

Ngành: Công Nghệ Thông Tin

Tên đề tài: Website bán quần áo thể thao trực tuyến

Họ và tên Giáo viên phản biện: TS Lê Văn Vinh

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

………

………

………

2 Ưu điểm: ………

………

………

3 Khuyết điểm: ………

………

………

4 Đề ngh cho bảo vệ hay không? ………

………

………

5 Đánh giá loại:……… ………

6 Điểm:………(Bằng Chữ: ……… ……….)

Tp Hồ Chí Minh, ngày tháng 12 năm 2022

Giảng viên hướng dẫn

(Ký & ghi rõ họ tên)

Trang 7

Lời đầu tiên nhóm xin phép được gửi lời cảm ơn chân thành và sâu sắc nhất đến với Khoa Đào tạo Chất Lượng cao – Ngành Công Nghệ Thông Tin – Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh đã tạo điều kiện cho nhóm chúng em được học tập, phát triển nền tảng kiến thức sâu sắc và thực hiện đề tài này

Bên cạnh đó nhóm chúng em xin gửi đến thầy Nguyễn Minh Đạo lời cảm ơn sâu sắc nhất Trải qua một quá trình dài học tập và thực hiện đề tài trong thời gian qua Thầy

đã tận tâm chỉ bảo nhiệt tình nhóm chúng em trong suốt quá trình từ lúc bắt đầu cũng như kết thúc đề tài này

Nhờ có những nền tảng kiến thức chuyên ngành vững chắc cộng thêm với những kinh nghiệm và yêu cầu thực tế ngoài xã hội thông qua việc học ở trường và thực tập ở các công ty Tập thể các thầy cô Khoa Công Nghệ Thông Tin và đặc biệt thầy Nguyễn Minh Đạo đã tặng cho chúng em một khối lượng kiến thức và kinh nghiệm khổng lồ

về chuyên ngành và công việc trong tương lai Đặc biệt điều này đã giúp và thôi thúc chúng em hoàn thành được đề tài Đây sẽ là hành trang vô cùng lớn của chúng em trước khi bước ra một cuộc sống mới

Tuy nhiên lượng kiến thức là vô tận và với khả năng hạn hẹp chúng em đã rất cố gắng

để hoàn thành một cách tốt nhất Chính vì vậy việc xảy ra những thiếu sót là điều khó

có thể tránh khỏi Chúng em hi vọng nhận được sự góp ý tận tình của quý thầy (cô) qua đó chúng em có thể rút ra được bài học kinh nghiệm và hoàn thiện và cải thiện nâng cấp lại sản phẩm của mình một cách tốt nhất có thể

Chúng em xin chân thành cảm ơn!

Nhóm sinh viên thực hiện

Trang 8

LỜI CẢM ƠN 1

MỤC LỤC 2

DANH MỤC HÌNH 5

DANH MỤC BẢNG 7

Chương 1 MỞ ĐẦU 9

1.1 Lý do chọn đề tài 9

1.2 Mục tiêu đề tài 9

1.3 Đối tượng và phạm vi nghiên cứu 9

1.3.1 Đối tượng 9

1.3.2 Phạm vi nghiên cứu 9

1.4 Kết quả dự kiến đạt được 10

1.4.1 Phía người quản tr 10

1.4.2 Phía người dùng 10

Chương 2 CƠ SỞ LÝ THUYẾT 11

2.1 Tổng quan về Java 11

2.1.1 Một số khái niệm trong Java 11

2.1.2 Ưu điểm của Java 11

2.1.3 Nhược điểm của Java 11

2.2 Tổng quan về Spring Boot 11

2.2.1 Một số khái niệm trong Spring Boot 12

2.2.2 Ưu điểm Spring Boot 12

2.2.3 Nhược điểm Spring Boot 12

2.2.4 Môi trường phát triển Spring Boot 12

2.3 Tổng quan về MongoDB 12

2.3.1 Một số khái niệm trong MongoDB 12

2.3.2 Ưu điểm của MongoDB 13

2.3.3 Nhược điểm của MongoDB 13

2.3.4 Môi trường phát triển MongoDB 13

Trang 9

2.5 Tổng quan về CSS 14

2.6 Tổng quan về Javascript 14

2.7 Tổng quan về React JS 14

2.8 Môi trường phát triển React JS 15

2.9 Kiến trúc về React JS 15

2.9.1 Component 15

2.9.2 Functional Component 15

2.9.3 Class Component 15

2.9.4 Props 15

2.9.5 State 16

2.9.6 Hook 16

2.9.7 Effect Hook 16

2.9.8 Life Cycle 16

2.10 Cài đặt môi trường cho React JS 17

Chương 3 KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 18

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

3.1.1 Adidas: https://www.adidas.com.vn/ 18

3.1.2 Sport1: https://sport1.vn/ 22

3.2 Xác đ nh yêu cầu 24

3.2.1 Lược đồ Usecase 24

3.2.2 Bảng Requirement dành cho Usecase 26

3.2.3 Đặc tả Usecase 29

Chương 4 THIẾT KẾ ỨNG DỤNG 60

4.1 Sơ đồ Class Diagram 60

4.1.1 Sơ đồ thiết kế class diagram 60

4.1.2 Mô tả thiết kế class diagram 60

4.2 Sơ đồ tuần tự 69

4.3 Thiết kế giao diện 81

4.4.1 SCP001 Giao diện trang đăng nhập 81

4.4.2 SCP002 Giao diện trang đăng ký 83

Trang 10

4.4.3 SCP003 Giao diện trang chủ 85

4.4.4 SCP004 Giao diện trang hiển th sản phẩm 87

4.4.5 SCP005 Giao diện trang danh mục 89

4.4.6 SCP006 Giao diện trang giỏ hàng 90

4.4.7 SCP007 Giao diện trang thanh toán 91

4.4.8 SCP008 Giao diện trang đơn hàng 91

4.4.9 SCP009 Giao diện trang Admin 92

4.4.10 SCP010 Giao diện trang quản lý khách hàng 95

4.4.11 SCP011 Giao diện trang quản lý sản phẩm 97

4.4.12 SCP012 Giao diện trang quản lý đơn hàng 100

4.4.13 SCP013 Giao diện trang quản lý danh mục 101

4.4.14 SCP014 Giao diện trang quản lý Admin 102

4.4.15 SCP015 Giao diện trang quản lý thông tin cá nhân 104

Chương 5 CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG 105

5.1 Cài đặt ứng dụng 105

5.2 Kiểm thử phần mềm 114

Chương 6 KẾT LUẬN 117

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

6.1.1 Kiến thức tìm hiểu được 117

6.1.2 Về chương trình đã xây dựng 117

6.1.3 Ưu khuyết điểm 117

6.2 Hướng phát triển 117

BẢNG NHỮNG TỪ VIẾT TẮT 118

TÀI LIỆU THAM KHẢO 119

Trang 11

DANH MỤC HÌNH

Hình 3 1 Trang chủ Adidas 18

Hình 3 2 Trang đăng nhập Adidas 19

Hình 3 3 Trang đăng ký gia nhập AdiClub 20

Hình 3 4 Trang nhập mã khuyến mãi 21

Hình 3 5 Trang chat trực tiếp 21

Hình 3 6 Trang chủ Sport1 22

Hình 3 7 Trang nhập mã khuyến mãi 23

Hình 3 8 Trang chat, gọi điện qua bên thứ 3 23

Hình 3 9 Lược đồ usecase tổng quát 24

Hình 3 10 Lược đồ usecase actor User 25

Hình 3 11 Lược đồ usecase actor Admin 26

Hình 4 1 Class diagram 60

Hình 4 2 Sequence diagram đăng nhập 69

Hình 4 3 Sequence diagram người dùng đăng ký tài khoản 70

Hình 4 4 Sequence diagram quên mật khẩu 71

Hình 4 5 Sequence diagram thêm sản phẩm vào giỏ hàng 72

Hình 4 6 Sequence diagram cập nhập giỏ hàng 73

Hình 4 7 Sequence Diagram chức năng đặt hàng 74

Hình 4 8 Sequence Diagram chức năng cập nhập thông tin cá nhân 75

Hình 4 9 Sequence Diagram xác nhận đơn hàng 76

Hình 4 10 Sequence Diagram hủy đơn hàng 77

Hình 4 11 Sequence Diagram thêm nhân viên 78

Hình 4 12 Sequence Diagram thêm sản phẩm 79

Hình 4 13 Sequence Diagram sửa sản phẩm 80

Hình 4 15 Giao diện trang đăng nhập 81

Hình 4 16 Giao diện trang đăng ký 83

Hình 4 17 Giao diện trang chủ 85

Hình 4 18 Giao diện trang hiển th sản phẩm 87

Hình 4 19 Giao diện trang danh mục 89

Hình 4 20 Giao diện trang giỏ hàng 90

Hình 4 21 Giao diện trang thanh toán 91

Hình 4 22 Giao diện trang đơn hàng 91

Hình 4 23 Giao diện trang chủ Admin 92

Hình 4 24 Giao diện trang Admin 93

Hình 4 25 Giao diện trang quản lý khách hàng 95

Hình 4 26 Giao diện trang thêm khách hàng 96

Hình 4 27 Giao diện trang quản lý sản phẩm 97

Trang 12

Hình 4 28 Giao diện thêm sản phẩm 98

Hình 4 29 Giao diện sửa sản phẩm 99

Hình 4 30 Giao diện trang quản lý đơn hàng 100

Hình 4 31 Giao diện trang quản lý danh mục 101

Hình 4 32 Giao diện trang thêm danh mục 102

Hình 4 33 Giao diện trang quản lý Admin 102

Hình 4 34 Giao diện trang thêm Admin 103

Hình 4 35 Giao diện trang quản lý thông tin cá nhân 104

Hình 5 1 MongoDB đăng nhập 105

Hình 5 2 MongoDB trang chủ 106

Hình 5 3 MongoDB tạo kết nối 107

Hình 5 4 MongoDB tạo kết nối (tt) 108

Hình 5 5 Back-End cài đặt package 109

Hình 5 6 Back-End chỉnh sửa kết nôi MongoDB 109

Hình 5 7 Back-End Chạy ứng dụng 110

Hình 5 8 Back-End trang chủ 111

Hình 5 9 Cài đặt thư viện Front-end 112

Hình 5 10 Khởi chạy Front-end 112

Hình 5 11 Chạy thành công Front-end 113

Trang 13

DANH MỤC BẢNG

Bảng 3 1 Bảng yêu cầu dành cho Usecase 26

Bảng 3 2 Đặc tả usecase đăng nhập 29

Bảng 3 3 Đặc tả usecase đăng xuất 31

Bảng 3 4 Bảng đặc tả usecase đăng ký tài khoản 32

Bảng 3 5 Đặc tả Usecase quản lý bác sĩ 33

Bảng 3 6 Đặc tả Usecase thêm thông tin bác sĩ 35

Bảng 3 7 Đặc tả usecase xem thông tin bác sĩ 36

Bảng 3 8 Đặc tả usecase đăng ký l ch khám 37

Bảng 3 9 Đặc tả usecase tạo đơn hàng 39

Bảng 3 10 Đặc tả usecase thanh toán 40

Bảng 3 11 Đặc tả usecase theo dõi đơn hàng 42

Bảng 3 12 Đặc tả usecase xem thông tin cá nhân 43

Bảng 3 13 Đặc tả usecase chỉnh sửa thông tin 44

Bảng 3 14 Đặc tả usecase xem các bác sĩ có trong chuyên khoa 46

Bảng 3 15 Đặc tả usecase thêm sản phẩm mới 47

Bảng 3 16 Đặc tả usecase quản lý sản phẩm xóa sản phẩm 49

Bảng 3 17 Đặc tả usecase quản lý sản phẩm - sữa sản phẩm 50

Bảng 3 18 Bảng đặc tả usecase quản lý khách hàng - xem thông tin 51

Bảng 3 19 Đặc tả usecase quản lý khách hàng - chỉnh sửa thông tin 53

Bảng 3 20 Bảng đặc tả usecase quản lý khách hàng - thay đổi trạng thái 55

Bảng 3 21 Đặc tả usecase quản lý đơn hàng - xem đơn hàng 56

Bảng 3 22 Đặc tả usecase cập nhật thông tin l ch khám chữa bệnh cho bác sĩ 58

Bảng 4 1 Mô tả Class User 60

Bảng 4 2 Mô tả Class Product 61

Bảng 4 3 Mô tả Class Transaction 62

Bảng 4 4 Mô tả Class Order 63

Bảng 4 5 Mô tả Class Category 64

Bảng 4 6 Mô tả Class EmbeddedSize 65

Bảng 4 7 Mô tả Class EmbeddedAddress 65

Bảng 4 8 Mô tả Class EmbeddedCategory 65

Bảng 4 9 Mô tả Class EmbeddedDescription 66

Bảng 4 10 Mô tả Class EmbeddedOption 66

Bảng 4 11 Mô tả Class EmbeddedPayment 66

Bảng 4 12 Mô tả Class EmbeddedPrice 67

Bảng 4 13 Mô tả Class EmbeddedProductsInOrder 67

Bảng 4 14 Mô tả Class Like 68

Bảng 4 15 Mô tả Class Comment 68

Trang 14

Bảng 4 16 Mô tả Class EmbeddedComment 68

Bảng 4 17 Bảng mô tả màn hình đăng nhập 82

Bảng 4 18 Bảng mô tả màn hình đăng ký 84

Bảng 4 19 Bảng mô tả màn hình trang chủ Web 86

Bảng 4 20 Bảng mô tả màn hình trang hiển th sản phẩm 88

Bảng 4 21 Bảng mô tả màn hình danh mục 89

Bảng 4 22 Bảng mô tả màn hình giỏ hàng 90

Bảng 4 23 Bảng mô tả màn hình trang đơn hàng 92

Bảng 4 24 Bảng mô tả màn hình trang chủ Admin 93

Bảng 4 25 Bảng mô tả màn hình trang Admin 93

Bảng 4 26 Bảng mô tả màn hình trang quản lý khách hàng 95

Bảng 4 27 Bảng mô tả màn hình trang quản lý sản phẩm 97

Bảng 4 28 Bảng mô tả màn hình quản lý danh mục 101

Bảng 5 1 Bảng kiểm thử phần mềm 114

Trang 15

Chương 1 MỞ ĐẦU

Cùng với xu thế phát triển công nghệ trên thế giới, thương mại điện tử ở Việt Nam đang từng bước hình thành, tăng trưởng mạnh mẽ, và giữ vai trò ngày càng quan trọng trong phân phối hàng hóa

Thương mại điện tử càng được biết tới như một phương thức kinh doanh hiệu quả từ khi Internet hình thành và phát triển Chính vì vậy, nhiều người hiểu thương mại điện tử theo nghĩa cụ thể hơn là giao d ch thương mại, mua sắm qua Internet và mạng

Thương mại điện tử được thực hiện đối với các hoạt động truyền thống (chăm sóc sức khỏe, giáo dục,…), thương mại d ch vụ (d ch vụ pháp lý, d ch vụ tài chính,….) và đặc biệt thương mại hàng hóa (hàng gia dụng, quần áo,….) Bạn chỉ cần vào các trang d ch vụ thương mại điện tử, làm theo hướng dẫn và click vào những gì bạn cần Tóm lại, thương mại điện tử đang dần trở thành một cuộc cách mạng có thể thay đổi hoàn toàn cách thức mua sắm của con người trong tương lai

Để tiếp cận và góp phần đẩy mạnh sự phổ biến của thương mại điện tử ở Việt Nam Chúng tôi đã tìm hiểu, xây dựng và cài đặt website bán quần áo thể thao online

Đề tài này nhằm xây dựng một trang web cho việc mua bán quần áo thể thao trực tuyến một các dễ dàng, vận dụng tốt các kiếm thức về công nghệ Spring Boot, ReactJS và MongoDB cho ứng dụng Đề tài này có thể giúp người bán hàng quản lý, theo giỏi sản phẩm, đơn hàng, khách hàng, xem thống kê doanh thu Ngoài ra, đề tài tạo ra cho người dùng một nơi mua sản trực tuyến, dễ dàng tìm kiếm sản phẩm, đặt hàng và thanh toán

Trang 16

khuyến mãi của cửa hàng để từ đó đưa ra các quyết đ nh mua hàng và sở hữu sản phẩm của cửa hàng

1.4.1 Phía người quản trị

Cho phép người quản tr vào trang web để:

- Trang chi tiết sản phẩm

- Thêm sản phẩm vào giỏ hàng

- Tìm kiếm sản phẩm

Cho phép khách đã có tài khoản truy cập:

- Tất cả các trang khách vãng lai có thể truy cập

- Trang đăng nhập

- Trang đăng xuất

- Trang thông tin cá nhân

- Trang đặt hàng

- Trang thanh toán

- Trang theo dõi đơn hàng

Trang 17

Chương 2 CƠ SỞ LÝ THUYẾT

Java là một ngôn lập trình hướng đối tượng, trong java tất cả đều là đối tượng JVM: là máy ảo Java, JVM cung cấp môi trường thực thi chương trình Java, vì thế một ứng dụng Java có thể chạy trên bất kỳ nền tảng nào có JVM

Java không phụ thuộc vào hệ điều hành, khi biên d ch Java sẽ biên d ch ra byte code, byte code sẽ được chạy trên JVM

JDK: là bộ công cụ giúp phát triển ứng dụng Java, JDK sẽ biên d ch code, sau

đó chạy và xử lý trên JVM và JRE

JRE: là một gói công cụ được sử dụng để chạy code

Java là ngôn ngữ lập trình đa nền tảng, hướng đối tượng và cho phép lập trình

đa luồng, độc lập nền tảng nên có thể chạy ở mọi nơi

Java là ngôn ngữ lập trình bậc cao, giúp cho việc viết code dễ dàng, có hiệu

Java biên d ch ra byte code và chạy trên JVM thông qua JRE nên tốc độ sẽ

chậm hơn, tốn nhiều tài nguyên hơn, mặc dù là một ngôn ngữ cấp cao nhưng đoạn mã viết bằng Java dài và phức tạp, Java có rất ý trình tạo GUI nên việc phát triển các ứng dụng desktop khá vất vã

Spring Boot là một module của Spring Framework, được xây dựng nhằm phát triển các ứng dụng java nhanh hơn, đơn giản hơn Spring Boot giúp đơn giản hoá

Trang 18

trong việc cấu hình ứng dụng, giúp người lập trình tập trung vào việc phát triển business của ứng dụng.[2]

Dependency Injection: trong Spring là một mẫu thiết kế được sử dụng để loại

bỏ các phụ thuộc, giúp cho việc quản lý và kiểm thử ứng dụng trở nên dễ dàng hơn Dependency Injection giúp cho các đoạn mã ít phụ thuộc vào nhau hơn[3]

Aspect Oriented Programming: là một kỹ thuật lập trình (kiểu như lập trình

hướng đối tượng) nhằm phân tách chương trình thành các module riêng rẽ, phân biệt, không phụ thuộc nhau[4]

Spring Boot là một module của Spring Framework, nên Spring Boot kế thừa tất

cả các tính năng của Spring Framework

Đơn giản hoá trong việc cấu hình ứng dụng, chạy độc lập, dễ dàng deploy vì

các ứng dụng server được nhúng trực tiếp vào ứng dụng

Dễ dàng thêm các thư viện bên ngoài

Do việc tự cấu hình nên Spring Boot tạo ra nhiều phụ thuộc dẫn đến kích thước tệp lớn

Intellij IDEA Ultimate Editor: Là một công cụ lập trình Java, được phát triển bởi JetBrains, hỗ trợ trên nhiều nền tảng như Windows, MacOS, Linux

Intellij có bộ debug đi kèm cực kỳ mạnh mẽ, hỗ trợ lập trình nhiều loại ứng dụng khác nhau như : Spring Framework, Angular, React

Intellij hỗ trợ một bộ phím tắt giúp việc phát triển ứng dụng trở nên nhẹ nhàng hơn, hỗ trợ gợi ý code cực kỳ thông minh, có một kho các tiện ích khổng lồ

MongoDB là một cơ sở dữ liệu mã nguồn mở được viết bằng C++, là một dạng

cơ sở dữ liệu dạng NoSQL có hiệu năng cao, khả năng mở rộng dễ dàng, dữ liệu được lưu ở dạng document với một cặp key-value.[5]

Trang 19

một giá tr duy nhất trong document

Collection: là một nhóm nhiều document trong MongoDB

Document: là một bảng ghi dữ liệu

- MongoDB có hiệu năng cao, dễ dàng sử dụng, khả năng mở rộng tốt

- Ít schema hơn các RDBMS, mô hình dữ liệu linh hoạt

- Có tốc độ truy cập dữ liệu nhanh

- MongoDB sử dụng nhiều bộ nhớ, b giới hạn data size

Mongo Atlas là một cơ sở dữ liệu đám mây, chạy trên hạ tầng đám mây của AWS, Azure, Google Cloud Chúng ta có thể sử dụng MongoDB Atlas bằng cách truy cập vào trang chủ và đăng nhập nhanh bằng tài khoản Google

- Có nhiều tài nguyên hỗ trợ với cộng đồng người dùng vô cùng lớn

- Có thể hoạt động mượt mà trên hầu hết mọi trình duyệt hiện nay

- Các markup sử dụng trong HTML thường ngắn gọn, có độ đồng nhất cao

- Sử dụng mã nguồn mở, hoàn toàn miễn phí

- HTML là chuẩn web được vận hành bởi W3C

- Dễ dàng để tích hợp với các loại ngôn ngữ backend (ví dụ như: PHP, Node.js,…)

Trang 20

Nhược điểm:

- Chỉ được áp dụng chủ yếu cho web tĩnh Nếu muốn tạo các tính năng động, lập trình viên phải dùng thêm JavaScript hoặc ngôn ngữ backend của bên thứ 3 (ví dụ như: PHP)

- Mỗi trang HTML cần được tạo riêng biệt, ngay có khi có nhiều yếu tố trùng lặp như header, footer

- Khó để kiểm soát cách đọc và hiển th file HTML của trình duyệt (ví dụ, một số trình duyệt cũ không render được tag mới Do đó, dù trong HTML document có sử dụng các tag này thì trình duyệt cũng không đọc được)

- Một vài trình duyệt còn chậm cập nhật để hỗ trợ tính năng mới của HTML

CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng để tìm và đ nh dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML) Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web

Phương thức hoạt động của CSS là nó sẽ tìm dựa vào các vùng chọn, vùng chọn

có thể là tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác Sau đó là nó sẽ áp dụng các thuộc tính cần thay đổi lên vùng chọn đó

Mối tương quan giữa HTML và CSS rất mật thiết HTML là ngôn ngữ markup (nền tảng của site) và CSS đ nh hình phong cách (tất cả những gì tạo nên giao diện website), chúng là không thể tách rời.[7]

JavaScript là ngôn ngữ lập trình website phổ biến hiện nay, nó được tích hợp và nhúng vào HTML giúp website trở nên sống động hơn JavaScript đóng vai trò như là một phần của trang web, thực thi cho phép Client-side script từ phía người dùng cũng như phía máy chủ (Nodejs) tạo ra các trang web động.[8]

React JS là một thư viện Javascript được phát triển bởi Facebook để phát triển các ứng dụng Single Page Application Nó hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có tính tái sử dụng cao

Trang 21

phần mềm riêng lẻ, cho phép các developer có chức năng phá vỡ giao diện của người dùng từ một cách phức tạp và biến nó trở thành các phần mềm đơn giản Hiểu đơn giản thì các render dữ liệu không chỉ được thực hiện ở v trí server mà còn ở v trí client khi sử dụng ReactJS [9]

NodeJS và NPM : NodeJS là nền tảng cần thiết cho sự phát triển ReactJS Kiểm tra thiết lập môi trường NodeJS

Sau khi cài đặt Node JS, ta bắt đầu cài đặt React sử dụng npm để cài đặt React JS

React Native có 2 loại component: Functional (Stateless) và Class (Stateful)

Functional components cũng được nói với một cái tên là stateless components bởi vì chúng ta không thể làm nhiều thứ phức tạp như quản lý React State (data) hoặc phương thức life-cycle trong functional components Tuy nhiên, React giới thiệu React Hooks trong versions 16.8, giờ nó cho phép chúng ta sử dụng state và những features khác trong functional components

Trang 22

đó là không bao giờ nên thay đổi giá tr của nó, hay nói cách khác, đây là một dữ liệu immutable Các component nhận props từ component cha Bạn không được thay đổi giá tr của props trong các component này mà chỉ được phép đọc giá tr ra thôi Trong React thì dữ liệu sẽ đi theo một chiều, có nghĩa là từ component cha => các component con Bạn có thể tạo ra component sử dụng props Ý tưởng của props đó là việc trừu tượng hoá các component để có thể sử dụng được ở nhiều chỗ khác nhau trong app

State thì hoạt động khác với props state là dữ liệu nội bộ của một Component, trong khi props là dữ liệu được truyền cho Component Chính vì vậy chúng ta hoàn toàn có thể thay đổi state, và coi nó là một kiểu dữ liệu mutable Tuy vậy, hãy nhớ rằng đừng bao giờ thay đổi trực tiếp biến this.state Thay vào đó hãy dùng hàm setState để cập nhật giá tr

Sở dĩ chúng ta cần dùng hàm này là do nó sẽ kích hoạt việc render lại component

và tất cả component con nằm trong nó, còn thay đổi this.state thì không Còn một vấn

đề nữa, đó là setState chạy bất đồng bộ, vậy nên nếu bạn tiến hành đọc ra giá tr state ngay sau khi setState thì giá tr sẽ chưa được cập nhật liền vì đây là hàm bất đồng bộ [11]

Hooks là các hàm mà cho phép bạn “hook into (móc vào)” trạng thái của React

và các tính năng vòng đời từ các hàm components Hooks không hoạt động bên trong classes — chúng cho phép bạn sử dụng React không cần class

Effect Hook, useEffect, thêm khả năng để thực hiện side effects từ các components dạng hàm Nó phục vụ cùng mục đích như componentDidMount, componentDidUpdate, và componentWillUnmount trong React classes, nhưng thống nhất lại trong một API

ReactJS cho phép đ nh nghĩa các component như class hoặc function

Trang 23

component cần extend Component React Functional Component là một function Javascript / ES6 function, nó phải trả về một React element và nhận props làm tham số nếu cần [12]

Lifecycle thường được chia làm 3 phần chính:

Bước 1: Cài đặt React và React DOM

Bước 2: Cài đặt Webpack / Babel

Bước 3: Cài đặt trình biên d ch, server

Bước 4: Cài đặt Bundle để tạo gói

Trang 24

Chương 3 KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU

Trang 25

Hình 3 2 Trang đăng nhập Adidas

- Có thể gia nhập CLB Adiclub

Trang 26

Hình 3 3 Trang đăng ký gia nhập AdiClub

- Có thể nhập mã khuyến mãi khi được tặng mã

Trang 27

Hình 3 4 Trang nhập mã khuyến mãi

- Có tính năng chat trực tiếp trên web

Hình 3 5 Trang chat trực tiếp

Trang 29

Hình 3 7 Trang nhập mã khuyến mãi

- Có tính năng chat, gọi điện hỗ trợ qua bên thứ 3

Hình 3 8 Trang chat, gọi điện qua bên thứ 3

Nhược điểm:

Trang 30

- Chưa có tính năng đăng nhập bằng bên thứ 3

- Chưa có tính năng chat trực tiếp trên web

Lược đồ usecase tổng quát

Hình 3 9 Lược đồ usecase tổng quát

Lược đồ usecase actor User

Trang 31

Hình 3 10 Lược đồ usecase actor User

Lược đồ usecase actor Admin

Trang 32

Hình 3 11 Lược đồ usecase actor Admin

Bảng 3 1 Bảng yêu cầu dành cho Usecase

Trang 33

Guest, User, Admin

5 Xem danh mục sản phẩm UC_05

Guest, User, Admin

6 Xem chi tiết sản phẩm UC_06

Guest, User, Admin

7 Thêm vào giỏ hàng UC_07

10 Theo dõi đơn hàng UC_10

Guest, User, Admin

Guest, User, Admin

12 Chỉnh sửa thông tin UC_12

Guest, User, Admin

Trang 34

13 Thay đổi mật khẩu UC_13

Guest, User, Admin

Trang 35

22 Xem thống kê: Xem Doanh

● Thành công: Admin, User dùng đăng nhập được vào hệ thống và sử dụng chức

năng với quyền tương ứng

Thất bại: Hệ thống hiển th lỗi

Main Success Scenario:

Trang 36

Step Actor Action System Response

1 Admin, User dùng mở trang

web lên

Hệ thống hiển th màn hình trang chủ

và nút “Đăng nhập” ở thanh header

2 Admin, User dùng nhấn vào nút

“Đăng nhập “

Hệ thống chuyển sang màn hình

“Đăng nhập” và yêu cầu người dùng nhập vào các thông tin cá nhân và chuyển qua nhập: Số điện thoại và mật khẩu (varchar)

3 Adin, User nhấn nút “Đăng

nhập”

Hệ thống chuyển sang màn hình trang chủ

Exceptions:

2 Sai tài khoản, mật khẩu Hệ thống sẽ hiện thông báo (alert) và

có warning dòng dữ liệu cho người dùng

Relationships:

Business Rules:

● Số điện thoại: không được để trống

● Mật khẩu: không được để trống

Trang 37

Bảng 3 3 Đặc tả usecase đăng xuất

USE CASE_UC_02

Thành công: Admin, User dùng đăng xuất ra khỏi hệ thống

Thất bại: Hệ thống hiển th lỗi

Main Success Scenario:

1 Admin, User dùng click Đăng

Xuất tại thanh header

Hệ thống chuyển từ trang hiện tại sang trang đăng nhập

Exceptions:

Trang 38

Relationships:

Business Rules:

Bảng 3 4 Bảng đặc tả usecase đăng ký tài khoản

USE CASE_UC_03

Use case name Đăng ký tài khoản

● User dùng click vào nút “Tạo Tài Khoản” và điền đầy đủ các trường thông tin

trong trang Đăng ký và nhấn nút “Đăng Ký”

Preconditions:

User dùng chưa có tài khoản trong hệ thống

Post conditions:

Thành công: Đối với người dùng: màn hình chuyển về trang chủ

Thất bại: Hệ thống hiển th lỗi

Main Success Scenario:

Trang 39

1 User dùng nhấn vào nút “ Tạo

Tài Khoản “

Hệ thống chuyển từ trang hiện tại sang trang “Đăng ký”

2 User dùng nhập các thông tin

tương ứng ở trang “Đăng ký”

và nhấn nút “Đăng Ký”

Hệ thống sẽ thông báo thành công

Exceptions:

1 Lỗi API Không chuyển về trang đăng ký,

Trang 40

● Người dùng click vào ổ tìm kiếm ở thanh header, và điểm thông tin cần tìm kiếm

Preconditions:

Post conditions:

Thành công: Hiển th các sản phẩm phù hợp

Thất bại: Hệ thống hiển th lỗi

Main Success Scenario:

1 Người dùng truy cập vào trang

chủ

Hệ thống hiển th trang chủ

2 Người dùng nhấn vào ô tìm

kiếm ở thanh header, và nhập

thông tin, sau đó nhấn enter

Hệ thống chuyển sang trang kết quả tìm kiếm

Exceptions:

1 Lỗi API Không chuyển đến trang “Kết quả

tìm kiếm”

Relationships:

Business Rules:

Ngày đăng: 10/05/2023, 14:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nội dung: Tìm hiểu về Java Link: https://www.tutorialspoint.com/java8/index.htm Sách, tạp chí
Tiêu đề: Tìm hiểu về Java Link
[2] Nội dung: Tìm hiểu về Spring Boot Link: https://vietnix.vn/spring-boot-la-gi/ Link
[3] Nội dung: Tìm hiểu về Dependency Injection Link: https://viettuts.vn/spring/dependency-injection-trong-spring Link
[4] Nội dung: Tìm hiểu về Aspect Oriented Programming Link: https://viblo.asia/p/aop-la-gi-uu-nhuoc-diem-cua-aop-aspect-oriented-programming-trong-java-3P0lPk2oZox Link
[5] Nội dung: Tìm hiểu về MongoDB Link: https://www.tutorialspoint.com/mongodb/index.htm Link
[6] Nội dung: Tìm hiểu về HTML Link: https://wiki.matbao.net/html-la-gi-nen-tang-lap-trinh-web-cho-nguoi-moi-bat-dau/ Link
[7] Nội dung: Tìm hiểu về CSS Link: https://topdev.vn/blog/css-la-gi/ Link
[8] Nội dung: Tìm hiểu về JavaScript Link: https://vietnix.vn/javascript-la-gi/ Link
[10] Nội dung: Tìm hiểu sự khác nhau và các đặc tính của class và funcion componentLink:https://viblo.asia/p/react-js-hieu-ve-functional-va-class-components-Qbq5QpkRlD8 Link
[11] Nội dung: Tìm hiểu về State và Props Link:https://viblo.asia/p/component-state-va-props-trong-react-native-Eb85oM34Z2G Link
[12] Nội dung: Tìm hiểu về lifecycle trong ReactJS Link: https://viblo.asia/p/lifecycle-component-trong-reactjs-gGJ59jzxKX2 Link

🧩 Sản phẩm bạn có thể quan tâm

w