Tải bản đầy đủ (.docx) (93 trang)

Xây dựng website bán đồ nội thất online

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.36 MB, 93 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1

XÂY DỰNG WEBSITE BÁN ĐỒ NỘI THẤT ONLINE

GV HƯỚNG DẪN: Nguyễn Tấn Toàn
SV THỰC HIỆN:
20521767 - Nguyễn Hoàng Phúc
20521833 - Nguyễn Thanh Sang

TP. HỒ CHÍ MINH, 2023


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….


………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
……………………………………….
………………………………………………………………………………………
………………………………………………
Ngày…...tháng…..năm 2023


Người nhận xét
(Ký tên và ghi rõ họ tên)


LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại
học Công nghệ thông tin - ĐHQG TP.HCM chúng em đã được trang bị các kiến
thức cơ bản, các kỹ năng thực tế để có thể lần đầu thực hiện Đồ án 1 của mình.
Chúng em xin gửi lời cảm ơn chân thành đến: Ban Giám hiệu trường Đại học
Công nghệ thông tin – ĐHQG TP.HCM vì đã tạo điều kiện về cơ sở vật chất với hệ
thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm,
nghiên cứu thơng tin.
Chúng em cũng muốn gửi lời cảm ơn chân thành đến thầy Nguyễn Tấn Toàn,

người đã tận tình hướng dẫn và giúp đỡ chúng em. Những lời khuyên quý báu của
thầy không chỉ giúp chúng em hồn thành đề tài mà cịn là tài sản vơ giá để chúng
em vững bước trên con đường học tập và lập nghiệp sau này. Cuối cùng, chúng em
cũng xin cảm ơn gia đình, tất cả thầy cơ trong khoa, bạn bè và các bạn trong lớp
PMCL2020.2, những người luôn sẵn sàng đồng hành và giúp đỡ chúng em trong
học tập cũng như cuộc sống.
Tuy nhiên trong quá trình nghiên cứu đề tài, do kiến thức chuyên ngành còn
hạn chế nên chúng em vẫn cịn nhiều thiếu sót khi tìm hiểu, đánh giá, trình bày về
đề tài. Rất mong nhận được sự quan tâm, góp ý của thầy để đề tài của chúng em
được đầy đủ và hoàn chỉnh hơn. Chúng em xin chân thành cảm ơn.

Thành phố Hồ Chí Minh, 06 tháng 07 năm 2023
Nhóm sinh viên thực hiện

Nguyễn Hoàng Phúc
MỤC LỤ

Nguyễn Thanh Sang


Chương 1.ng 1. MỞ ĐẦU ĐẦUU.................................................................................................................... 2
1.1. Lý do chọn đề tài............................................................................................................. 2
1.2. Mục tiêu đề tài..................................................................................................................2
1.3. Đối tượng sử dụng...........................................................................................................2
1.4. Phạm vi............................................................................................................................... 2
1.5. Công nghệ sử dụng..........................................................................................................2
1.6. Liên kết............................................................................................................................... 3
Chương 1.ng 2. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỞ ĐẦU LÝ THUYẾT VÀ CÔNG NGHỆT VÀ CÔNG NGHỆ.............................................................4
2.1. ReactJS................................................................................................................................4
2.1.1.


Virtual DOM.........................................................................................................4

2.1.2.

Component............................................................................................................ 5

2.1.3.

JSX...........................................................................................................................5

2.1.4.

Props & State........................................................................................................5

2.1.5.

React Lifecycle.....................................................................................................6

2.2. NodeJS................................................................................................................................ 6
2.3. ExpressJS........................................................................................................................... 8
2.4. MongoDB.......................................................................................................................... 9
Chương 1.ng 3. THIẾT VÀ CÔNG NGHỆT KẾT VÀ CƠNG NGHỆ HỆ THỐNGNG.....................................................................................11
3.1. Kiến trúc hệ thống: Mơ hình Client – Server.......................................................11
3.2. Yêu cầu chức năng.......................................................................................................12
3.2.1.

Sơ đồ Use case...................................................................................................12

3.2.2.


Danh sách các actor..........................................................................................13

3.2.3.

Danh sách các use case...................................................................................13


3.2.4.

Đặc tả use case...................................................................................................15

Chương 1.ng 4. THIẾT VÀ CÔNG NGHỆT KẾT VÀ CÔNG NGHỆ CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỞ ĐẦU DỮ LIỆU LIỆU...........................................................................33
4.1. Sơ đồ lớp..........................................................................................................................33
4.2. Danh sách các quan hệ................................................................................................33
4.2.1.

Bảng CUSTOMER...........................................................................................33

4.2.2.

Bảng STAFF......................................................................................................34

4.2.3.

Bảng PRODUCT..............................................................................................34

4.2.4.

Bảng PRODUCT_IMAGE............................................................................35


4.2.5.

Bảng PRODUCT_COLOR............................................................................35

4.2.6.

Bảng PRODUCT_DIMENSION.................................................................35

4.2.7.

Bảng CATEGORY...........................................................................................36

4.2.8.

Bảng SUBCATEGORY.................................................................................36

4.2.9.

Bảng COLOR.....................................................................................................36

4.2.10.

Bảng SUPPLIER...............................................................................................36

4.2.11.

Bảng CART........................................................................................................37

4.2.12.


Bảng CART_ITEM..........................................................................................37

4.2.13.

Bảng ORDER.....................................................................................................37

4.2.14.

Bảng ORDER_ITEM......................................................................................38

4.2.15.

Bảng IMPORT...................................................................................................38

4.2.16.

Bảng IMPORT_DETAIL...............................................................................38

4.2.17.

Bảng FEEDBACK...........................................................................................38

4.2.18.

Bảng FEEDBACK_IMAGE.........................................................................39

4.2.19.

Bảng ADDRESS...............................................................................................39


4.2.20.

Bảng DISCOUNT............................................................................................40


4.2.21.

Bảng WISHLIST..............................................................................................40

4.2.22.

Bảng PAYMENT..............................................................................................40

4.2.23.

Bảng ATTACHMENT....................................................................................40

Chương 1.ng 5. THIẾT VÀ CÔNG NGHỆT KẾT VÀ CÔNG NGHỆ GIAO DIỆN NGƯỜI DÙNGI DÙNG........................................................41
5.1. Màn hình trang chủ.......................................................................................................41
5.2. Màn hình đăng nhập / đăng ký..................................................................................42
5.3. Màn hình quên mật khẩu............................................................................................43
5.4. Màn hình sản phẩm......................................................................................................43
5.5. Màn hình chi tiết sản phẩm........................................................................................44
5.6. Màn hình giỏ hàng........................................................................................................45
5.7. Màn hình đặt hàng........................................................................................................46
5.8. Màn hình thơng tin tài khoản....................................................................................47
5.9. Màn hình danh sách địa chỉ.......................................................................................47
5.10.


Màn hình danh sách hóa đơn.................................................................................48

5.11.

Màn hình chi tiết hóa đơn.......................................................................................49

5.12.

Màn hình đánh giá sản phẩm.................................................................................50

5.13.

Màn hình đổi mật khẩu...........................................................................................51

5.14.

Màn hình danh sách sản phẩm yêu thích...........................................................52

5.15.

Màn hình về chúng tơi.............................................................................................53

5.16.

Màn hình đăng nhập (nhân viên).........................................................................53

5.17.

Màn hình trang chủ...................................................................................................54


5.18.

Màn hình đổi mật khẩu...........................................................................................55

5.19.

Màn hình quản lý sản phẩm...................................................................................56

5.20.

Màn hình thêm sản phẩm.......................................................................................57


5.21.

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

5.22.

Màn hình chỉnh sửa sản phẩm...............................................................................59

5.23.

Màn hình quản lý danh sách nhập kho...............................................................60

5.24.

Màn hình chi tiết nhập kho....................................................................................61

5.25.


Màn hình nhập kho...................................................................................................61

5.26.

Màn hình thêm sản phẩm nhập kho....................................................................62

5.27.

Màn hình quản lý đơn hàng...................................................................................63

5.28.

Màn hình chi tiết đơn hàng....................................................................................64

5.29.

Màn hình quản lý khách hàng...............................................................................65

5.30.

Màn hình chi tiết khách hàng................................................................................65

5.31.

Màn hình quản lý nhân viên..................................................................................66

5.32.

Màn hình thêm nhân viên.......................................................................................67


5.33.

Màn hình chỉnh sửa nhân viên..............................................................................68

5.34.

Màn hình quản lý đợt giảm giá.............................................................................69

5.35.

Màn hình thêm đợt giảm giá..................................................................................70

5.36.

Màn hình chỉnh sửa đợt giảm giá.........................................................................71

5.37.

Màn hình áp dụng đợt giảm giá cho sản phẩm................................................72

5.38.

Màn hình quản lý loại sản phẩm..........................................................................73

5.39.

Màn hình thêm loại sản phẩm...............................................................................73

5.40.


Màn hình chỉnh sửa loại sản phẩm......................................................................74

5.41.

Màn hình quản lý loại phịng.................................................................................74

5.42.

Màn hình thêm loại phịng.....................................................................................75

5.43.

Màn hình chỉnh sửa loại phịng............................................................................75

5.44.

Màn hình quản lý màu.............................................................................................76


5.45.

Màn hình thêm màu.................................................................................................77

5.46.

Màn hình chỉnh sửa màu.........................................................................................78

5.47.


Màn hình quản lý nhà cung cấp............................................................................79

5.48.

Màn hình thêm nhà cung cấp................................................................................79

5.49.

Màn hình chỉnh sửa nhà cung cấp.......................................................................80

Chương 1.ng 6. CÀI ĐẶT VÀ KIỂM THỬT VÀ KIỂM THỬM THỬ...................................................................................81
6.1. Môi trường cài đặt và thử nghiệm...........................................................................81
6.2. Kết quả đánh giá............................................................................................................81
Chương 1.ng 7. KẾT VÀ CÔNG NGHỆT LUẬN VÀ HƯỚNG PHÁT TRIỂNN VÀ HƯỚNG PHÁT TRIỂNNG PHÁT TRIỂM THỬN........................................................82
7.1. Kết quả đạt được...........................................................................................................82
7.2. Hạn chế.............................................................................................................................82
7.3. Hướng phát triển...........................................................................................................82
BẢNG PHÂN CÔNG CÔNG VIỆCNG PHÂN CÔNG CƠNG VIỆC.............................................................................................83
TÀI LIỆU THAM KHẢO..........................................................................................................84

DANH MỤC HÌNH ẢNH
Hình 1: ReactJS................................................................................................................................ 4
Hình 2: NodeJS.................................................................................................................................7
Hình 3: ExpressJS........................................................................................................................... 8
Hình 4: MongoDB........................................................................................................................ 10
Hình 5: Sơng 1. đồ Use case cho đối tượng khách hàng Use case cho đối tượng khách hàngi tượng khách hàngng khách hàng.......................................................12
Hình 6: Sơng 1. đồ Use case cho đối tượng khách hàng Use case cho đối tượng khách hàngi tượng khách hàngng nhân viên...........................................................12
Hình 7: Sơng 1. đồ Use case cho đối tượng khách hàng lớpp.........................................................................................................................33
Hình 8: Màn hình trang chủ....................................................................................................42
Hình 9: Màn hình đăng nhập / đăng kýp / đăng ký..............................................................................42



Hình 10: Màn hình quên mập / đăng kýt khẩuu......................................................................................43
Hình 11: Màn hình sản phẩmn phẩum.................................................................................................43
Hình 12: Màn hình chi tiết sản phẩmt sản phẩmn phẩum.................................................................................44
Hình 13: Màn hình giỏ hàng hàng....................................................................................................45
Hình 14: Màn hình đặt hàngt hàng...................................................................................................46
Hình 15: Màn hình thơng tin tài khoản phẩmn..............................................................................47
Hình 16: Màn hình danh sách địa chỉa chỉ..................................................................................47
Hình 17: Màn hình danh sách hóa đơng 1.n...............................................................................48
Hình 18: Màn hình chi tiết sản phẩmt hóa đơng 1.n.....................................................................................49
Hình 19: Màn hình đánh giá sản phẩmn phẩum..............................................................................50
Hình 20: Màn hình đổi mật khẩui mập / đăng kýt khẩuu.........................................................................................51
Hình 21: Màn hình danh sách sản phẩmn phẩum yêu thích.......................................................52
Hình 22: Màn hình về chúng tơi chúng tơi............................................................................................53
Hình 23: Màn hình đăng nhập / đăng kýp (nhân viên).......................................................................53
Hình 24: Màn hình trang chủ..................................................................................................54
Hình 25: Màn hình đổi mật khẩui mập / đăng kýt khẩuu.........................................................................................55
Hình 26: Màn hình quản phẩmn lý sản phẩmn phẩum................................................................................56
Hình 27: Màn hình thêm sản phẩmn phẩum.....................................................................................57
Hình 28: Màn hình chi tiết sản phẩmt sản phẩmn phẩum.................................................................................58
Hình 29: Màn hình chỉnh sửa sản phẩma sản phẩmn phẩum...........................................................................59
Hình 30: Màn hình quản phẩmn lý danh sách nhập / đăng kýp kho............................................................60
Hình 31: Màn hình chi tiết sản phẩmt nhập / đăng kýp kho..................................................................................61
Hình 32: Màn hình nhập / đăng kýp kho..................................................................................................62
Hình 33: Màn hình thêm sản phẩmn phẩum nhập / đăng kýp kho................................................................62
Hình 34: Màn hình quản phẩmn lý đơng 1.n hàng..................................................................................63
Hình 35: Màn hình chi tiết sản phẩmt đơng 1.n hàng..................................................................................64
Hình 36: Màn hình quản phẩmn lý khách hàng.............................................................................65
Hình 37: Màn hình chi tiết sản phẩmt khách hàng..............................................................................65

Hình 38: Màn hình quản phẩmn lý nhân viên.................................................................................66


Hình 39: Màn hình thêm nhân viên......................................................................................67
Hình 40: Màn hình chỉnh sửa sản phẩma nhân viên............................................................................68
Hình 41: Màn hình quản phẩmn lý đợng khách hàngt giản phẩmm giá...........................................................................69
Hình 42: Màn hình thêm đợng khách hàngt giản phẩmm giá................................................................................70
Hình 43: Màn hình chỉnh sửa sản phẩma đợng khách hàngt giản phẩmm giá......................................................................71
Hình 44: Màn hình áp dụng đợt giảm giá cho sản phẩmng đợng khách hàngt giản phẩmm giá cho sản phẩmn phẩum...........................................72
Hình 45: Màn hình quản phẩmn lý loại sản phẩmi sản phẩmn phẩum.......................................................................73
Hình 46: Màn hình thêm loại sản phẩmi sản phẩmn phẩum............................................................................73
Hình 47: Màn hình chỉnh sửa sản phẩma loại sản phẩmi sản phẩmn phẩum..................................................................74
Hình 48: Màn hình quản phẩmn lý loại sản phẩmi phịng...............................................................................74
Hình 49: Màn hình thêm loại sản phẩmi phịng....................................................................................75
Hình 50: Màn hình chỉnh sửa sản phẩma loại sản phẩmi phịng..........................................................................75
Hình 51: Màn hình quản phẩmn lý màu............................................................................................76
Hình 52: Màn hình thêm màu.................................................................................................77
Hình 53: Màn hình chỉnh sửa sản phẩma màu.......................................................................................78
Hình 54: Màn hình quản phẩmn lý nhà cung cấpp.........................................................................79
Hình 55: Màn hình thêm nhà cung cấpp..............................................................................79
Hình 56: Màn hình chỉnh sửa sản phẩma nhà cung cấpp.....................................................................80


TÓM TẮT ĐỒ ÁN
Đồ án này được chúng em thực hiện với mục tiêu xây dựng một website bán đồ nột
thất online với UI đẹp và tiện dụng cho khách hàng, cũng như tìm hiểu về MERN
stack nói riêng và lập trình web nói chung.
Ứng dụng có hai front-end đều được viết bằng Reactjs và deploy bằng Vercel bao
gồm website cho người dùng và website cho các nhân viên của cửa hàng nội thất
(admin, nhân viên kho, nhân viên sale) cùng lấy api từ 1 back-end sử dụng Nodejs,

Expressjs deploy bằng Render. Database sử dụng MongoDB.
Đồ án bao gồm 7 chương, được viết theo quá trình phát triển của ứng dụng:
Chương 1: MỞ ĐẦU
-

Giới thiệu sơ lược về đồ án.

Chương 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
-

Giới thiệu về MERN Stack.

Chương 3: THIẾT KẾ HỆ THỐNG
-

Kiến trúc hệ thống và use case.

Chương 4: THIẾT KẾ CƠ SỞ DỮ LIỆU
-

Các bảng trong database.

Chương 5: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG
-

Các màn hình của ứng dụng.

Chương 6: CÀI ĐẶT VÀ KIỂM THỬ
-


Môi trường cài đặt và đánh giá

Chương 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
-

Kết quả đạt được, hạn chế và hướng phát triển.

1


Chương 1. MỞ ĐẦU
1.1.

Lý do chọn đề tài

Trên thị trường hiện nay có rất nhiều website bán đồ nội thất, được phát triển bởi
các nền tảng phát triển thương mại điện tử hay tự phát triển bởi các công ty. Nhưng
không phải tất cả đều hoạt động hiệu quả và đáp ứng yêu cầu của người dùng.
Nhóm chúng em muốn tạo ra một website bán đồ nội thất với giao diện được tuỳ
chỉnh đặc biệt cho doanh nghiệp.
1.2.
-

Mục tiêu đề tài

Xây dựng website cho phép quản lý cửa hàng nội thất online, cho phép người
dùng mua hàng, tìm kiếm hàng, xem lịch sử mua hàng, cùng với đó là các
chức năng để tối ưu hóa dịch vụ chăm sóc khách hàng, nâng cao trải nghiệm
mua hàng và tăng cường khả năng tiếp cận khách hàng.


-

Xây dựng website với giao diện thân thiện, tối ưu, dễ tiếp cận.

-

Xây dựng hệ thống với tốc độ xử lý tối ưu nhất có thể.

1.3.
-

Đối tượng sử dụng

Các công ty sản xuất nội thất, muốn áp dụng công nghệ trong kinh doanh,
muốn tạo ra một website để mang lại dấu ấn riêng cho doanh nghiệp của
mình.

1.4.
-

Phạm vi

Website admin cho phép quản lý hàng hóa nội thất, thống kê số liệu và quản
lý người dùng, nhân viên, đợt giảm giá sản phẩm.

-

Website khách hàng cho phép người dùng mua hàng, tìm kiếm thơng tin
hàng hóa, và các chức năng để tối ưu dịch vụ chăm sóc khách hàng.


1.5.
-

Công nghệ sử dụng

Thư viện ReactJS

2


-

NodeJS

-

Framework ExpressJS

-

MongoDB

-

Thiết kế giao diện: Figma

-

IDE: Visual Studio Code


-

Deploy Front-end: Vercel

-

Deploy Back-end: Render

1.6.
-

Liên kết

Github Front-end (Website khách hàng):
/>
-

Github Front-end (Website admin):
/>DMIN

-

Github Back-end:
/>
3


Chương 2. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
2.1.
-


ReactJS

React (ReactJs hay React.js) là 1 thư viện JavaScript mã nguồn mở được
phát triển bởi đội ngũ kỹ sư đến từ Facebook; nó được giới thiệu vào năm
2011, cho đến nay là đã được hơn 10 năm. Nguyên lý xây dựng của React
dựa trên components (component-based approach), có thể tái sử dụng và phù
hợp với ứng dụng 1 trang (Single Page Application – SPA). React giúp lập
trình viên xây dựng giao diện người dùng dựa trên JSX (môt cú pháp mở
rộng của JavaScript), tạo ra các DOM ảo (virtual DOM) để tối ưu việc render
1 trang web.

Hình 1: ReactJS
2.1.1. Virtual DOM
-

DOM hay Document Object Model là một cấu trúc trừu tượng của text. Mỗi
đoạn mã của HTML được gọi là một HTML DOM, các yếu tố trong HTML
là các nodes của DOM đó.

4


-

Tại sao chúng ta cần virtual DOM vì khi nodes thay đổi các nodes khác cũng
cần thay đổi. Chẳng hạn, bạn có 10 items nhưng nếu bạn thay đổi 1 thì DOM
cững thay đổi 9 items cịn lại quay trở lại trạng thái ban đầu.

-


Điều này là không thực sự cần thiết, bởi tốc độ xử lý của DOM nhanh nhưng
với các ứng dụng SPA việc thay đổi các DOM liên tục sẽ xảy ra khá chậm và
khơng mang tính khả thi cao khi triển khai ứng dụng lớn. Khi đó virtual
DOM sẽ được sử dụng để thay thế, được xây dựng dựa trên DOM thực tế.

-

Khi thực hiện render một JSX element, các virtual DOM object sẽ được cập
nhật khi virtual DOM được cập nhật. ReactJS so sánh virtual DOM với
virtual DOM trước đó nhằm đảm bảo trước khi thực hiện cập nhật, cập nhật
trên DOM thật sau đó và hiển thị trên màn hình.

-

Việc sử dụng virtual DOM sẽ giúp tiết kiệm tài nguyên và tốc độ xử lý
nhanh hơn vì virtual DOM tập trung cập nhật 1 items duy nhất.
2.1.2. Component

-

Khi làm việc trong các project lớn, UI có độ phức tạp cao và cần được chia
thành các thành phần nhỏ được gọi là component.

-

Trong ReactJS có hai loại component chính là Class component và Function
component.
2.1.3. JSX


-

JSX là thuật ngữ viết tắt của Javascript XML cho phép việc viết đoạn mã
HTML trong React trở nên đơn giản, dễ dàng và có cấu trúc hơn. Cú pháp
gần tương tự với HTML.
2.1.4. Props & State

-

Props và State là hai kiểu dữ liệu React. Nếu bạn chỉ mới tìm hiểu thì khá
khó để phân biệt ngay từ đầu, nhưng khi bạn bắt đầu cơng việc code thì sẽ
nhanh chóng có thể phân biệt được hai loại dữ liệu này.

5


-

Sự khác biệt lớn nhất giữa hai kiểu dữ liệu này: Trong khi state thì private và
chỉ thay đổi bên trong component thì Props mang tính external, được truyền
từ component cao hơn theo phân cấp.

-

Props là tham số được chuyển qua lại giữa các React component và được
truyền qua các component với cú pháp tương tự HTML attributes.

-

State là một object lưu trữ giá trị của các thuộc tính trong component và tồn

tại trong phạm vi của component đó. Khi giá trị của state được thay đổi,
component sẽ được render lại.

-

Cách để cài đặt state khá đơn giản là việc cài đặt hàm getInitialState() vào
component, và trả về bất cứ gì bạn muốn cài đặt trong state của component
này.

-

Để thay đổi state, chúng ta gọi hàm this.setState(), và truyền vào state mới
giống như một tham số.
2.1.5. React Lifecycle

-

React Lifecycle là một vịng đời của component. Trong khi render một
component thì ReactJS thực hiện nhiều tiến trình khác nhau và được lặp lại
nhiều lần với các component.

-

Khi một component được gọi lên trước, nó sẽ tiến hành cài đặt props và state
tiếp đó là mounting, unmounting, update, v.v khi đó bạn cần sử dụng hỗ trợ
của các hàm lifecycle.

2.2.
-


NodeJS

NodeJS là một mơi trường runtime chạy JavaScript đa nền tảng và có mã
nguồn mở, được sử dụng để chạy các ứng dụng web bên ngồi trình duyệt
của client. Nền tảng này được phát triển bởi Ryan Dahl vào năm 2009, được
xem là một giải pháp hoàn hảo cho các ứng dụng sử dụng nhiều dữ liệu nhờ
vào mơ hình hướng sự kiện (event-driven) không đồng bộ.

6


Hình 2: NodeJS
Ưu điểm:
-

IO hướng sự kiện khơng đồng bộ, cho phép xử lý nhiều yêu cầu đồng thời.

-

Sử dụng JavaScript – một ngơn ngữ lập trình dễ học.

-

Chia sẻ cùng code ở cả phía client và server.

-

NPM(Node Package Manager) và module Node đang ngày càng phát triển
mạnh mẽ..


-

Cộng đồng hỗ trợ tích cực.

-

Cho phép stream các file có kích thước lớn.
Nhược điểm:

-

Khơng có khả năng mở rộng, vì vậy khơng thể tận dụng lợi thế mơ hình đa
lõi trong các phần cứng cấp server hiện nay.

-

Khó thao tác với cơ sử dữ liệu quan hệ.

-

Mỗi callback sẽ đi kèm với rất nhiều callback lồng nhau khác.

-

Cần có kiến thức tốt về JavaScript.

-

Khơng phù hợp với các tác vụ địi hỏi nhiều CPU.


7


2.3.
-

ExpressJS

ExpressJS là một framework miễn phí và mã nguồn mở dành cho việc xây
dựng ứng dụng web trên nền tảng Node.js. Với ExpressJS, người dùng có thể
nhanh chóng thiết kế và phát triển các ứng dụng web và API một cách dễ
dàng và tiện lợi. Điều này đặc biệt hữu ích cho các nhà phát triển và lập trình
viên đã quen thuộc với JavaScript.

Hình 3: ExpressJS
-

Vì ExpressJS là một framework phát triển ứng dụng web trên Nodejs, các lập
trình viên có thể sử dụng mã đã có sẵn để xây dựng các ứng dụng web đơn
trang (SPA), đa trang hoặc kết hợp cả hai. Ngồi ra, ExpressJS cịn cung cấp
một kiến trúc MVC (Model-View-Controller) hữu ích để tổ chức các ứng
dụng web phía máy chủ.

-

Với các tính năng hỗ trợ nâng cao của Nodejs, ExpressJS giúp giảm bớt sự
phức tạp của việc xây dựng API hiệu quả. Nếu không sử dụng ExpressJS, lập
trình viên sẽ phải viết rất nhiều mã để xử lý các yêu cầu khác nhau.

-


Nhưng ExpressJS giúp cho việc này trở nên đơn giản hơn đáng kể. Với sự hỗ
trợ từ cộng đồng và các thư viện bên thứ ba, ExpressJS là một cơng cụ hữu
ích cho việc xây dựng các ứng dụng web và API trên Nodejs.
Lợi ích khi sử dụng:

-

ExpressJS là một cơng nghệ rất dễ học và sử dụng nếu bạn đã biết
JavaScript. Điều này giúp cho việc phát triển back-end dễ dàng hơn rất

8


nhiều. Bởi vì mã JavaScript được diễn giải thơng qua Google V8 JavaScript
Engine của Nodejs, ExpressJS cho phép mã được thực hiện một cách nhanh
chóng và hiệu quả.
-

ExpressJS giúp giảm một nửa thời gian viết mã nhưng vẫn giúp nhà phát
triển xây dựng các ứng dụng web hiệu quả. Nó cịn cung cấp các tính năng
khác nhau giúp tiết kiệm công sức rất nhiều.

-

Sử dụng ExpressJS tương đối dễ dàng vì nó hỗ trợ JavaScript, một ngơn ngữ
rất dễ học đối với bất kỳ ai. Do đó, ExpressJS được coi là một công cụ tuyệt
vời để cho những người mới bắt đầu tham gia vào lĩnh vực phát triển ứng
dụng web và có thể giúp họ gặt hái thành cơng.


-

Ngồi ra, ExpressJS được phát triển dựa trên nền tảng Nodejs. Đây chính là
một kiến trúc hướng sự kiện và nó có khả năng xử lý lên đến hàng nghìn u
cầu của khách hàng trong cùng một lúc. Đó cũng là điều mà PHP không thể
thực hiện được. Nodejs được thiết kế đặc biệt để hỗ trợ các ứng dụng web
thực.

-

Việc sử dụng tiền một cách hiệu quả để tối đa hóa lợi nhuận là một điều quan
trọng đối với bất kỳ doanh nghiệp nào. ExpressJS là một ứng dụng web miễn
phí và mã nguồn mở, do đó khơng có lý do gì để khơng sử dụng framework
này.

2.4.
-

MongoDB

MongoDB, được biết đến như cơ sở dữ liệu NoSQL phổ biến nhất, là cơ sở
dữ liệu định hướng tài liệu mã nguồn mở. Thuật ngữ 'NoSQL' có nghĩa là
'khơng có mối quan hệ' (Non-relational). Điều đó có nghĩa là MongoDB
khơng dựa trên cấu trúc cơ sở dữ liệu quan hệ giống như bảng mà cung cấp
một cơ chế hoàn toàn khác để lưu trữ và truy xuất dữ liệu. Định dạng lưu trữ
này được gọi là BSON (tương tự như định dạng JSON).

9




×