Professional Documents
Culture Documents
****** ******
NHẬN XÉT
6. Điểm:
2
ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM
****** ******
NHẬN XÉT
6. Điểm:
LỜI CẢM ƠN
3
Trong quá trình nghiên cứu đề tài, các giảng viên đã luôn hỗ trợ, giải đáp các thắc mắc
hướng dẫn chúng em. Cảm ơn thầy đã hỗ trợ chúng em trong thời gian qua.
Đặc biệt, xin gửi lời cảm ơn chân thành nhất đến thầy Nguyễn Thành Sơn – giáo viên
hướng dẫn Khóa luận tốt nghiệp– Khoa công nghệ thông tin – Đại học Sư phạm Kỹ
thuật Tp. Hồ Chí Minh, đã hướng dẫn, quan tâm, góp ý và luôn đồng hành cùng nhóm
trong những giai đoạn khó khăn nhất của đề tài.
Với những kinh nghiệm thực tiễn còn thiếu sót và kinh nghiệm chuyên môn còn
non yếu, bài báo cáo vẫn có những thiếu sót và hạn chế nhất định. Kính mong nhận
được những phản hồi, đóng góp ý kiến và chỉ bảo thêm của quý thầy cô để nhóm có
thể đạt được những kiến thức hữu ích nhất, nâng cao ý thức để phục vụ cho kỹ năng
sau này.
Tên luận văn : Xây dựng website bán đồ nội thất bằng công nghệ Mern Stack
Trước tiên cần nắm kỹ về ngôn ngữ lập trình Javascript, tìm hiểu về Framework và
cơ sở dữ liệu để thực hiện tiểu biểu là NodeJS, Express, ReactJS và MongDB
chúng ta cần hiểu về cách hoạt động của chúng, phải trải qua quá trình làm việc với
những Framework này trước đó nếu không sẽ rất khó khăn trong việc viết một ứng
dụng hoàn chỉnh.
Cần phải tìm hiểu các trang web có cấu trúc tương tự ví dụ như tiki, lazada,…tìm
hiểu cấu trúc chương trình cơ sỡ dữ liệu, để đi đúng hướng phát triển tránh ứng
dụng làm ra không được áp dụng rộng rãi.
Cuối cùng phải đưa ra sự lựa chọn tổ chức ứng dụng của chúng ta theo cách nào.
Sau đó đi vào thiết kế cơ sở dữ liệu, phân chia công việc tiến hành thực hiện xây
dựng server, viết các API, Xây dựng giao diện và thực hiện từng chức năng bằng
cách kết nối từng API với giao diện chức năng.
5
GHI
STT THỜI GIAN CÔNG VIỆC
CHÚ
15/03/2021- Hoàn
1 Viết giao diện và API login, register
20/03/2021 thành
21/03/2021- Viết giao diện và API cho trang danh mục sản Hoàn
2
27/03/2021 phẩm thành
29/03/2021- Hoàn
3 Xây dựng thêm trang seller
03/04/2021 thành
05/04/2021- Hoàn
4 Xây dựng lại giao diện cho trang admin
12/04/2021 thành
13/04/2021- Xây dựng chức năng quản lý danh mục quản lý Hoàn
5
30/04/2021 sản phẩm, các đơn hàng và doanh thu cho admin thành
Load data trên giao diện người dùng và thêm các
01/05/2021- Hoàn
6 trang cần thiết như đánh giá, trang xem thông tin
03/05/2021 thành
người bán
07/05/2021- Cải thiện giao diện người dùng thêm thanh toán Hoàn
7
10/05/2021 momo thành
Xây dựng thêm các chức năng trên seller như
12/05/2021- Hoàn
8 giảm giá, trả lời đánh giá của khách hàng, các
30/05/2021 thành
chức năng thông báo khi có đơn hàng mới.
01/06/2021- Hoàn
9 Fix bug và viết lại báo cáo
11/06/2021 thành
6
MỤC LỤC
PHẦN 1: MỞ ĐẦU.................................................................................................................11
1.5. NHỮNG NỘI CHỨC NĂNG ĐÃ HOÀN THÀNH TRONG TIỂU LUẬN....................12
1.6. CÁC CHỨC NĂNG ĐÃ HOÀN THIỆN THÊM TRONG KHÓA LUẬN......................12
I. Ý NGHĨA VỀ MERN...........................................................................................................14
I.MÔ TẢ WEBSITE.................................................................................................................33
1. Lý do chọn đề tài..................................................................................................................33
2.Các chức năng có thể xây dựng.............................................................................................33
II. CÁC THÀNH PHẦN CẦN CÓ ĐỂ WEBSITE CÓ THỂ HOẠT ĐỘNG ỔN ĐỊNH........34
1.Tên miền................................................................................................................................34
2.Thiết kế Website....................................................................................................................34
3.Hosting...................................................................................................................................35
4.Mô tả giao diện các webpage.................................................................................................35
8
5. Use case duyệt sản phẩm......................................................................................................42
6. Use case xác nhận đánh giá..................................................................................................42
7. Use case thêm sản phẩm.......................................................................................................43
8. Use case gửi đơn hàng..........................................................................................................44
V. SƠ ĐỒ ACTIVITY..............................................................................................................45
1.Đăng nhập..............................................................................................................................45
2.Giỏ hàng.................................................................................................................................46
3. Tìm kiếm sản phẩm..............................................................................................................46
4.Đánh giá sản phẩm.................................................................................................................47
5. Thêm danh mục....................................................................................................................48
6. Cập nhật danh mục...............................................................................................................49
7. Đặt hàng................................................................................................................................50
9
DANH SÁCH HÌNH ẢNH
11
PHẦN 1: MỞ ĐẦU
Hiện nay việc tạo ra trang web cũng như nhu cầu sử dụng ngày cao các công ty thiết
kế web sẽ phải cạnh tranh rất cao về giá cả cũng như chất lượng sản phẩm tạo ra nên
việc lựa chọn các công nghệ khác nhau để thiết kế web để tạo ra một sản phẩm tốt đáp
ứng người dùng thì việc lựa chọn Mern Stack để thiết kế trang web nó đem lại những
lợi ích như sau:
Dễ thực hiện và linh hoạt nó cung cấp cho nhà phát triển đầy đủ ngăn xếp để tạo ra và
phát triển một trang web từ đầu đến cuối khi thực hiện.
Có nguồn mở trong các khung và được hỗ trợ bởi các hỗ trợ cộng đồng tốt và một bộ
công cụ kiểm tra mở rộng được xây dựng sẵn.
Tính khả thi của bốn công nghệ tốt nhất là MongoDB, ExpressJS, ReactJS và NodeJS.
Giúp phát triển web yêu cầu cao tạo cho người dung có trải nghiệm tốt nhất khi sử
dụng.
Nguồn mở trong các khung và được hỗ trợ bởi các hỗ trợ cộng đồng tốt. Làm chủ cả
phần thuật toán, logic, các thành phần thiết kế và trải nghiệm người dùng [9].
1.2. MỤC ĐÍCH CỦA ĐỀ TÀI
Học và hiểu sâu hơn về ngôn ngữ lập trình Javascript thông qua việc viết một ứng
dụng web thực tế, một trang web bán đồ nội thất bằng cách sử dụng các Framework
của Javascript như Express, NodeJS, NestJS, ReactJS, NextJS và cơ sơ sở liệu là
MongoDB. Thông qua ứng dụng còn giúp chúng em học thêm về các Framework để
ứng dụng vào thực tế sau này.
Giúp cho cửa hàng có thể nâng cao thương hiệu cá nhân hoặc doanh nghiệp cũng như
chất lượng sản phẩm dịch vụ đối với khách hàng. Đồng thời, giúp quản lý số lượng
hàng hóa hiện có hay đã hết trong kho, quản lý sản phẩm, danh mục sản phẩm, các
đơn hàng và đánh giá của khách hàng, quy trình bán nhanh gọn hiệu quả tiết kiệm thời
gian và chi phí.
1.3. CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU
12
ReactJS: hiểu rõ về HTML, CSS, JS để xây dựng giao diện của trang web, tìm hiểu
về cách hoạt động của ReactJS, cách mà thư viện tích hợp vào ứng dụng.
NodeJS: sử dụng kết hợp với express để nâng cao tính hiểu quả, do express cung
cấp những tính năng giúp chúng ta xây dựng server một cách dể dàng hơn. Ngoài
ra nhóm còn nghiên cứu về NestJS là một framework được xậy dựng sẵn từ
NodeJS và Express.
MongoDB: tìm hiểu về cách lưu trữ dữ liệu trong MongoDB và các datatype của
nó, cách kết nối với ứng dụng server.
Nghiên cứu cách tổ chức chương trình trên các trang web lớn, các công nghệ thư
viện để tích hợp vào của họ, để hiểu hơn về cách lập một ứng dụng hoàn chỉnh.
1.4. KẾT QUẢ DỰ KIẾN
Tạo một ứng dụng web cho phép người bán đăng tải các sản phẩm của họ lên trang
chủ.
Cho phép khách hàng lựa chọn nhiều loại sản phẩm trên nhiều danh mục, chọn
thanh toán qua Momo và trực tiếp.
Khách hàng được phép bình luận về sản phẩm khi mua hàng.
Thống kê doanh thu bán được.
1.5. NHỮNG NỘI CHỨC NĂNG ĐÃ HOÀN THÀNH TRONG TIỂU LUẬN
Đăng nhập đăng ký
Quản lý thêm xóa sửa danh mục sản phẩm
Quản lý thêm xóa sửa sản phẩm xem thông tin sản phẩm
Lấy danh sách sản phẩm mới
Lọc sản phẩm theo giá
Tìm kiếm sản phẩm
Hiển thị chi tiết sản phẩm
Bình luận sản phẩm đã mua, xóa bình luận
Mua hàng bằng cách thanh toán trực tiếp
Quản lý đơn hàng, duyệt đơn hàng, hủy đơn hàng
Quản lý tài khoản, xóa tài khoản
1.6. CÁC CHỨC NĂNG ĐÃ HOÀN THIỆN THÊM TRONG KHÓA LUẬN
13
Đối với đồ án khóa luận đã có nhiều cải tiến về cách hoạt động. Thay vì admin tạo
sản phẩm rồi bán theo cách bình thường, thì ta thêm trang Seller là trang dùng cho
những nhà bán hàng đăng ký bán không phải là admin seller bao gồm các chức năng:
Admin sẽ tạo danh mục giống như lúc trước nhưng thêm chức năng search
Admin sẽ duyệt sản phẩm của seller mới được đưa ra bán, quản lý thông tin sản
phẩm
Thống kê doanh thu cho admin
Quản lý đơn hàng của các seller
Admin được xem chi tiết hóa đơn
Thông báo khi có đơn hàng hay sản phẩm mới từ seller
Ngoài ra admin sẽ được phê duyệt đánh giá
Thêm lọc sản phẩm theo giá tăng hoặc giảm, lọc theo số sao
Thêm thông báo đến người dùng khi đơn hàng được duyệt, đang vận chuyển
Thêm dropdown chọn địa chỉ giao hàng
Thêm chọn phương thức thanh toán momo
14
PHẦN 2: NỘI DUNG
CHƯƠNG 1: CÔNG NGHỆ MERN STACK
I. Ý NGHĨA VỀ MERN
Với sự phổ biến rộng rãi của Javascript cũng như thống kê hiện nay, các dịch vụ phát
triển ứng dụng web và di động ngày càng phổ biến và bước lên một tầm cao thì Mern
Stack đang có lợi thế rất lớn và được ưu tiên lựa chọn để thiết kế Website.
MERN STACK là công nghệ dùng để xây dựng các ứng dụng web nâng cao. Ngăn
xếp MERN bao gồm các thành phần nguồn mở khác nhau bao gồm:
Các thành phần này cung cấp hỗ trợ để các nhà phát triển làm việc và là bộ Combo
Open Source các công nghệ đều liên quan tới JavaScript.
STACK: một chương trình hoàn thiện không chỉ có code, mà còn phải có nền tảng hệ
điều hành và những phần mềm đi kèm (web server, cơ sở dữ liệu). Người ta gom
những thứ này lại với nhau tạo thành technical stack.
Reactjs được ra đời vào năm 2013 bước đầu nó chỉ là các trang html tĩnh sau đó css và
js ra đời giúp người dùng tương tác và tạo ra trang web đẹp hơn nhưng chỉ là gửi và
nhận file nhưng JQuery ra đời giúp phát triển trang chỉ cần load trang web 1 lần như
cập nhật data [8].
Năm 2010 Angular được tạo bởi google ra đời đã tạo ra chuẩn mực xây dựng web sau
này nhưng sẽ có rất nhiều tính năng được sinh ra tại nhiều chỗ khác nhau trên trang
web như tin nhắn, các quảng cáo, bài post….ví dụ như facebook mà AngularJS khó
giải quyết vì lượng code quá nhiều nên năm 2013 các kỹ sư ở Facebook đã ra đời khái
niệm React khi nó giới thiệu và phát triển đến ngày nay và được nhiều công ty lớn trên
thế giới dùng [8].
15
2. Lịch sử phát triển NodeJS
Node.js được Ryan Dahl viết ban đầu vào năm 2009 nhưng còn nhiều khả năng hạn
chế của máy chủ web nên 8 tháng 11 năm 2009 Node.js kết hợp công cụ
JavaScript V8 của Google [10].
Vào tháng 1 năm 2010, một trình quản lý gói đã được giới thiệu cho Node.js được gọi
là npm giúp lập trình viên dễ dàng xuất bản và chia sẻ mã nguồn của các gói Node.js
và được thiết kế để đơn giản hóa việc cài đặt, cập nhật và gỡ cài đặt các gói.
Vào tháng 6 năm 2011, Microsoft và Joyent đã triển khai phiên bản Windows gốc của
Node.js [10].
Vào tháng 12 năm 2014, Fedor Industry bắt đầu io.js, một nhánh của Node.js. Do mâu
thuẫn nội bộ về quản trị của Joyent, io.js được tạo ra như một giải pháp thay thế quản
trị mở với một ủy ban kỹ thuật riêng biệt.
Vào tháng 2 năm 2015, ý định thành lập quỹ Node.js trung lập đã được công bố. Đến
tháng 6 năm 2015, cộng đồng Node.js và io.js đã bỏ phiếu để làm việc cùng nhau dưới
Node.js Foundation
Vào năm 2019, JS Foundation và Node.js Foundation đã hợp nhất để tạo
thành OpenJS Foundation [10].
MongoDB được phát triển bởi công ty phần mềm 10gen vào năm 2007 đến năm 2009
công ty chuyển sang mô hình phát triển mã nguồn mở công ty cung cấp hỗ trợ thương
mại và các dịch vụ khác. Năm 2013 10gen đổi tên thành MongoDB Inc.
Vào ngày 20 tháng 10 năm 2017, MongoDB trở thành công ty giao dịch công khai và
được yết trên NASDAQ với tên gọi MDB
Vào ngày 30 tháng 10 năm 2019, MongoDB đã hợp tác với Alibaba cung cấp cho
khách hàng của mình giải pháp MongoDB-as-a-service. Khách hàng có thể sử dụng
dịch vụ được quản lý từ các trung tâm dữ liệu toàn cầu của BABA [11].
Bước 2: Sau khi chọn phiên bản phù hợp với máy tính thì ta chỉ cần chạy file vừa tải
và cài đặt rất đơn giản.
Bước 3 Để chạy được NodeJS ta cần có một trình soạn thảo code. Ở đây công cụ mà
nhóm sử dụng là Visual Studio Code https://code.visualstudio.com một tool khá nổi
tiếng. Để đơn giản ta tạo một thư mục rồi mở nó lên ở Visual Studio Code rồi mở
terminal gõ npm init để tạo một project NodeJS như hình.
17
Hình 2. Màn hình terminal tạo mới project nodejs
Là một Framework chạy trên nền tảng của NodeJS nên ta sẽ cài nó trong project của
NodeJS bằng cách gõ lệnh “npm install express” ngay trong project NodeJS.
18
III. CÀI ĐẶT VỚI REACT
Ta có thể dùng cmd hoặc PowerShell để cài reactjs ở global với lệnh “npm install –g
create-react-app”
19
Hình 5. Giao diện cài đặt MongoDB
Tiếp tục nhấn Next sau đó chọn Custom và tiếp tục Next rồi chọn mục lưu file tải. Sau
đó lựa chọn để cài đặt Mongo Compass đây là một công cụ trực quan giúp làm việc
với MongoDB.
20
MongoDB được chạy với cổng 27017 ở local, dùng chuỗi kết nối trên để kết nối tới
server bên Nodejs. Chọn connect để tiếp tục, dấu cộng bên dưới để tạo một db mới,
như nhóm đã làm database có tên ecommerce-tlcn, có thể chọn create collection để tạo
mới một collection.
Đối với nodejs chúng ta không cần tạo trước collection mà có thể để nó tự tạo kết khi
kết nối Nodejs. Để kết nối giữa server và database mongoDB ta dùng thư viện
mongoose. Để cài đặt mongoose ta làm đơn giản, mở cmd gõ lệnh : npm install
mongoose –save hoặc yarn add mongoose nếu dùng yarn.
Sau đó tiến hành import vào project để tạo kết nối, với chuỗi kết ban đầu bên
mongoDB là: "mongodb://localhost:27017/ecommerce-tlcn"
21
Hình SEQ Hình
Hình 9.
\* Kết
ARABIC 9. MongoDB
nối với Kết nối MongoDB
ở local trên local
Ta tiến hành tạo các Shema để khai báo thuộc tính, và dùng Schema để tạo Model ứng
với các bản trong database.
Ví dụ như phần cart có các trường như user cho biết cart đó thuộc user nào, cartItems
là mảng các item có trong cart, trong item lại có mã sản phẩm tương ứng, số lượng và
giá của sản phẩm, từ shema trên dùng tạo thành một model.
Khi người bắt đầu mua từ bên client gửi một request đến server, lúc này mongoose sẽ
tạo ra cho chúng ta một collection với những trường tương ứng mà ta đã tạo bên
server, _id được tạo tự động để phân biệt với các đối tượng khác, dữ liệu bên
mongoDB lưu với dạng json, bao gồm key value.
22
Hình 11.Data được lưu vào MongoDB
23
HƯƠNG 3: TÌM HIỂU CÁC TRANG WEB BÁN ĐỒ NỘI THẤT
Web nội thất Nhà Đẹp là một trong những thương hiệu đi đầu trong lĩnh vực nội
thất tại Việt Nam hiện nay có tuổi đời lâu. Được hoạt động vào năm 1999 có quy mô 3
nhà máy sản xuất. Có hệ thống cửa hàng tại Hà Nội và TP. Hồ Chí Minh đến nay đã
được phát triển rộng khắp cả nước với quy mô càng phát triển sẵn sàng cung cấp cho
thị trường những sản phẩm nội thất, đồ dùng gia đình tới các nhu cầu từng cá nhân
người dùng từ giá thành cao tới giá thành thấp nhưng chất lượng luôn đi kèm với sản
phẩm. Được thiết kế chủ đạo trên phông nền màu trắng. Sản phẩm được đăng bán trên
Web được mô tả rất chi tiết cụ thể, giúp người mua nắm rõ những thông tin sản phẩm
trước khi quyết định mua hàng.
Ban đầu chỉ là một trang giới thiệu doanh nghiệp nhưng đến năm 2007
Nhadep.com.vn được phát triển hơn về giao diện các chức năng hơn trở thành một
trang web mua bán online mua bán nội thất lớn tại việt nam. Nhadep.com.vn dần hoàn
thiện hơn về giao diện.
24
2.Các đặc điểm của trang web
Tối ưu hóa khi dùng di động lên trang web, cho khách hàng thấy được lợi ích của sản
phẩm trên web đăng bán cũng như tạo cảm giác tin tưởng cho khách hàng khi xem
sản phẩm.
Giao diện trang web: Chủ đạo trên nền phông trắng, mô tả chi tiết giá thành từng sản
phẩm đầy đủ thông tin cửa hàng chi nhánh các thương hiệu thuộc TCT GROUP
khuyến mãi cũng như thông tin cần liên hệ khi khách hàng cần.
Bố cục trang web: Dễ nhìn cho người dung, logo thương hiệu rõ ràng trong website
Nội dung hấp dẫn: Thường xuyên cập nhập nội dung sản phẩm cũng như thông tin
khuyến mãi tới khách hàng và giới thiệu sản phẩm logic thu hút khách hàng.
25
II. TRANG WEB NHAXINH.COM
Website nhaxinh.com được thành lập đầu tiên vào năm 2007 tiên phong phát triển nội
thất trên Internet. Tạo nên thương hiệu có uy tín đạt nhiều thành tích trong ngành nội
thất trong nước và là một trong những thương hiệu lâu đời từ 2 cửa hàng ở Tp. Hồ Chí
Minh và Tđ. Hà Nội những năm 2008.
Giao diện trang web: Chủ đạo trên nền phông trắng, mô tả chi tiết giá thành từng sản
phẩm đầy đủ thông tin cửa hàng chi nhánh các thương hiệu phần lớn sản phẩm của
Nhà Xinh được sản xuất tại nhà máy của Tổng công ty AA (AA Đức Hòa, Long An và
AA Tây Ninh) có diện tích 80.000m2, với trang thiết bị hiện đại nhất và theo tiêu
chuẩn ISO 9001, chuyên sản xuất các sản phẩm nội thất chất lượng cao cho các khách
sạn, nhà hàng 5 sao, dự án nội thất cao cấp và xuất khẩu.
Bố cục trang web: Dễ nhìn cho người dùng, logo thương hiệu rõ ràng trong website.
Nội dung hấp dẫn: Thường xuyên cập nhập nội dung sản phẩm cũng như thông tin
khuyến mãi tới khách hàng và giới thiệu sản phẩm logic thu hút khách hàng.
26
3.Ưu nhược điểm của trang web
+ Giúp việc giao dịch nhanh cũng + Việc tư vấn thắc mắc cho khách
như Linh hoạt về thời gian, không hàng chậm.
gian
+ Thông tin liên hệ online khách hàng
+ Tiết kiệm thời gian cho người còn ít không đủ phục vụ khách hàng.
mua hàng
+ Không cho khách hàng đánh giá
+ Giao diện mới tổng quan đầy đủ sản phẩm khi đã mua hàng.
cho người dùng dễ nắm bắt dễ hiểu
+ Hiển thị thông tin sản phẩm khuyến
được thông tin sản phẩm cần mua,
mãi quá nhỏ khó cho khách hàng nhìn
số lượng mua sản phẩm ngày càng
thấy.
tăng.
+ Khách hàng không lưu được hình
+ Tốc độ truy cập vào web nhanh
ảnh sản phẩm về máy.
+ Chất lượng hình ảnh sản phẩm tốt
đa dạng về mẫu mã sản phẩm.
Homeooffice.com.vn là website bán đồ nội thất trực tuyến thuộc sở hữu của công
ty TNHH TMDV Home Office được đưa vào hoạt động vào tháng 3 năm 2015. Nội
thất của Home Office kinh doanh sản xuất rất đa dạng phục vụ cho nội thất trong gia
27
đình, căn hộ chung cư như bàn làm việc , ghế ngồi, kệ sách…Bên cạnh đó còn phục vụ
cho văn phòng công ty.
Ngoài ra chúng ta cũng có thể tìm thấy sản phẩm độc đáo tại đây mới lạ theo xu
hướng của thế giới như nội thất bằng ống nước hay bằng gỗ ép với tiêu chí bảo vệ môi
trường. Đa số sản phẩm của Home Office được công ty lên mẫu thiết kế và tự sản xuất
với tiêu chí đem lại cho khách hàng có trải nghiệm tiện nghi thoải mái ngay chính ngôi
nhà của mình.
Tối ưu hóa khi dùng di động lên trang web, cho khách hàng thấy được lợi ích của sản
phẩm trên web đăng bán cũng như tạo cảm giác tin tưởng cho khách hàng khi xem sản
phẩm.
Giao diện trang web: Chủ đạo trên nền phông trắng chữ đen, mô tả chi tiết giá thành
từng sản phẩm đầy đủ thông tin cửa hàng chi nhánh các thương hiệu công ty TNHH
TMDV Home Office
Bố cục trang web: Dễ nhìn cho người dùng, logo thương hiệu rõ ràng trong website.
28
Ưu điểm Nhược điểm
+ Giúp giảm bớt chi phí kinh doanh + Việc tư vấn thắc mắc cho khách
vận hành thấp.[3] hàng chậm.
+ Giúp việc giao dịch nhanh cũng như + Chi tiết mô tả sản phẩm chưa đầy
Linh hoạt về thời gian, không gian đủ gây thu hút.
+ Dịch vụ khách hàng chi tiết hướng + Trang web quá nhiều mục chi tiết
dẫn đầy đủ các bước đặt hàng cho gây khó chịu cho khách hàng
khách hàng gặp khó khăn.
+ Thông tin sản phẩm khuyến mãi
+ Cho phép khách hàng đánh giá sản không hiện lên khi người dùng vào
phẩm trang
Nội thất Go Home là thương hiệu thuộc sở hữu công ty Sunvina Việt Nam được
thành lập vào năm 2015 hoạt động trong lĩnh vực kinh doanh và phân phối các sản nội
thất bằng gỗ tạo cảm giác cho khách hàng những trải nghiệm sang trọng, cùng với các
sản phẩm được thiết kế rất tinh tế cầu kì. Trang web của nội thất Go Home có tên miền
là gotrangtri.vn
29
Hình 15.Ảnh trang chủ gỗ trang trí
Tối ưu hóa khi dùng di động lên trang web, cho khách hàng thấy được lợi ích của sản
phẩm trên web đăng bán cũng như tạo cảm giác tin tưởng cho khách hàng khi xem
sản phẩm.
Giao diện trang web: Được thiết kế trên nền phông trắng và lấy màu chủ đạo màu
xanh có tác dụng dịu mắt, mô tả chi tiết giá thành từng sản phẩm đầy đủ thông tin cửa
hàng chi nhánh các thương hiệu công ty TNHH TMDV Home Office
Bố cục trang web: Bố cục tổng thể trang web rất đồng đều, rõ ràng và dễ tìm kiếm
giúp bạn nhanh chóng định hình được sản phẩm mình cần mua nằm ở đâu,.. logo
thương hiệu rõ ràng trong website.
30
+ Cho phép khách hàng đánh giá
sản phẩm, cũng như lượt thích
khách hàng với sản phẩm dó.
Qua gần 25 năm thành lập và phát triển Nội thất Hòa Phát ngày càng lớn mạnh
và khẳng định được vị thế của nhà sản xuất nội thất hàng đầu tại Việt Nam, cùng với
sự nỗ lực không ngừng sáng tạo phát triển các dòng sản phẩm nhằm đáp ứng với nhu
cầu ngày càng cao của khách hàng hiện nay và hạn chế việc nhập khẩu các mặt hàng
nội thất văn phòng. Nội thất Hòa Phát là nhà sản xuất tiên phong trong việc nghiên
cứu và sản xuất trong nước.
31
2.Đặc điểm trang web
Tối ưu hóa khi dùng di động lên trang web, cho khách hàng thấy được lợi ích của sản
phẩm trên web đăng bán cũng như tạo cảm giác tin tưởng cho khách hàng khi xem
sản phẩm.
Giao diện trang web: Được thiết kế trên nền phông trắng và giao diện khá đẹp mắt, mô
tả chi tiết giá thành từng sản phẩm từ chi tiết kiểu dáng, chất liệu, kích thước và màu
sắc.
Bố cục trang web: Bố cục tổng thể trang web dễ sử dụng, logo thương hiệu rõ ràng
trong website.
3.Ưu nhược điểm trang web
+ Tốc độ truy cập vào web nhanh việc tìm kiếm sản phẩm khuyến mãi
gặp khó khăn.
+ Chất lượng hình ảnh sản phẩm
tốt đa dạng về mẫu mã sản phẩm. + Không có thông tin giới thiệu web
cũng như thương hiệu tạo cảm giác
chưa đủ tin tưởng cho khách hàng.
32
CHƯƠNG 4: PHÂN TÍCH WEBSITE BÁN ĐỒ NỘI THẤT
I. MÔ TẢ WEBSITE
1. Lý do chọn đề tài
Hiện nay chúng ta có thể thấy tất cả các mặt hàng đều được đưa lên các trang
thương mại điện tử, các trang mạng xã hội, đối với trang thiết bị nội thất cũng không
ngoại lệ, chúng ta tạo ra một trang chỉ chuyên bán đồ thất sẽ giúp cho người có nhu
cầu dễ dàng lựa chọn sản phẩm mình cần hơn, giúp họ có cái nhìn tổng quát về sản
phẩm, nhất là về giá cả khi tiến hành mua hàng.
Từ nhu cầu đó nhóm chúng em đã nghiên cứu thiết kế đề tài “Xây dựng website
bán đồ nội thất” để hi vọng rằng có thể phần nào giúp cho mỗi cửa hàng bán hàng
nhanh hơn, kiểm soát được hàng hóa nhập xuất trong ngày cũng như việc cập nhật
doanh thu, chi phí để có được những điều chỉnh cần thiết, hợp lý nhất cho mỗi mặt
hàng, mỗi thời điểm.
❖ Admin:
✔ Đăng nhập, đăng ký, quên mật khẩu
❖ Seller:
✔ Đăng nhập, đăng ký, quên mật khẩu
✔ Đăng ký thông tin seller
✔ Đăng ký bán sản phẩm, quản lý sản phẩm
✔ Quản lý thông tin order
✔ Quản lý thông tin giảm giá
❖ Client:
✔ Đăng nhập, đăng ký quên mật khẩu
✔ Tìm kiếm sản phẩm theo tên sản phẩm
✔ Xem sản phẩm
✔ Chọn sản phẩm theo danh mục
✔ Đánh giá sản phẩm khi đã mua hàng
✔ List các sản phẩm đã xem
✔ Thêm sản phẩm vào giỏ hàng
33
✔ Chọn các phương thức thanh toán
✔ Thanh toán Momo
✔ Chat với nhà cung cấp
II. CÁC THÀNH PHẦN CẦN CÓ ĐỂ WEBSITE CÓ THỂ HOẠT ĐỘNG ỔN
ĐỊNH
1.Tên miền
Tên miền còn được gọi là domain là một đường dẫn tới trang web của bạn hay còn
được nói cách khác là địa chỉ website.
Là duy nhất và được cấp phát khi hoàn tất đăng ký. Khi đăng ký tên miền sẽ phải trả
phí và chi phí duy trì sử dụng theo năm.
Tên miền quốc gia thường được đánh giá cao hơn các tên miền quốc tế, trừ trường hợp
doanh nghiệp của bạn hoạt động trên phạm vi toàn cầu. Tuy nhiên, nếu có điều kiện
bạn nên bảo vệ thương hiệu bằng việc mua hết các tên miền có đuôi phổ biến theo thứ
tự ưu tiên sau: tencongty .vn / .com.vn / .com / .net / .info / …
2.Thiết kế Website
Khi giới thiệu về doanh nghiệp của mình với đối tác, việc sở hữu website thể hiện sự
chuyên nghiệp, năng động. Doanh nghiệp sẽ được đánh giá cao, tạo sự tin tưởng đặc
biệt với đối tác. Nếu như văn phòng công ty khang trang chứng tỏ doanh nghiệp chất
lượng thì vai trò website cực kì quan trọng càng chỉnh chu, bắt mắt chứng tỏ doanh
nghiệp chuyên nghiệp.
Website được coi là bộ mặt của doanh nghiệp nếu doanh nghiệp nào có website
chuyên nghiệp hơn sẽ tạo được ấn tượng tốt hơn, thu hút khách hàng hơn và có nhiều
cơ hội bán hàng hơn.
34
✔ Các yếu tố về giao diện: Giao diện bắt mắt, tông màu phù hợp tạo ấn tượng cho
người xem
✔ Website phù hợp với xu hướng thiết kế hiện tại và thói quen người dùng chúng
ta hướng tới
✔ Yếu tố nhận diện thương hiệu trên web: logo, tên miền, slogan, font chữ
3.Hosting
Hosting còn được gọi là web hosting đây là không gian lưu trữ được chia nhỏ trên máy
chủ, máy chủ này cung cấp dịch Web và luôn kết nối internet để trang web hoạt động,
duy trì và cho phép mọi người truy cập website.
Website gồm: trang khách hàng, trang nhà cung cấp (seller), trang admin
Trang khách hàng: bao gồm trang chủ có trang sản phẩm trang giỏ hàng trang mua
hàng, trang thông tin mua hàng.
Trang seller: dành cho nhà cung cấp muốn bán hàng tại cửa hàng gồm trang phiếu
giảm giá, trang thông tin của nhà cung cấp, trang sản phẩm đăng bán, trang đơn hàng,
trang thống kê.
Trang admin: trang quản lý tài khoản, quản lý danh sách seller, trang quản lý danh
mục hiện có trên trang web, trang quản lý lợi nhuận thu được từ seller.
35
III. USE CASE HỆ THỐNG
36
2. Use case seller
37
3. Use case client
38
IV. Mô Tả Use Case
Tên use case: Xác thực Số ID: 01 Mức quan trọng: Cao
Actor chính: Admin, seller, client Loại use case: Thiết yếu, cần thiết.
Mô tả tóm tắt: Admin phải đăng nhập để tạo đơn hàng, duyệt sản phẩm, seller
đăng nhập vào hệ thống để đăng ký bán hàng. Đối với khách hàng phải đăng nhập
khi mua hàng để hệ thống lưu thông tin
Quy trình xử lý:
● Nếu đăng nhập thất bại hệ thống yêu cầu actor cung cấp lại thông tin đăng
nhập gồm tên đăng nhập và mật khẩu.
● Nhập tên danh mục, thêm danh mục con nếu cần
● Submit danh mục lên hệ thống
39
● Hệ thống lưu lại danh mục
● Trả về danh sách danh mục cho người dùng
Actor chính: Admin Loại use case: Thiết yếu, cần thiết.
40
Mô tả tóm tắt: Sau khi đăng nhập thành công vào hệ thống để quản lý danh mục
sản phẩm, những danh mục admin thêm vào thì danh mục sản phẩm đó seller mới
được phép đăng bán
Quy trình xử lý:
● Hệ thống yêu cầu các thông tin để đăng nhập bao gồm tên đăng nhập và mật
khẩu đăng nhập.
● Sau khi đã có tài khoản và Actor nhập đầy đủ thông tin click vào nút “Đăng
nhập”.
● Hệ thống sẽ kiểm tra thông tin đăng nhập và thông báo thành công hoặc thất
bại cho actor.
Các xử lý ngoại lệ:
● Nếu đăng nhập thất bại hệ thống yêu cầu actor cung cấp lại thông tin đăng
nhập gồm tên đăng nhập và mật khẩu.
41
● Submit lên hệ thống
● Hệ thống thay đổi trạng thái sang đã duyệt hoặc đã hủy
● Trả về danh sách sản phẩm cho admin
● Thông báo với seller
● Không có ngoại lệ
● Đánh giá được xác nhận sẽ hiển thị trên trang chủ
Các xử lý ngoại lệ:
Actor chính: Khách hàng Loại use case: Thiết yếu, cần thiết.
Mô tả tóm tắt: Seller tạo sản phẩm cho cửa hàng mình
42
Quy trình xử lý:
● Hệ thống lưu lại sản phẩm với trạng thái chưa được duyệt
Sản phẩm sẽ không được duyệt nếu admin thấy không hợp lệ
Actor chính: Khách hàng Loại use case: Thiết yếu, cần thiết.
Mô tả tóm tắt: Khi khách mau hàng và yêu cầu thanh toán
Quy trình xử lý:
43
Các xử lý ngoại lệ:
● Nếu không thông tin người nhận không hợp lệ thì không gửi được đơn
hàng
V. SƠ ĐỒ ACTIVITY
1.Đăng nhập
44
2.Giỏ hàng
45
4.Đánh giá sản phẩm
46
5. Thêm danh mục
47
6. Cập nhật danh mục
48
7. Đặt hàng
49
VI. THIẾT KẾ CƠ SỞ DỮ LIỆU
1. Sơ đồ ERD
2.Các collection
❖ Admin
export class Admin extends mongoose.Document {
@Prop()
@IsNotEmpty()
name: string;
@Prop({ enum: ROLE })
role: ROLE;
@Prop()
@IsEmail()
email: string;
@Prop()
@IsNotEmpty()
50
password: string;
verifyPassword: (password: string) => Promise<boolean>;
}
export class Brand extends mongoose.Document {
@Prop({ unique: true })
name: string;
}
Collection chỉ có name là tên của thương hiệu sản phẩm và nó duy nhất
“unique:true”.
❖ Category ( danh mục sản phẩm )
export class Category extends mongoose.Document {
@Prop({ unique: true })
name: string;
@Prop({ type: mongoose.Schema.Types.Array, default: [] })
properties: [];
@Prop({
type: mongoose.Schema.Types.ObjectId,
ref: 'Category',
51
default: null,
})
parent?: Record<string, any>;
}
export class Origin extends mongoose.Document {
@Prop({ unique: true })
name: string;
}
Collection chỉ gồm tên của của nguồn gốc có thuộc tính unique
export class Product extends mongoose.Document {
@Prop({ index: true })
@ApiProperty()
@IsNotEmpty()
name: string;
@Prop({ required: false })
@ApiPropertyOptional()
@IsOptional()
video?: string;
@Prop()
@ApiProperty()
52
@IsNotEmpty()
description: string;
@Prop()
@ApiProperty()
@IsNumber()
price: number;
@Prop()
@ApiProperty()
@IsNumber()
market_price: number;
@Prop({ type: mongoose.Schema.Types.Array, required: false })
@ApiPropertyOptional()
@IsOptional()
images: [Image];
@Prop({ type: mongoose.Schema.Types.Array, required: false })
@ApiPropertyOptional()
@IsOptional()
properties: [];
@Prop({ type: [{ type: mongoose.Schema.Types.ObjectId, ref: '
Category' }] })
@ApiProperty({ type: () => [Category] })
@IsNotEmpty({ each: true })
@IsObjectId({ message: 'categories is invalid [ObjectId]', ea
ch: true })
categories: Category[];
53
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'Origin' }
)
@ApiProperty({ type: () => Origin })
@IsNotEmpty()
@IsObjectId({ message: 'Origin is invalid ObjectId' })
origin: Origin;
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'Brand' })
@ApiProperty({ type: () => Brand })
@IsNotEmpty()
@IsObjectId({ message: 'Brand is invalid ObjectId' })
brand: Brand;
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'Seller' }
)
seller: Seller | string;
@Prop({ default: 1 })
@ApiProperty()
@IsNumber()
amount: number;
@Prop({ default: 0 })
sold_amount: number;
@Prop({ enum: PRODUCT_STATUS, default: PRODUCT_STATUS.PENDING
})
status: PRODUCT_STATUS;
}
54
Collection bao gồm:
✔ name: tên sản phẩm kiểu string
✔ video: video mô tả sản phẩm có thể có hoặc không được lưu dưới dạng đường
dẫn
✔ description: mô tả của sản phẩm kiểu string
✔ price: giá gốc sản phẩm kiểu number
✔ market_price: giá bán ra kiểu number
✔ images: hình ảnh lưu dưới dạng array các hình mà ở đó các hình được lưu dạng
đường dẫn ảnh
✔ properties: các thuộc tính của sản phẩm kiểu array tham chiếu đến collection
category
✔ categories: sản phẩm thuộc danh mục nào nó có thể thuộc nhiều danh mục
✔ origin: nguồn gốc của sản phẩm tham chiếu đến collection origin
✔ brand: thương hiệu nó tham chiếu đến collection brand
✔ amount: số lượng còn lại kiểu number
✔ sold_amout: số lượng bán ra
✔ status: trạng thái của sản phẩm
❖ Seller
export class Seller extends mongoose.Document {
@Prop()
owner_name: string;
@Prop({ unique: true })
email: string;
@Prop()
password: string;
@Prop({ enum: ['pending', 'verified'], default: 'pending' })
status: 'pending' | 'verified';
@Prop({ default: 'odf' })
pick_up_type: string;
55
@Prop()
password_reset_token: string;
@Prop({ type: mongoose.Schema.Types.Array })
contactInfos: [ContactInfo];
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'Category' }
)
category: Category;
verifyPassword: (password: string) => Promise<boolean>;
}
❖
Collection bao gồm:
✔ ower_name: tên người bán
✔ email, password: tương tự như admin
✔ status: trạng thái đã được admin xác thực hoặc đang chờ sử lý khi đưa sản phẩm
lên
✔ contact_info: thông tin liên hệ của người bán
✔ category: danh mục sản phẩm mà seller bán
❖ Store
export class Store extends mongoose.Document {
@Prop({ unique: true })
@IsNotEmpty()
@IsOptional()
store_name: string;
@Prop({ unique: true, required: false })
url: string;
56
@Prop()
@IsNotEmpty()
@IsOptional()
representative_name: string;
@Prop()
@IsNotEmpty()
@IsOptional()
representative_email: string;
@Prop({ type: [contactSchema], default: [] })
contacts: [Contact];
@Prop({ type: mongoose.Schema.Types.ObjectId, ref: 'Seller' }
)
seller: string | Seller;
}
❖ Dữ liệu người dùng: sẽ được tạo khi người dùng vào các trang như client, admin,
seller thực hiện đăng ký tài khoản, tạo hồ sơ cá nhân.
❖ Dữ liệu về danh mục sản phẩm: được quản lý tại trang admin, do admin thêm mới
vào
❖ Dữ liệu sản phẩm: sản phẩm của các cửa hàng sẽ được các các seller cung cấp khi
muốn bán sản phẩm và được qua kiểm duyệt của admin.
57
❖ Dữ liệu về thanh toán đơn, thông tin trao đổi của khách hàng: chúng ta sẽ nhận
được khi người dùng mua hàng, trao đổi đánh giá trên website.
❖ Dữ liệu thống kê: sẽ được thống kê ở trang seller dựa trên các đơn hàng và doanh
thu đạt được. Dữ liệu này ta không lưu vào database vì có thẻ tính được nhờ vào
các đơn hàng.
VII. MÔ TẢ CẤU TRÚC CHƯƠNG TRÌNH VÀ CÁC TRANG WEB
Chương trình gồm có 3 thành phần: Seller Portal (cho người dùng bán hàng), Shop
(giao diện bán hàng), Admin(cho admin) với các API và giao diện tương ứng. Mỗi
API dùng chung 1 cơ sở dữ liệu là MongoDB là nơi để truy vấn, lưu trữ dự liệu. Ngoài
ra API còn kết nối tới MailGun để thực hiện việc gửi email đến cho người dùng.
58
✔ Đăng ký, đăng nhập: yêu cầu người dùng phải có tài khoản admin mới được
vào hệ thống đăng nhập sau khi đăng nhập hoặc đăng ký.
✔ Trang danh mục : là trang mà admin được phép thêm danh mục vào thực
hiện thao tác với nó
✔ Trang sản phẩm: admin được phép hủy sản phẩm hoặc duyệt sản phẩm cho
seller.
❖ Trang seller: mã giảm giá, sản phẩm, quản lý đơn hàng, quản lý profile seller
✔ Trang mã giảm giá: để cho seller tạo ra các phiếu discount cho sản phẩm
của mình.
✔ Trang sản phẩm: ở đây lại chia ra các trang con cho mục đích quản lý sản
phẩm, áp dụng giảm giá áp dụng, thông tin các nhà cung cấp sản phẩm.
✔ Trang quản lý profile: các thao tác liên quan đến quản lý thông tin seller
thông tin cửa hàng.
✔ Trang quản lý đơn hàng: giúp seller nắm bắt được các đơn hàng và quản lý
giao hàng một cách tốt nhất.
❖ Trang client: là trang giao diện cho khách hàng của website chia ra rất nhiều trang
tiện ích khác nhau.
✔ Trang chủ: chứa thông tin shop dưới header, các tiêu đề, thông tin quản cáo,
một số sản phẩm được trưng bày cho người dùng, hiển thị giỏ hàng, danh
sách các danh mục sản phẩm.
✔ Trang sản phẩm liệt kê các sản phẩm các nút tìm kiếm lọc sản phẩm, một số
thông tin sản phẩm.
✔ Trang chi tiết sản phẩm: thông tin cụ thể của sản phẩm kèm mô tả, các sản
phẩm liên quan và các thông tin đánh giá từ khách hàng.
✔ Trang tìm kiếm: giống trang sản phẩm nhưng sẽ liệt kê số ít sản phẩm được
người dùng yêu cầu.
✔ Trang giỏ hàng: thông tin các sản phẩm trong giỏ hàng, về giá về số lượng.
✔ Trang đơn hàng: gồm 2 trang một trang để xác nhập thông tin người mua,
một trang để xác nhận thanh toán và gửi đơn hàng.
✔ Trang những sản phẩm đã mua: sau khi nhận được hàng thì khách hàng sẽ
có trang lịch sử sản phẩm đã mua và họ được đánh giá về sản phẩm.
✔ Ngoải ra có một số trang khác: thông tin người dùng,...
59
60
PHẦN 3: KẾT LUẬN
CHƯƠNG 1: KẾT QUẢ ĐẠT ĐƯỢC
I. CÔNG NGHỆ
MongoDB: tìm hiểu thành công về NoSql, tốc độ truy vấn nhanh dễ dàng giao
tiếp với server có sẵn các phương thức để truy vấn data.
NodeJS: Xây dựng thành công các API của một trang bán hàng với framework
NestJS, xử lý thành công các chức năng, yêu cầu từ giao diện.
Express: Tìm hiểu các chức năng của express trong NodeJS để giúp server chạy
tốt hơn code tối ưu hơn hẳn.
ReactJS: Xây dựng thành công giao diện bằng việc style các css, các thư viện từ
bên ngoài (không dùng template có sẵn), chia giao diện rõ ràng cho từng chức
năng, chuyển trang, xử lý gọi API truy vấn data, xây dựng các chức năng cần
có của một trang web
II. Chức năng ứng dụng
Thông báo cho seller khi người dùng mua sản phẩm và khi admin duyệt sản phẩm,
đối với khách hàng cũng sẽ nhận được thông báo khi đơn hàng được xác nhận hay
giao hàng xong.
Hiển thị thông tin của shop cho khách hàng biết
62
Hình 30.Thông tin seller trên trang chủ
Thanh toán bằng momo hoặc trực tiếp và cho phép áp dụng mã giảm giá
63
Hình 31.Seller trả lời đánh giá
64
CHƯƠNG 2: ĐÁNH GIÁ ƯU NHƯỢC ĐIỂM
Ưu điểm: tìm hiểu tốt công nghệ, có tham khảo các trang thương mại điện tử lớn, xây
dựng được website với các chức năng cơ bản, phù hợp với thực tế có thể đưa vào sử
dụng như lọc tìm kiếm sản phẩm một cách nhanh chóng, có thanh toán qua ví điện tử,
thống kê doanh thu cho người bán, thông báo qua mail một cách chính xác
Nhược điểm: giao diện trang chủ chưa được đẹp, thiếu tính phí ship hàng, còn thiếu
xót một số tín năng như hướng dẫn mua bán hàng, hỏi đáp về sản phẩm liên hệ với nhà
bán
65
CHƯƠNG 3: HƯỚNG DẪN CHẠY ỨNG DỤNG
Bước 1: Vào link tải node https://nodejs.org/en/ về lưu ý tải bản recommended không
tải bản mới nhất.
Bước 2: Cài yarn ở global npm install --global yarn
Bước 3: Cài MongoDB trên link https://docs.mongodb.com/manual/installation/ để
cài MongoDB version 4, cài thêm tool MongoDB Compass để sử dụng Mongo trên
link https://www.mongodb.com/try/download/compass
B4: Tải data từ thư mục database, sau đó tạo mới database với tên doan2 sau đó tạo
các collection với tên như dưới hình (branchs, categories, orderitems, orders, origins,
sellers, store, users) sau đó lấy data từ thư mục database import vào hoặc có thể dùng
theo cách chạy lệnh trên video demo.
66
Hình 32.Giao diện lưu trữ data trên mongo compass
Bước 5: Vô trong các thư mục project tạo file có tên .env
● backend-doan: tạo thư mục tên .env rồi copy paste đoạn code dưới vào lưu lại
JWT_SELLER=seller
JWT_ADMIN=admin
JWT_USER=user
USER_FORGOT_PASSWORD_SECRET=secret_forgot
ADMIN_SECRET=admin_secret
FORGOT_PASSWORD_SECRET=forgot_password_secret
CLOUDINARY_NAME=phamtrung
CLOUDINARY_KEY=231235934529634
CLOUDINARY_SECRET=ugJFwe6vMI1huxPIZTznSm6aadE
DB_URL=mongodb://localhost/doan2
MAILGUN_KEY=f22c08854a1637490e17f1d23995c07d-f7d0b107-860e0e36
SELLER_PORTAL=http://localhost:3003
SHOP=http://localhost:3004
PAYMENT_BACK_URL=https://6d285d7f4573.ngrok.io/api/orders/checkout/m
omo
67
Hình 33.File .env trong visual studio code
Bước 6: Mở source code vào thư mục có tên backend-doan sau đó mở 3 cửa sổ
terminal chạy như hình (đối với window cũng mở terminal làm tương tự) để chạy 3
trang: trang chủ, admin, seller hoặc có thể làm theo video demo bằng cách build
docker-compose
68
Hình 34. Terminal chạy backend
Bước 7: Mở các thư mục frontend seller-portal, admin-fe, doan sau đó cũng open
terminal ứng với từng thư mục này, gõ tất cả các cửa sổ terminal đều gõ lệnh yarn sau
đó enter để cài hết modules.
Bước 8: Khi cài xong modules thì ứng với các cửa sổ terminal chạy lệnh yarn dev ->
rồi sau đó ctrl + click chuột vào đường link để chạy mở trang trên web ví dụ như hình
đường link là http://localhost:3004
69
(Lưu ý: nếu thực hiện không thành công xin vui lòng xem lại video hướng dẫn demo)
70