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

Xây dựng website bán giày kingshoes

74 0 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 Giày Kingshoes
Tác giả Đỗ Văn Tuấn
Người hướng dẫn TS. Phạm Tuấn
Trường học Đại học Đà Nẵ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 2023
Thành phố Đà Nẵng
Định dạng
Số trang 74
Dung lượng 4,94 MB

Nội dung

Nhược điểm: - Nhược điểm thực sự duy nhất của Next.js là nó là một framework được cố định, có nghĩa là nó có một phương pháp và bộ công cụ cụ thể mà nó muốn bạn sửdụng để xây dựng các ứ

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

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

ĐỀ TÀI:

XÂY DỰNG WEBSITE BÁN GIÀY KINGSHOES

Sinh viên thực hiện : ĐỖ VĂN TUẤN

Trang 3

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

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

ĐỀ TÀI:

XÂY DỰNG WEBSITE BÁN GIÀY KINGSHOES

Giảng viên hướng dẫn duyệt

Đà Nẵng, 06/2023

Trang 4

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN

Đà Nẵng, ngày 11 tháng 06 năm 2023

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

Trang 5

TS PHẠM TUẤN

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

Trang 6

Trang 7

TÓM TẮT

1 THÔNG TIN CHUNG

Tên đề tài: Xây dựng website bán giày KingShoes

Sinh viên thực hiện: Đỗ Văn Tuấn

Mã SV:1911505310255 Lớp: 19T2

2 TÓM TẮT ĐỀ TÀI

Website bán giày Kingshoes là một nền tảng thương mại điện tử chuyên về báncác sản phẩm giày thể thao và giày sneaker Trang web được thiết kế gọn gàng và thânthiện với người dùng, tạo điều kiện thuận lợi cho việc tìm kiếm và mua sắm.Kingshoes cung cấp một loạt các thương hiệu nổi tiếng và đa dạng về mẫu mã, kích cỡ

và kiểu dáng giày Khách hàng có thể dễ dàng tìm thấy thông tin chi tiết về sản phẩm,bao gồm hình ảnh, mô tả và đánh giá từ người dùng Website cung cấp nhiều lựa chọn

về màu sắc và kiểu dáng, từ giày thể thao đơn giản đến các phiên bản giới hạn và hợptác đặc biệt Kingshoes cam kết cung cấp giày chính hãng với chất lượng đảm bảo vàđáng tin cậy Khách hàng có thể thêm sản phẩm vào giỏ hàng và thanh toán an toàn vàtiện lợi thông qua các phương thức thanh toán trực tuyến Kingshoes đặt sự hài lòngcủa khách hàng lên hàng đầu và đảm bảo chất lượng và dịch vụ tốt nhất Trang webthường xuyên cập nhật các sản phẩm mới nhất và các chương trình khuyến mãi hấpdẫn để khách hàng có thể mua giày với giá trị tốt nhất Website cũng cung cấp cáccông cụ tìm kiếm tiên tiến giúp khách hàng lọc và tìm kiếm theo tiêu chí cụ thể nhưmàu sắc, kích cỡ, thương hiệu, và giá cả Trang web được thiết kế phù hợp với cácthiết bị di động, cho phép khách hàng truy cập và mua sắm dễ dàng từ điện thoại diđộng hoặc máy tính bảng Kingshoes có hệ thống đánh giá và nhận xét từ người dùnggiúp khách hàng có cái nhìn tổng quan về chất lượng và trải nghiệm của sản phẩm.Trang web cung cấp dịch vụ giao hàng nhanh chóng và đáng tin cậy, với tùy chọn giaohàng tận nơi hoặc qua dịch vụ vận chuyển đáng tin cậy

Các chức năng chính của hệ thống:

- Người dung có thể xem thông tin sản phẩm trên website

- Người dung có thể mua hàng bằng hình thức thanh toán trực tuyến

i

Trang 8

- Người dùng có thể đánh giá về sản phẩm bằng cách rate, bình luận.

- Admin có thể xem danh sách sản phẩm đã được đặt mua thành công

Trang 9

Tên đề tài: Xây dựng website bán giày KingShoes

Thời gian thực hiện: Từ ngày: 18/02/2023 đến ngày: 31/05/2023

5 Mục tiêu

Xây dựng Website bán giày KingShoes giúp:

- Mọi người tìm kiếm và mua giày trực tuyến giúp người mua giảm thiểu việc tiếpxúc trong tình trạng covid như hiện nay

- Giúp các cửa hàng có thêm nguồn khách hàng, đưa thông tin quảng bá tới ngườidùng nhanh chóng hơn

Gồm các chức năng:

- Khách hàng

+ Đăng nhập, đăng xuất

+ Quản lý thông tin cá nhân

Trang 10

+ Đăng nhập, đăng xuất.

- Phân tích thiết kế các chức năng của hệ thống

- Thiết kế giao diện cho các chức năng

- Phân tích thiết kế cơ sở dữ liệu

- Xây dựng hệ thống

- Kiểm thử và cài đặt

- Hoàn thành báo cáo

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

- Xây dụng thành công hệ thống website và app đáp ứng được các mục tiêu đã đề ra,thân thiện với người dùng

8 Tiến độ thực hiện

TT Thời gian Nội dung công việc Kết quả dự kiến đạt được

1 Tuần 1 Chọn đề tài và Xây dụng đề

cương đồ án tốt nghiệp Đề cương

2 Tuần 2 Khảo sát nghiệp vụ thực tế Nắm được kết quả khảo sát

3 Tuần 3 - 4 Phân tích các chức năng cho hệ

thống

Hoàn thành các chức năng cần thiết

Trang 11

4 Tuần 5 Thiết kế các chức năng cho hệ

5 Tuần 6 Thiết kế giao diện cho các chức

năng

Hoàn thành các giao diện trong figma

6 Tuần 7 - 8 Phân tích thiết kế cơ sở dữ liệu

7 Tuần 9 Xây dựng cơ sở dữ liệu Hoàn thành Database, quan hệ

giữa các diagram

8 Tuần 10 Xây dựng giao diện Hoàn thành giao diện

10 Tuần 12 Lập trình các chức năng theo

phân tích hệ thống

Hoàn thành các chức năng hệ thống

Trang 12

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Giảng viên hướng dẫn: TS Phạm Tuấn

Sinh viên thực hiện: Đỗ Văn Tuấn Mã SV: 1911505310255

1 Tên đề tài:

- Xây dựng Website bán giày KingsShoes

2 Các số liệu, tài liệu ban đầu:

- Dựa trên thực trạng khách dịch covid không nên tiếp xúc gần nhau nên việc

mua sắm onl là hết sức cần thiết đối với người dùng

- Các tài liệu được lấy từ trang tài liệu chính thức của công nghệ được sử dụng.

3 Nội dung chính của đồ án:

Trang 13

- Website bán giày KingShoes gồm:

Web: Admin, Người dùng

Trang 14

LỜI NÓI ĐẦU

Trong suốt thời gian triển khai thực hiện đồ án, em nhận được sự giúp đỡ vàhướng dẫn tận tình của các thầy cô và các anh chị, bạn trong Khoa Công nghệ số -Trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng Em xin chân thành sâu sắc gửilời cảm ơn tới các thầy cô trong Khoa đã giảng dạy và tận tình truyền đạt những kiếnthức chuyên sâu, những kinh nghiệm quý báu để em có thể thực hiện đồ án này

Trước tiên em xin chân thành gửi lời cảm ơn đến thầy TS Phạm Tuấn, người đãtừng bước hướng dẫn, động viên, góp ý giúp đỡ em trong quá trình thực hiện đồ án tốtnghiệp của mình Trong quá trình làm thực hiện, ngoài trao đổi học hỏi được nhiềukiến thức mà em còn học hỏi được khả năng làm việc nghiêm túc, độc lập và có tráchnhiệm, cũng như khả năng xử lý tình huống giúp ích cho công việc của mình

Trong quá trình học tập và quá trình làm đồ án tốt nghiệp không thể tránh khỏinhững thiếu sót, em rất mong được sự thông cảm và góp ý quý báu của tất cả các thầy

cô giáo và các anh chị, bạn để đồ án tốt nghiệp của em được hoàn thiện hơn

Sau cùng, em xin phép chân thành cảm ơn!

Đà Nẵng, ngày 31 tháng 05 năm 2023

Sinh viên thực hiện

Đỗ Văn Tuấn

Trang 15

CAM ĐOAN

Em xin cam đoan:

1 Những nội dung trong đồ án này là do em thực hiện dưới sự hướng dẫn trực tiếp củathầy Phạm Tuấn

2 Mọi tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên côngtrình, thời gian, địa điểm công bố

3 Nếu có những sao chép không hợp lệ, vi phạm, em xin chịu hoàn toàn trách nhiệm

Đà Nẵng, ngày 31 tháng 05 năm 2023

Sinh viên thực hiện

Đỗ Văn Tuấn

ix

Trang 16

MỤC LỤC

TÓM TẮT i

1 THÔNG TIN CHUNG i

2 TÓM TẮT ĐỀ TÀI i

LỜI NÓI ĐẦU viii

CAM ĐOAN ix

MỤC LỤC x

DANH SÁCH CÁC BẢNG xiii

DANH SÁCH HÌNH ẢNH xiv

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT xvi

MỞ ĐẦU 1

1 Giới thiệu về đề tài 1

1.1 Đặt vấn đề 1

1.2 Lý do đề tài 1

1.3 Phạm vi đề tài 1

2 Mục đích, yêu cầu 2

2.1 Mục đích 2

2.2 Yêu cầu 2

3 Các bước triển khai 2

4 Công nghệ sử dụng 2

5 Kết quả dự kiến đạt được 2

5.1 Về mặt lý thuyết 2

5.2 Về mặt ứng dụng 3

6 Nội dung đồ án 3

Trang 17

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

1.1 NextJs 5

1.1.1 Tổng quan về JavaScript 5

1.1.2 Khái niệm NextJs 5

1.1.3 Ưu nhược điểm của NextJs 6

1.2 NodeJS 6

1.2.1 Tổng quan về NodeJS 6

1.2.2 Ưu nhược điểm của NodeJS 7

1.2.3 Ứng dụng của NodeJS 8

1.3 MongoDB 9

1.3.1 Tổng quan về MongoDB 9

1.3.2 Ưu nhược điểm của MongoDB 9

1.3.3 Ứng dụng của MongoDB 11

1.4 S3/AWS 11

1.4.1 Tổng quan về S3/AWS 11

1.3.2 Ưu điểm của S3/AWS 12

1.5 Vercel 12

1.5.1 Tổng quan về S3/AWS 12

1.5.2 Ưu điểm của Vercel 13

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 14

2.1 Phân tích đặc tả yêu cầu 14

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

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

2.2 Thiết kế hệ thống 15

2.2.1 Biểu đồ Usecase 15

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

CHƯƠNG 3: TRIỂN KHAI KẾT QUẢ 29

xi

Trang 18

3.1 Kết quả chương trình 29

3.1.1 Quản lý hệ thống 29

3.1.2 Người dùng 35

3.1.3 Bảng dữ liệu 45

3.2 Nhận xét về hệ thống 51

KẾT LUẬN 52

TÀI LIỆU THAM KHẢO 53

Trang 19

DANH SÁCH CÁC BẢNG

Bảng 2.1: Mô tả bảng accounts 22

Bảng 2.2: Mô tả bảng addresses 23

Bảng 2.3: Mô tả bảng admins 24

Bảng 2.4: Mô tả bảng categories 24

Bảng 2.5: Mô tả bảng orders 25

Bảng 2.6: Mô tả bảng products 26

Bảng 2.7: Mô tả bảng reviews 26

Bảng 2.8: Mô tả bảng sessions 27

Bảng 2.9: Mô tả bảng settings 27

Bảng 2.10: Mô tả bảng users 27

Bảng 2.11: Mô tả bảng wishedproducts 28

xiii

Trang 20

DANH SÁCH HÌNH ẢNH

Hình 2.1: Biểu đồ Usecase tổng quát 16

Hình 2.2: Biểu đồ Usecase chức năng quản lý sản phẩm 17

Hình 2.3: Biểu đồ Usecase quản lý doanh số 18

Hình 2.4: Biểu đồ Usecase quản lý đánh giá 19

Hình 2.5: Biểu đồ Usecase quản lý sản phẩm yêu thích 20

Hình 2.6: Biểu đồ Usecase quản lý thanh toán 21

Hình 3.1: Màn hình đăng nhập của quản lý hệ thống 29

Hình 3.2: Màn hình trang chủ của trang quản lý 30

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

Hình 3.5: Màn hình thêm mới sản phẩm 31

Hình 3.6: Màn hình danh sách danh mục của hệ thống quản lý 32

Hình 3.7: Màn hình thêm mới danh mục 32

Hình 3.8: Màn hình chỉnh sửa danh mục 33

Hình 3.9: Màn hình danh sách các đơn hàng đã được thực hiện 33

Hình 3.10: Màn hình cập nhật quyền admin 34

Hình 3.11: Màn hình cập nhật quyền admin 34

Hình 3.12: Màn hình đăng nhập của người dùng 35

Hình 3.13: Màn hình quản lý thông tin cá nhân 35

Hình 3.14: Màn hình trang chủ của người dùng 36

Hình 3.15: sản phẩm nổi bật nhất 37

Hình 3.16: Các sản phẩm mới nhất 38

Hình 3.17: Màn hình tất cả sản phẩm 39

Hình 3.18: Màn hình danh sách các thương hiệu đang có 40

Hình 3.19: Màn hình danh sách các sản phẩm thương hiệu Nike 41

Trang 21

Hình 3.20: Chi tiết sản phẩm 42

Hình 3.21: Giỏ hàng 43

Hình 3.22: Màn hình thanh toán 44

Hình 3.23: Màn hình tìm kiếm 44

Hình 3.24: Bảng accounts 45

Hình 3.25: Bảng addresses 45

Hình 3.24: Bảng admins 46

Hình 3.25: Bảng categories 46

Hình 3.26: Bảng orders 47

Hình 3.27: Bảng products 47

Hình 3.28: Bảng reviews 48

Hình 3.29: Bảng sessions 48

Hình 3.30: Bảng settings 49

Hình 3.31: Bảng users 49

Hình 3.32: Bảng wishedproducts 50

xv

Trang 22

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Trang 23

Website bán giày KingShoes

MỞ ĐẦU

1 Giới thiệu về đề tài

1.1 Đặt vấn đề

Mua sắm trực tuyến mang lại nhiều rất lợi ích:

Tiện lợi: Mua sắm trực tuyến cho phép bạn mua hàng bất kỳ lúc nào và ở bất kỳđâu, không cần phải di chuyển đến cửa hàng truyền thống

Sự lựa chọn đa dạng: Trên internet, bạn có thể dễ dàng tìm thấy hàng ngàn sảnphẩm và thương hiệu khác nhau chỉ trong vài cú nhấp chuột Bạn có thể so sánh giá,kiểu dáng và đặc tính của sản phẩm để lựa chọn tốt nhất

Tiết kiệm thời gian và năng lượng: Không cần phải xếp hàng hay tìm kiếm sảnphẩm trong cửa hàng Bạn có thể mua sắm chỉ trong vài phút và tiết kiệm thời gianquý báu để làm những việc khác

Đánh giá và nhận xét: Bạn có thể đọc đánh giá và nhận xét từ người dùng khác

về sản phẩm mà bạn quan tâm Điều này giúp bạn có cái nhìn tổng quan về chất lượng

và trải nghiệm của sản phẩm trước khi quyết định mua

Giao hàng tiện lợi: Các dịch vụ giao hàng trực tuyến ngày càng phát triển, đảmbảo giao hàng nhanh chóng và đáng tin cậy Bạn có thể nhận sản phẩm tận nhà hoặctại địa chỉ mà bạn chọn

1.2 Lý do đề tài

Ngày nay đã có rất nhiều ứng dụng phục vụ vấn đề mua sắm online của mọingười Những ứng dụng hầu như dành cho việc phục vụ tận nơi, đặt và giao hàng tậnnhà phù hợp cho thời buổi covid hạn chế ra ngoài và tiếp xúc trực tiếp

Đó là lý do em chọn đề tài “Xây dựng website bán giày KingShoes” Hệ thốnggiúp cho mọi người có được thông tin, hình ảnh sản phẩm giày mà mình yêu thíchtrong khi không phải đến tận nơi để xem

1.3 Phạm vi đề tài

Website sẽ cung cấp tới người dùng thông tin sản phẩm, hình ảnh thực tế và giá

cả, bình luận của người tiêu dục một cách trực quan rõ rang và tối giản

Trang 24

Website bán giày KingShoes

- Thông tin hiển thị trực quan, đơn giản

- Giao diện dễ sử dụng, trải nghiệm người dùng tốt, thao tác chính xác và nhanhchóng

- Các chức năng thực hiện cần chính xác hợp lý, tốc độ xử lý nhanh

- Cho phép nhiều tài khoản truy cập vào hệ thống cùng một lúc

- Bảo mật thông tin người dùng, đã mã hoá mật khẩu tài khoản đăng nhập

3 Các bước triển khai

- Tiến hành tìm hiểu, nghiên cứu cơ sở lý thuyết, các công cụ cần sử dụng

- Phân tích các tác nhân trong hệ thống, các chức năng ứng với mỗi tác nhân đó

- Thiết kế cơ sở dữ liệu gồm các bảng dữ liệu và mối quan hệ giữa chúng

- Thiết kế giao diện cho người dùng, admin

- Triển khai thực hiện các chức năng đã phân tích

Cơ sơ dữ liệu: MongoDB

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

Trang 25

Website bán giày KingShoes

- Nắm bắt được về các công cụ, công nghệ sử dụng

- Phân tích thiết kế hệ thống, đặc tả các yêu cầu hệ thống, thiết kế cơ sở dữ liệu

- Nắm bắt được tâm lý người dùng, nhu cầu trong một dự án

- Xem thông tin sản phẩm

- Sản phẩm có giá cả, hình ảnh minh hoạ đầy đủ

- Sản phẩm có hiển thị số lượt bình luận cũng như đánh giá

Chương 1: Cơ sở lý thuyết

Mô tả chung về những kiến thức nền tảng cần có

Chương 2: Phân tích và thiết kế hệ thống

Mô tả về thiết kế hệ thống, thiết kế database

Chương 3: Kết quả triển khai

Đưa ra kết quả triển khai đồ án đã đạt được

Kết luận

Trang 26

Website bán giày KingShoes

Đưa ra những kết quả mà hệ thống đạt được Đồng thời, những hạn chế cũngđược đưa ra để xem xét và định hướng giải quyết trong tương lai

Tài liệu tham khảo

Trang 27

Website bán giày KingShoes

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

1.1 NextJs

1.1.1 Tổng quan về JavaScript

JavaScript thường được viết tắt là JS, là một ngôn ngữ lập trình kịch bản phíamáy khách (client-side) dựa vào đối tượng phát triển có sẵn hoặc tự định nghĩa,JavaScript được sử dụng rộng rãi trong các ứng dụng website Cùng với HTML vàCSS, JavaScript là một trong ba công nghệ cốt lõi của World Wide Web JavaScriptđược hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome, thậm chí vớicác trình duyệt trên thiết bị di động

JavaScript được biết đến lần đầu tiên là Mocha và chỉ ngay sau đó một thời gian

nó lại được đổi tên thành LiveScript và cuối cùng Netscape đã đổi tên thànhJavaScript, bởi vì sự phổ biến của Java như là một hiện tượng lúc bấy giờ Sau đóNetscape đã chuyển JavaScript đến ECMA International để làm công tác chuẩn hóa vàviết đặc tả, Cái tên ECMAScript đã được hình thành từ đây Phần core của ngôn ngữnày đã được nhúng vào hầu hết các trình duyệt Netscape, Internet Explorer, Chrome,Firefox,

Javascript là một ngôn ngữ lập trình đa năng, có nghĩa là nó chạy trên đa nềntảng, đa trình duyệt Ứng dụng phổ biến nhất của JavaScript là ở phía máy khách (haycòn gọi là frontend), nhưng vì Node.js xuất hiện, nhiều người cũng chạy JavaScript ởphía máy chủ (còn gọi là backend) Khi được sử dụng ở phía client-side, mã JavaScriptđược đọc, giải thích và được thực thi trong trình duyệt web của người dùng Khi được

sử dụng ở phía máy chủ, nó được chạy trên một máy tính từ xa

1.1.2 Khái niệm NextJs

Next.js là một framework front-end React được phát triển dưới dạng source bổ sung các khả năng tối ưu hóa như render phía máy chủ (SSR) và tạo trangweb static Next.js xây dựng dựa trên thư viện React, có nghĩa là các ứng dụng Next.js

open-sử dụng core của React và chỉ thêm các tính năng bổ sung Việc triển khai ứng dụngSSR cho phép máy chủ truy cập tất cả dữ liệu được yêu cầu và xử lý JavaScript cùng

Trang 28

Website bán giày KingShoes

nhau để hiển thị trang Sau đó, trang được gửi lại toàn bộ cho trình duyệt và ngay lậptức được hiển thị SSR cho phép các trang web load trong thời gian nhỏ nhất và tăngtrải nghiệm người dùng với khả năng phản hồi nhanh hơn

Ngoài ra, sử dụng SSR cũng mang lại cho bạn lợi thế về SEO, giúp trang webcủa bạn hiển thị cao hơn trên các trang kết quả của công cụ tìm kiếm SSR làm cho cáctrang web xếp hạng tốt hơn cho SEO vì chúng tải nhanh hơn và nhiều nội dung trangweb có thể được quét bởi các SEO trackers Thẻ <head> trong Next.js cũng cho phépbạn chỉnh sửa thẻ <head> của một trang web, điều mà bạn không thể thực hiện trongReact Thẻ <head> là một phần cốt lõi trong metadata của trang web và góp phần vàoxếp hạng SEO của trang web

1.1.3 Ưu nhược điểm của NextJs

Ưu điểm:

- Ứng dụng Next.js tải nhanh hơn đáng kể so với ứng dụng React do được renderphía Server

- Hỗ trợ các tính năng cho static web

- Đối với những ai đã có kinh nghiệm làm việc với React thì việc tiếp tập NextJS

- Hỗ trợ tích hợp cho route cho page, CSS, JSX và TypeScript

- Nhanh chóng thêm các plugin để tùy chỉnh Next.js theo nhu cầu của trang cụthể của bạn

Nhược điểm:

- Nhược điểm thực sự duy nhất của Next.js là nó là một framework được cố định,

có nghĩa là nó có một phương pháp và bộ công cụ cụ thể mà nó muốn bạn sửdụng để xây dựng các ứng dụng của mình Tuy nhiên, các tùy chọn của Next.js

sẽ phù hợp với phạm vi của hầu hết các dự án

Trang 29

Website bán giày KingShoes

1.2 NodeJS

1.2.1 Tổng quan về NodeJS

Node.js là một môi trường chạy mã JavaScript phía máy chủ (server-side) xâydựng trên nền tảng V8 Engine của Chrome Nó cho phép bạn viết mã JavaScript đểthực thi các tác vụ máy chủ, chẳng hạn như xử lý yêu cầu HTTP, quản lý tệp tin, truycập cơ sở dữ liệu và tạo API

1.2.2 Ưu nhược điểm của NodeJS

Ưu điểm:

- Hiệu suất cao: Node.js sử dụng mô hình non-blocking I/O và kiến trúc sự kiện(event-driven) giúp xử lý đồng thời nhiều yêu cầu mà không bị chặn bởi cáchoạt động I/O Điều này giúp ứng dụng xử lý lượng truy cập lớn và tải nhanhhơn

- Quản lý tải tốt: Nhờ tính không chặn và sự kiện sử dụng ít luồng, Node.js cókhả năng quản lý tải tốt và mở rộng dễ dàng Bạn có thể xử lý hàng nghìn kếtnối đồng thời mà không gặp vấn đề hiệu suất

- JavaScript trên cả phía máy chủ và máy khách: Node.js cho phép bạn sử dụngcùng một ngôn ngữ, JavaScript, cả phía máy chủ và phía máy khách Điều nàygiúp tiết kiệm thời gian và công sức trong việc phát triển ứng dụng full-stack vàchia sẻ mã nguồn dễ dàng

- Hệ sinh thái mạnh mẽ: Node.js có một hệ sinh thái phong phú với hàng ngànmodule và thư viện được cung cấp thông qua NPM (Node Package Manager).Bạn có thể tận dụng các module có sẵn để nhanh chóng phát triển các tính năngphổ biến trong ứng dụng của bạn

- Cộng đồng lớn và hỗ trợ tốt: Node.js có cộng đồng lớn và rộng khắp trên toàncầu Bạn có thể tìm thấy tài liệu, hướng dẫn, ví dụ và hỗ trợ từ cộng đồng, giúpgiải quyết các vấn đề và tìm kiếm giải pháp cho các thách thức trong quá trìnhphát triển

- Phát triển linh hoạt: Node.js cho phép phát triển ứng dụng web, ứng dụng diđộng, ứng dụng IoT và nhiều hơn nữa Bạn có thể sử dụng Node.js để xây dựngcác loại ứng dụng đa dạng và đáp ứng nhu cầu kỹ thuật phức tạp

Trang 30

Website bán giày KingShoes

- Tích hợp dễ dàng: Node.js có khả năng tích hợp dễ dàng với các công nghệkhác như cơ sở dữ liệu, khung làm việc (framework), và dịch vụ web Bạn cóthể kết hợp Node.js với MongoDB, Express.js và Angular hoặc React để xâydựng một ứng dụng web hoàn chỉnh

Nhược điểm:

- Đơn luồng (Single-threaded): Node.js sử dụng mô hình đơn luồng, điều này cónghĩa là nó chỉ sử dụng một luồng chính để xử lý các yêu cầu Do đó, nếu cómột tác vụ tốn thời gian hoặc chặn, nó có thể ảnh hưởng đến toàn bộ hệ thống

và làm giảm hiệu suất

- Xử lý CPU-intensive: Node.js không phù hợp cho các tác vụ xử lý đòi hỏi nhiềutài nguyên CPU, ví dụ như tính toán phức tạp hoặc xử lý dữ liệu lớn Vì Node.jschỉ sử dụng một luồng chính, nên nếu có quá nhiều tác vụ CPU-intensive, hiệusuất của ứng dụng có thể giảm

- Quản lý bộ nhớ: Node.js sử dụng một bộ nhớ đơn giản và quản lý bộ nhớ tựđộng (Garbage Collector) Tuy nhiên, nếu ứng dụng có lượng lớn các đối tượng

và dữ liệu, điều này có thể tạo áp lực lên bộ nhớ và gây ra hiện tượng gián đoạntrong quá trình chạy

- Khả năng mở rộng ngang (Horizontal scaling): Mặc dù Node.js có khả năng mởrộng dọc (Vertical scaling) tốt bằng cách tận dụng mô hình non-blocking I/O,nhưng nó không hỗ trợ mở rộng ngang (Horizontal scaling) tự động Điều này

có nghĩa là để mở rộng ứng dụng Node.js, bạn cần phải triển khai các phươngpháp mở rộng thủ công như cân bằng tải (load balancing) và phân chia côngviệc (work distribution)

- Quản lý mã nguồn phức tạp: Khi ứng dụng phát triển lớn, mã nguồn củaNode.js có thể trở nên phức tạp và khó khăn trong việc quản lý Vì Node.js chophép sử dụng callback và Promise để xử lý bất đồng bộ, việc theo dõi và quản

lý luồng điều khiển của mã có thể trở nên khó khăn và dễ dẫn đến mã khó hiểu

và khó bảo trì

1.2.3 Ứng dụng của NodeJS

- API (Application Programming Interface): Node.js được sử dụng để xây dựngcác API phục vụ dữ liệu cho ứng dụng di động, ứng dụng web hoặc ứng dụng

Trang 31

Website bán giày KingShoes

khác Node.js kết hợp tốt với cơ sở dữ liệu và giao thức HTTP để tạo ra các APImạnh mẽ và dễ dàng mở rộng

- Ứng dụng web: Node.js được sử dụng để xây dựng các ứng dụng web hiệu suấtcao, như các trang web đa truy cập, ứng dụng thời gian thực, ứng dụng di động

và ứng dụng đám mây Với tính năng không chặn và xử lý bất đồng bộ, Node.jsthích hợp cho việc xây dựng các ứng dụng web có yêu cầu đồng thời lớn và thờigian thực

- Real-time applications: Node.js được sử dụng để xây dựng các ứng dụng thờigian thực như trò chơi trực tuyến, ứng dụng trò chuyện và ứng dụng trực tuyếntheo thời gian thực Với sự hỗ trợ của WebSocket và các thư viện real-time,Node.js cho phép việc giao tiếp hai chiều và cập nhật dữ liệu trực tiếp trên cácứng dụng này

1.3 MongoDB

1.3.1 Tổng quan về MongoDB

MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) phát triển bởiMongoDB Inc Nó được thiết kế để lưu trữ dữ liệu phi cấu trúc và linh hoạt, hỗ trợ khảnăng mở rộng ngang và cung cấp các tính năng mạnh mẽ cho việc lưu trữ và truy vấn

dữ liệu

1.3.2 Ưu nhược điểm của MongoDB

Ưu điểm:

- Tính linh hoạt và dễ sử dụng: MongoDB cho phép lưu trữ dữ liệu phi cấu trúc

và linh hoạt, giúp bạn lưu trữ dữ liệu có cấu trúc thay đổi dễ dàng Nó cũngcung cấp một ngôn ngữ truy vấn đơn giản và mạnh mẽ, giúp bạn tương tác vàtruy vấn dữ liệu dễ dàng

- Tốc độ và hiệu suất cao: MongoDB sử dụng mô hình lưu trữ dựa trên bộ nhớ vàđọc ghi trực tiếp, giúp cải thiện tốc độ truy vấn và hiệu suất của hệ thống Nócũng hỗ trợ khả năng mở rộng ngang, cho phép bạn tăng cường khả năng xử lý

và chịu tải của ứng dụng

- Hỗ trợ tốt cho dữ liệu lớn: MongoDB được thiết kế để xử lý dữ liệu lớn và cókhả năng mở rộng ngang tự động Với khả năng chia nhỏ và phân tán dữ liệu,

Trang 32

Website bán giày KingShoes

nó có thể xử lý và lưu trữ dữ liệu có kích thước lớn mà không ảnh hưởng đếnhiệu suất

- Hỗ trợ tốt cho các tính năng của NoSQL: MongoDB là một hệ quản trị cơ sở dữliệu NoSQL, giúp bạn xử lý dữ liệu không cấu trúc, đa dạng và thay đổi mộtcách linh hoạt Nó cung cấp các tính năng như lưu trữ tài liệu, truy vấn mạnh

mẽ, replica set và sharding để đáp ứng nhu cầu lưu trữ và truy xuất dữ liệu đadạng

- Cộng đồng và tài liệu phong phú: MongoDB có một cộng đồng phát triển mạnh

mẽ và tài liệu phong phú Bạn có thể tìm thấy nhiều tài liệu, hướng dẫn và ví dụ

từ cộng đồng và trang web chính thức của MongoDB, giúp bạn nắm vững vàphát triển với công nghệ này

- Tích hợp dễ dàng với các ngôn ngữ lập trình: MongoDB cung cấp các drivercho nhiều ngôn ngữ lập trình phổ biến như JavaScript, Python, Java, NET,Ruby, Node.js, giúp bạn dễ dàng tích hợp và tương tác với cơ sở dữ liệuMongoDB từ các ứng dụng của mình

Nhược điểm:

- Khả năng lưu trữ dữ liệu: MongoDB sử dụng lưu trữ dựa trên bộ nhớ, điều này

có thể tạo ra một yêu cầu tài nguyên cao khi xử lý dữ liệu lớn Việc lưu trữ toàn

bộ dữ liệu trong bộ nhớ có thể gây ra sự giới hạn và ảnh hưởng đến hiệu suấtnếu không được quản lý cẩn thận

- Tính nhất quán (consistency): MongoDB mặc định sử dụng giao thức ghi linhhoạt (flexible write) để đảm bảo tính nhất quán của dữ liệu Điều này có nghĩa

là dữ liệu có thể không nhất quán ngay lập tức trên toàn bộ hệ thống khi có cácthay đổi đồng thời Tuy nhiên, MongoDB cung cấp các tùy chọn để đảm bảotính nhất quán theo nhu cầu cụ thể của ứng dụng

- Phân vùng và mở rộng dữ liệu: Mặc dù MongoDB hỗ trợ phân vùng (sharding)

để mở rộng dữ liệu trên nhiều nút, việc cấu hình và quản lý hệ thống phân vùng

có thể phức tạp và đòi hỏi kiến thức về quản lý cụ thể

- Chi phí: MongoDB là một công nghệ mạnh mẽ, nhưng việc triển khai và vậnhành hệ thống MongoDB có thể yêu cầu tài nguyên phần cứng và nhân lực

Trang 33

Website bán giày KingShoes

đáng kể Điều này có thể là một thách thức cho các tổ chức có nguồn lực hạnchế

- Truy vấn phức tạp: Trong một số trường hợp, truy vấn phức tạp trongMongoDB có thể trở nên khó khăn và tốn nhiều thời gian để tối ưu hóa hiệusuất Điều này đặc biệt đúng đối với các truy vấn liên quan đến các mối quan hệphức tạp giữa các tài liệu

- Nhược điểm về cơ sở dữ liệu quan hệ: MongoDB không hỗ trợ các tính năngcủa cơ sở dữ liệu quan hệ như khóa ngoại, join hoặc các ràng buộc dữ liệu.Điều này có nghĩa là các mối quan hệ phức tạp và tính toàn vẹn của dữ liệu phảiđược quản lý bằng các phương pháp khác như nhúng dữ liệu hoặc truy vấn nhưtruyền thống

1.3.3 Ứng dụng của MongoDB

- Ứng dụng web: MongoDB thích hợp cho các ứng dụng web đòi hỏi tính linhhoạt và khả năng mở rộng Nó được sử dụng để lưu trữ dữ liệu người dùng,thông tin sản phẩm, hồ sơ cá nhân, và hơn thế nữa Đặc biệt, MongoDB có thể

hỗ trợ các ứng dụng với lưu lượng truy cập lớn và nhu cầu mở rộng

- Phân tích dữ liệu: MongoDB là một lựa chọn phổ biến cho các dự án phân tích

dữ liệu Với khả năng lưu trữ dữ liệu phi cấu trúc, MongoDB giúp đơn giản hóaquá trình lưu trữ và truy vấn dữ liệu phức tạp trong các dự án phân tích dữ liệuthời gian thực

- Ứng dụng di động: MongoDB có thể được sử dụng trong việc phát triển ứngdụng di động, cho phép lưu trữ dữ liệu người dùng, thông tin sản phẩm, tinnhắn, và nhiều thông tin khác Nó cung cấp tính năng đồng bộ và cung cấp khảnăng làm việc offline, giúp cho việc phát triển ứng dụng di động linh hoạt và cókhả năng hoạt động trong môi trường kết nối không ổn định

- Hệ thống IoT: MongoDB được sử dụng trong các ứng dụng Internet of Things(IoT) để lưu trữ và xử lý dữ liệu từ các thiết bị kết nối mạng Với tính năng linhhoạt và khả năng mở rộng, MongoDB giúp xử lý dữ liệu từ hàng triệu thiết bịIoT và đáp ứng nhu cầu lưu trữ và truy xuất dữ liệu phức tạp

- Quản lý nội dung: MongoDB có thể được sử dụng trong các hệ thống quản lýnội dung (CMS) để lưu trữ và quản lý thông tin nội dung, bao gồm bài viết,

Trang 34

Website bán giày KingShoes

hình ảnh, video, và các tài liệu khác Với tính linh hoạt và khả năng tìm kiếmphức tạp, MongoDB giúp tạo ra các trang web và ứng dụng CMS mạnh mẽ vàlinh hoạt

1.4 S3/AWS

1.4.1 Tổng quan về S3/AWS

Amazon S3 (Simple Storage Service) là một dịch vụ lưu trữ đám mây đượccung cấp bởi Amazon Web Services (AWS) Nó cho phép các công ty và cá nhân lưutrữ và truy cập dữ liệu từ bất kỳ đâu trên Internet

1.3.2 Ưu điểm của S3/AWS

- Tính linh hoạt: Amazon S3 cho phép bạn lưu trữ và truy xuất dữ liệu từ bất kỳđâu trên Internet Bạn có thể lưu trữ các tệp tin, hình ảnh, video, cơ sở dữ liệu

và nhiều hơn nữa Nó cung cấp tính năng mở rộng linh hoạt để đáp ứng nhu cầulưu trữ dữ liệu của bạn

- Độ tin cậy: Amazon S3 được xây dựng trên cơ sở hạ tầng đám mây của AWS,nên nó đảm bảo độ tin cậy cao Dữ liệu được phân tán trên nhiều khu vực vàmáy chủ để đảm bảo sự tồn tại và khả dụng của dữ liệu

- Bảo mật: Amazon S3 cung cấp các biện pháp bảo mật mạnh mẽ để bảo vệ dữliệu của bạn Bạn có thể sử dụng chính sách truy cập và mã hóa để bảo vệ dữliệu trên S3 Nó cũng cung cấp tính năng như quản lý danh sách truy cập vàkiểm soát quyền truy cập vào tệp tin

- Quản lý dữ liệu: S3 cung cấp các công cụ quản lý dữ liệu mạnh mẽ, bao gồmxác định chuẩn nghĩa về lưu trữ dữ liệu, sao lưu tự động, giám sát và theo dõihoạt động lưu trữ

- Tích hợp và mở rộng: S3 tích hợp tốt với các dịch vụ khác trong hệ sinh tháiAWS Bạn có thể sử dụng nó để lưu trữ dữ liệu từ các ứng dụng web, ứng dụng

di động, trang web tĩnh và nhiều nền tảng khác Nó cũng hỗ trợ tích hợp với cáccông cụ phát triển phổ biến như AWS Lambda, AWS SDK và AWS CLI

Amazon S3 là một dịch vụ lưu trữ đám mây mạnh mẽ và phổ biến, cho phép lưutrữ dữ liệu một cách linh hoạt, đáng tin cậy và bảo mật Nó là một trong những dịch vụcốt lõi của AWS và được sử dụng rộng rãi trong các ứng dụng web, di động và doanhnghiệp trên toàn thế giới

Trang 35

Website bán giày KingShoes

1.5 Vercel

1.5.1 Tổng quan về S3/AWS

Vercel là một nền tảng đám mây chuyên về việc phát triển và triển khai các ứng dụng web và các trang web tĩnh Nó cung cấp một cách dễ dàng để xây dựng, triển khai và quản lý các ứng dụng web chất lượng cao với hiệu suất tốt

1.5.2 Ưu điểm của Vercel

- Phát triển nhanh chóng: Vercel cho phép bạn phát triển ứng dụng web nhanhchóng và dễ dàng Bạn có thể sử dụng các công nghệ phổ biến như React,Next.js, Angular, Vue.js và nhiều công nghệ khác để xây dựng ứng dụng webcủa mình

- Triển khai tự động: Vercel cung cấp một quy trình triển khai tự động Bạn cóthể liên kết dự án GitHub, GitLab hoặc Bitbucket của mình với Vercel để tựđộng triển khai các thay đổi mới nhất trên môi trường sản xuất

- Hiệu suất tốt: Vercel tập trung vào hiệu suất của ứng dụng web Nền tảng này

sử dụng các công nghệ tiên tiến để tối ưu hóa và phân phối tài nguyên của ứngdụng web một cách thông minh, đảm bảo tải trang nhanh chóng và trải nghiệmngười dùng tốt

- Mở rộng linh hoạt: Vercel cho phép bạn mở rộng ứng dụng web của mình dễdàng Bạn có thể tăng hoặc giảm quy mô của ứng dụng một cách linh hoạt đểđáp ứng nhu cầu tải trọng thay đổi Vercel cũng tích hợp tốt với các dịch vụđám mây khác như AWS, Google Cloud và Azure

- Tích hợp liền mạch: Vercel tích hợp liền mạch với các công cụ phát triển phổbiến như VS Code, Git và nhiều công cụ khác Điều này giúp tăng năng suấtphát triển và tạo điều kiện thuận lợi cho việc làm việc trong nhóm

Vercel là một nền tảng mạnh mẽ cho phát triển và triển khai các ứng dụng web Nógiúp giảm thiểu công sức và tăng tốc quy trình phát triển, cho phép bạn tập trung vàoviệc xây dựng sản phẩm chất lượng và cung cấp trải nghiệm tuyệt vời cho người dùng

Trang 36

Website bán giày KingShoes

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Phân tích đặc tả yêu cầu

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

+ Admin sẽ quản lý thông tin sản phẩm

+ Admin xem, sửa xoá được các sản phẩm đang có

+ Admin quản lý các danh mục loại sản phẩm

2.1.1.3 Người dùng

- Đăng nhập

+ Người dùng có thể đăng nhập bằng Gmail

- Đăng xuất

+ Người dùng sẽ được đăng xuất ứng dụng khi muốn

- Quản lý thông tin

+ Người dùng có thể xem và cập nhật thông tin cá nhân của mình

- Hệ thống mua sản phẩm

+ Người dùng có thể tìm kiếm, xem chi tiết thông tin sản phẩm

+ Người dùng sau khi lựa chọn sản phẩm sẽ được thanh toán trực tuyếnthông qua StripeCheckout Sau khi thanh toán thành công thì đơn hàng

sẽ được chuyển đến đơn vị vận chuyển

- Hệ thống quản lý đơn hàng

+ Sau khi thực hiện thanh toán thành công, các đơn hàng sẽ được lưu giữ

có trạng thái thanh toán thành công

Trang 37

Website bán giày KingShoes

- Hệ thống đánh giá

+ Người dùng có thể đánh giá và bình luận sản phẩm

+ Người dùng có thể xem đánh giá về sản phẩm

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

2.1.2.1 Hiệu suất

- Cho phép 1 lượng lớn truy cập bằng internet vào hệ thống cùng một lúc

- Thời gian phản hồi nhanh

- Tiết kiệm tài nguyên, đảm bảo sử dụng hợp lý bộ nhớ

- Thời gian nhập/xuất dữ liệu nhanh

- Khả năng phục hồi, sao lưu dữ liệu

- Nếu có sự cố, thời gian phục hồi hệ thống (từ dữ liệu được sao lưu) trong vòng

1 ngày

2.1.2.5 An toàn thông tin

- Đăng nhập để thực hiện các chức năng của hệ thống

- Bảo mật thông tin tốt, đã mã hoá mật khẩu tài khoản đăng nhập

- Toàn vẹn dữ liệu khi có sự cố xảy ra (mất nguồn điện)

2.2 Thiết kế hệ thống

2.2.1 Biểu đồ Usecase

2.2.1.1 Biểu đồ Usecase tổng quát

Ngày đăng: 07/03/2024, 10:43

w