Professional Documents
Culture Documents
Boy IEBao Cao
Boy IEBao Cao
Boy IEBao Cao
Tạ Việt Phương
1
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
MỤC LỤC
2
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
3
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
5
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
6
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 22. Bảng mô tả các danh sách và biến cố trên màn hình ................................ 147
Bảng 6. 23. Bảng mô tả các đối tượng trên màn hình user .......................................... 148
Bảng 6. 24. Bảng mô tả các danh sách và biến cố trên màn hình user ........................ 148
Bảng 6. 25. Bảng mô tả các đối tượng trên màn hình Quản lý .................................... 150
Bảng 6. 26. Bảng mô tả các đối tượng trên màn hình quản lí ...................................... 151
Bảng 6. 27. Bảng mô tả các đối tượng trên màn hình quản lí xóa khách hàng ........... 152
Bảng 6. 28. Bảng mô tả các danh sách và biến cố trên màn hình xóa khách hàng ...... 152
Bảng 6. 29. Bảng mô tả các đối tượng trên màn hình cập nhật khách hàng ................ 153
Bảng 6. 30. Bảng mô tả các đối tượng trên màn hình thêm khách hàng ..................... 156
Bảng 6. 31. Bảng mô tả các danh sách và biến cố trên màn hình thêm khách hàng ... 156
Bảng 6. 32. Bảng mô tả các đối tượng trên màn hình xóa ô tô .................................... 158
Bảng 6. 33. Bảng mô tả các danh sách và biến cố trên màn hình xóa ô tô .................. 158
Bảng 6. 34. Bảng mô tả các đối tượng trên màn hình cập nhật dữ liệu xe .................. 160
Bảng 6. 35. Bảng mô tả các danh sách và biến cố trên màn hình cập nhật dữ liệu xe 160
Bảng 6. 36. Bảng mô tả các đối tượng trên màn hình chi tiết xe ................................. 161
Bảng 6. 37. Bảng mô tả các danh sách và biến cố trên màn hình chi tiết xe .............. 161
Bảng 6. 38. Bảng mô tả các đối tượng trên màn hình thêm mới ô tô .......................... 163
Bảng 6. 39. Bảng mô tả các danh sách và biến cố trên màn hình thêm mới ô tô ........ 163
Bảng 6. 40. Bảng mô tả các đối tượng trên màn hình quản lý hóa đơn ....................... 165
Bảng 6. 41. Bảng mô tả các danh sách và biến cố trên màn hình quản lý hóa đơn ..... 166
Bảng 6. 42. Bảng mô tả các đối tượng trên màn hình tạo hóa đơn .............................. 167
Bảng 6. 43. Bảng mô tả các đối tượng trên màn hình quản lý form ............................ 167
Bảng 6. 44. Bảng mô tả các danh sách các biến cố trên màn hình quản lý form ........ 168
Bảng 6. 45. Bảng mô tả các đối tượng trên màn hình quản lý tin tức ......................... 169
Bảng 6. 46. Bảng mô tả các đối tượng trên màn hình xóa tin tức................................ 170
Bảng 6. 47. Bảng mô tả các danh sách và biến cố trên màn hình xóa tin tức .............. 170
Bảng 6. 48. Bảng mô tả các đối tượng trên màn hình sửa tin tức ................................ 172
7
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 49. Bảng mô tả các đối tượng của màn hình thêm tin tức .............................. 173
Bảng 6. 50. Bảng mô tả các đối tượng trên màn hình quản lý nhân viên .................... 174
Bảng 6. 51. Bảng mô tả các biến cố màn hình quản lý hóa đơn .................................. 175
Bảng 6. 52. Bảng mô tả các đối tượng trên màn hình thêm nhân viên ........................ 177
Bảng 6. 53. Bảng mô tả các đối tượng trên màn hình chi tiết nhân viên ..................... 177
Bảng 6. 54. Bảng mô tả các danh sách và biến cố trên màn hình chi tiết nhân viên ... 178
Bảng 6. 55. Bảng mô tả các đối tượng trên màn hình xóa nhân viên .......................... 178
Bảng 6. 56. Bảng mô tả các danh sách và biến cố trên màn hình xóa nhân viên ........ 179
8
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
9
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
10
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
11
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
12
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 6. 37. Màn hình xem chi tiết thông tin nhân viên ............................................... 177
Hình 6. 38. Màn hình xóa nhân viên ............................................................................ 178
13
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
• LẬP TRÌNH VÀ KIỂM THỬ: các phương pháp lập trình và công nghệ được
sử dụng cho đồ án. Các bước kiểm thử là điều không thể thiếu trong quá trình
thực hiên đồ án.
• GIAO DIỆN VÀ SO SÁNH: lập được sơ đồ liên kết các màn hình và chi tiết các
màn hình (đối tượng, sự kiện có trong màn hình).
• ƯU NHƯỢC ĐIỂM VÀ ĐỊNH HƯỚNG PHÁT TRIỂN: các thành viên trong
nhóm nói riêng và cả nhóm đút kết những ưu nhược điểm của đồ án đồng thời
đưa ra những hướng phát triển trong tương lai để phù hợp với yêu cầu thực tế.
14
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
CHƯƠNG 2: QUẢN LÝ DỰ ÁN
Theo báo cáo thị trường ô tô trong nước cuối năm 2021, số lượng ô tô tiêu thụ ở trong
nước tăng 25% so với năm 2020. Sau khi đại dịch Covid-19 được kiểm soát, thị trường
ô tô ở Việt Nam được giới chuyên gia đánh giá sẽ có nhiều điểm sáng và tăng trưởng
mạnh. Nhu cầu sử dụng ô tô ở nước ta ngày càng tăng dẫn đến các nhà kinh doanh, các
đại lý bán lẻ đang dần đầu tư vào lĩnh vực này. Các showroom bán ô tô ở nước ta xuất
hiện càng nhiều. Điều đó kéo theo cần phải có một phần mềm để quản lý là điều rất quan
trọng và cần thiết. Qua việc tìm hiểu các báo cáo về thị trường ô tô và nhu cầu của các
đại lý bán lẻ, nhóm chúng em quyết định chọn đề tài “Phần mềm quản lý Showroom ô
tô” là đồ án của nhóm.
https://www.vietinbank.vn/investmentbanking/resources/reports/042019-CTS-
BCnganhoto.pdf
https://consosukien.vn/ky-vong-tu-thi-truong-o-to-nam-2022.htm
Hiểu được nhu cầu quản lý showroom của các nhà đại lý bán lẻ, nhóm chúng em xây
dựng “Phần mềm quản lý Showroom ô tô” với mục tiêu:
15
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
+ Cung cấp phần mềm quản lý hiệu quả, giúp showroom tiết kiệm được nhiều thời gian
trong việc quản lý ô tô, nhân viên, khách hàng. Hỗ trợ người dùng truy cập để tìm hiểu,
có được cái nhìn trực quan nhất về các loại ô tô và các hoạt động xung quanh việc mua
bán của showroom.
+ Giúp cho showroom có được tầm nhìn định hướng phát triển trong tương lai trong việc
mua bán ô tô và phục vụ khách hàng thông qua các đánh giá và phản hồi ý kiến.
+ Về cá nhân nhóm chúng em, việc xây dựng phần mềm quản lý Showroom ô tô giúp
nâng cao khả năng phối hợp làm việc nhóm, hiểu rõ hơn về cách xây dựng và quản lý
một dự án. Đồng thời, việc tìm hiểu framework ASP.Net nói riêng, các công nghệ của
microsoft nói chung giúp cho chúng em có thêm kiến thức và khả năng thực hành với
công nghệ mới, là hành trang bước tiếp sau này.
Địa chỉ: Phường 2, quận Tân Bình, Thành phố Hồ Chí Minh.
▪ Giám đốc
▪ Phòng nhân sự
16
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
▪ Phòng kế hoạch-nghiệp vụ
Trước tình hình nhu cầu sử dụng ôtô ngày một nhiều, showroom oto liên tục được
khách hàng ghé thăm quan và mua oto. Tuy nhiên do diện tích trưng bày nhỏ nên chỉ
trưng bày được một vài mẫu xe mà thôi. Còn nhiều mẫu xe mà khách hàng hỏi đến hiện
không được trưng bày. Nó làm cho nhiều khách hàng không hài lòng và không quay lại
showroom.
Do đó, Giám đốc showroom đã mở cuộc họp nhằm để tạo ra một trang web nhằm
giới thiệu các mẫu xe đang bán và các mẫu mới sắp ra mắt. Trang web sẽ lưu trữ thông
tin xe, thông tin khách hàng, các đơn đặt hàng, hỗ trợ khách hàng, … Khách hàng có thể
lên trang web để xem sản phẩm về mẫu mã, giá thành, dịch vụ bảo dưỡng và sửa chữa.
Khách hàng có thể đặt mua online hoặc đặt lịch hẹn đến showroom xem và mua xe.
Khách hàng có thể thanh toán qua nhiều hình thức như chuyển khoản hay tiền mặt trực
tiếp ở showroom. Khi khách hàng mua xe online thông tin khách hàng sẽ được chuyển
đến các phòng ban để xử lý.
*Phần cứng
Tại Showroom oto có khoảng 20 thiết bị máy tính cá nhân được phân bố đều ở các
phòng ban và các khoa, đảm bảo các tổ nhân viên ở các khoa, các phòng ban, mỗi tổ đều
17
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
có từ 5-7 thiết bị máy tính hoạt động tốt, đủ tiêu chuẩn để hoạt động phục vụ trong công
việc.
Ngoài ra, Showroom oto còn có 01 máy chủ cấu hình mạnh, và 02 máy chủ dự phòng
để phòng ngừa khi có sự cố.
Các máy tính các ở Trung tâm Y tế quận Tân Phú đều được nối mạng LAN và được
kết nối internet thông qua đường truyền cáp quang tốc độ cao, đảm bảo được các yêu
cầu trong công việc, có tính ổn định và tốc độ truy xuất cao.
Các máy móc, thiết bị ôtô chuyên dùng được kết nối với máy tính, đảm bảo còn hoạt
động tốt, đủ số lượng tại các phòng ban, phục vụ tốt trong việc
tại showroom.
Các khách hàng mua oto đều sử dụng các thiết bị như điện thoại thông minh hoặc có
máy tính cá nhân và đều có thể kết nối Internet để truy xuất lấy thông tin, dữ liệu và mua
oto từ showroom.
*Phần mềm
Tất cả máy tính cá nhân ở Showroom oto đều sử dụng hệ điều hành Windows XP trở
lên, và được cài đầy đủ các phần mềm văn phòng, phần mềm nghiệp vụ oto, …
Các bản phần mềm bên phía showroom đều được cung cấp chính hãng, có bản quyền
đảm bảo được tính bảo mật, ổn định và truy xuất nhanh chóng.
Khách hàng sử dụng máy tính cá nhân từ hệ điều hành Windows XP trở lên, các thiết
bị thông minh như điện thoại thì đều sử dụng các hệ điều hành phổ biến như Android và
IOS.
18
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
*Con người
Các nhân viên đều có thể sử dụng máy tính và các thiết bị liên quan, có trình độ tin học
văn phòng căn bản, sử dụng thành thạo các phầm mềm liên quan trong nghiệp vụ, sử
dụng được internet để đồng bộ dữ liệu trong nội bộ.
Có các chuyên viên hỗ trợ, phụ trách các mảng liên quan đến máy tính và xử lý sự cố,
chuyên viên quản lý, phụ trách các máy chủ.
Có các tổ phụ trách kiểm tra bảo dưỡng các thiết bị máy tính, hệ thống mạng định kỳ, để
đảm bảo tính ổn định của trang web.
Thu thập thông tin chi tiết, dữ liệu về các loại ô tô.
Lập kế hoạch
Tìm hiểu những chức năng cần có, vấn đề cần giải quyết của showroom.
Giao diện của website phải có bố cục rõ ràng, thân thiện với người sử dụng.
Màu sắc phải hài hòa, phù hợp với chủ đề của website.
Viết mã nguồn
19
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Đánh giá độ hiệu quả của website dựa trên phản hồi và ý kiến người dùng.
Bảo trì liên tục để website được hoàn thiện hơn, vận hành tốt, hoạt động ổn
định, tốc độ tải nhanh, tối ưu SEO hơn sau khi thiết kế web ban đầu.
Website được xây dựng phải đáp ứng những nhu cầu cần thiết của showroom.
Giao diện website: bố cục rõ ràng, giao diện dễ sử dụng, dễ tương tác, màu sắc hài hòa,
phù hợp với chủ đề “Quản lý showroom ô tô”.
Hình ảnh – thông tin trực quan: cung cấp hình ảnh và thông tin về ô tô là những chức
năng thiết yếu của website quản lý showroom ô tô. Để thu hút được khách hàng và lượt
truy cập, hình ảnh và thông tin trực quan trên trang phải rõ ràng, sắc nét.
Hình ảnh trên website: Hình ảnh rõ nét, ấn tượng với người xem nhằm tăng sự thu hút
và độc đáo cho trang web.
Thông tin trực quan: mô tả chi tiết các thông tin của ô tô, trình bày dễ đọc.
20
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Chức năng tìm kiếm: hỗ trợ tra cứu nhanh các thông tin về ô tô, các thông tin liên quan
đến ô tô, giúp người dùng tiết kiệm thời gian trong việc tìm kiếm.
Xây dựng một website quản lý showroom ô tô tiện lợi, hiệu quả với chi phí hợp lý.
Nâng cao hoạt động của showroom thông qua việc tin học hóa bộ phận quản lý và tiết
kiệm được chi phí.
21
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
đại lý bán lẻ, nhóm chúng em quyết định chọn đề tài “Phần mềm quản lý Showroom ô
tô” là đồ án của nhóm.
• Cung cấp phần mềm quản lý hiệu quả, giúp showroom tiết kiệm được nhiều thời
gian trong việc quản lý ô tô, nhân viên, khách hàng.
• Hỗ trợ người dùng truy cập để tìm hiểu, có được cái nhìn trực quan nhất về các
loại ô tô và các hoạt động xung quanh việc mua bán của showroom.
• Giúp cho showroom có được tầm nhìn định hướng phát triển trong tương lai trong
việc mua bán ô tô và phục vụ khách hàng thông qua các đánh giá và phản hồi ý
kiến.
Về cá nhân nhóm chúng em, việc xây dựng phần mềm quản lý Showroom ô tô giúp nâng
cao khả năng phối hợp làm việc nhóm, hiểu rõ hơn về cách xây dựng và quản lý một dự
án. Đồng thời, việc tìm hiểu framework ASP.Net nói riêng, các công nghệ của microsoft
nói chung giúp cho chúng em có thêm kiến thức và khả năng thực hành với công nghệ
mới, là hành trang bước tiếp sau này.
2.2.4.3. Mô tả dự án
• Tên dự án: Quản lý Showroom ô tô.
22
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Đánh giá và cải tiến các giai đoạn thực hiện 12/11/2022 12/11/2022
23
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Mốc thời gian Các công việc đã hoàn thành xong Các công việc dự định sẽ
thực hiện tiếp theo
Lên kế hoạch cho đồ án, phân tích nội Thiết kế giao diện bằng
dung cần làm những gì cho đồ án. figma.
20/9/2022 Thống nhất sử dụng công cụ để quản Hoàn thành các nội dung
lí đồ án. sau:
Phân chi task cho các thành viên cho Lí do hình thành đồ án,
giai đoạn này. mục tiêu đồ án.
30/9/2022 Thiết kế giao diện bằng figma. Xác định đối tượng, từng
Lí do hình thành đồ án, mục tiêu đồ chức năng của đối tượng.
24
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
20/10/2022 Xác định đối tượng, từng chức năng Tiếp tục xây dựng
của đối tượng. database.
Xây đựng đặc tả Use-case và Active Bắt đầu code giao diện
diagram. FrontEnd.
Hoàn thành 80% giao diện FrontEnd Tìm hiểu Web API và học
ASP. NET.
26/11/2022 Hoàn thành 100% việc code giao diện Bắt đầu xây dựng API
FrontEnd. cho ứng dụng web.
14//12/2022 Hoàn thành việc xây dựng API cho Soạn báo cáo,
ứng dụng. và làm file thuyết trình.
21/12/2022 Hoàn thành file báo cáo. Báo cáo và kết thúc môn
25
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
2.2.7. Phân công nhiệm vụ, đánh giá mức độ hoàn thành
Họ và tên MSSV Phân công Đánh giá
Frontend: Thực hiện làm xây
dựng footer, quản lý khách hàng,
detail product.
Backend: Viết api khách hàng Hoàn thành tốt và
Đặng Bá Lĩnh 20521528
(get, put, post, delete). đúng tiến độ
Làm báo cáo chương 1, chương 2,
chương 6.
Thuyết trình báo cáo đồ án.
FrontEnd: Setup project, xây
dựng giao diện và xử lý các chức
năng trang trang chủ, trang quản
lý ô tô, quản lý hóa đơn.
Nguyễn Thành Hoàn thành tốt và
20522074 BackEnd: Xây dựng các chức
Trung đúng tiến độ
năng về quản lý ô tô, quản lý hóa
đơn.
File báo cáo: Làm báo cáo
chương 1, chương 2, chương 7.
FrontEnd: Xây dựng giao diện và
xử lí logic trang Product, Header
trang quản lí Nhân Viên.
Hoàn thành tốt và
Đoàn Quốc Bảo 20521097
BackEnd: Xây dựng chức năng đúng tiến độ
quản lí nhân viên, thêm xóa sửa
nhân viên và quản lí news.
26
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
27
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
28
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
MS Team là công cụ nhóm dùng trong quá trình thực hiện đồ án với mục đích trao đổi
thông tin, tổ chức các cuộc họp hàng tuần cũng như các cuộc họp đột xuất, lưu trữ lại
thông tin cuộc họp.
Google Drive là nơi được nhóm dùng để lưu trữ toàn bộ tài liệu liên quan tới đồ án và
chủ yếu là hình ảnh sử dụng trong đồ án, tài liệu về đồ án, các dữ liệu được sử dụng và
các báo cáo của đồ án.
29
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Visual Studio là hệ thống tập hợp tất cả những gì liên quan tới phát triển ứng dụng, bao
gồm trình chỉnh sửa mã, trình thiết kế, gỡ lỗi. Tức là, bạn có thể viết code, sửa lỗi, chỉnh
sửa thiết kế ứng dụng dễ dàng chỉ với 1 phần mềm Visual Studio mà thôi. Không dừng
lại ở đó, người dùng còn có thể thiết kế giao diện, trải nghiệm trong Visual Studio như
khi phát triển ứng dụng Xamarin, UWP bằng XAML.
30
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
3.4. Figma
Figma là một công cụ thiết kế đồ họa vector chạy trên trình duyệt web, thường dùng để
thiết kế UI và dựng prototypes. Hỗ trợ nhóm xây dựng giao diện và mô phỏng luồng
hoạt động.
31
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Git – GitHub: Git là một hệ thống quản lý phiên bản phân tán (Distributed Version
Control System – DVCS), nó là một trong những hệ thống quản lý phiên bản phân tán
phổ biến nhất hiện nay. Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) riêng
chứa toàn bộ lịch sử thay đổi. Toàn bộ source code của đồ án sẽ được quản lý bằng
Github.
Lợi ích của git: Giúp các thành viên có thể thao tác (đưa lên kho code chung cũng như
lấy xuống) được nhanh hơn không phải qua quá nhiều bước. Kiểm soát được sự thay đổi
của từng dòng lệnh khi người lập trình viết ra. Giúp người quản lý dự án có thể giám sát
phân bổ công việc của một project hiệu quả hơn.
Lợi ích của Github: Cung cấp nơi lưu trữ và quản lý kho code dễ dàng, an toàn và truy
cập nhanh chóng thông qua Internet.
32
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
33
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
3.6. Trello
Giúp dễ dàng quản lý dự án cũng như theo dõi các công việc hiện tại – đã xong – và
trong tương lai.
Visual Studio Code là một trong những trình soạn thảo mã nguồn rất phổ biến được các
lập trình viên sử dụng. Với các ưu điểm nổi bật là sự nhanh chóng, nhẹ, hỗ trợ đa nền
tảng cùng nhiều tính năng và là mã nguồn mở chính.
34
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
SQL Server hay còn gọi là Microsoft SQL Server, là một phần mềm quản trị cơ sơ dữ
liệu quan hệ được phát triển bởi microsoft bao gồm: tạo, duy trì, phân tích dữ liệu,… dễ
dàng sử dụng để lưu trữ cho các dữ liệu dựa trên tiêu chuẩn RDBMS – Relational
Database Management System.
SQL Server được xây dựng dựa trên SQL, được tối ưu để có thể chạy trên môi trường
cơ sở dữ liệu rất lớn lên đến Tera – Byte cùng lúc phục vụ cho hàng ngàn user. SQL
Server cung cấp đầy đủ các công cụ cho việc quản lý từ nhận diện GUI đến sử dụng ngôn
ngữ cho việc truy vấn SQL.
35
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Microsoft SQL Server Management Studio là một công cụ trực quan dùng để quản lý
SQL Server. Với SQL Server Management Studio chúng ta có thể thực hiện được các
tương tác với database bằng câu lệnh hoặc trên giao diện người dùng. SQL Server
Management Studio được thiết kế đơn giản và dễ sử dụng nhưng cũng cần có thời gian
nhất định để làm quen với công cụ.
36
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
37
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
1 Admin Là quản trị viên của web, có thể hoạt động trên nhiều chức
năng
2 Nhân viên Là người nhân viên bán xe, lập hóa đơn, …
3 Quản lý thông tin ô Admin có thể quản lý thông tin ô tô (như xem, thêm, xóa, cập
tô nhật và tìm kiếm)
4 Quản lý thông tin Admin có thể quản lý thông tin nhân viên (như xem, thêm,
nhân viên xóa, cập nhật và tìm kiếm)
5 Quản lý thông tin Admin và nhân viên có thể quản lý thông tin khách hàng (như
khách hàng xem, thêm, xóa, cập nhật và tìm kiếm)
38
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
7 Quản lý hóa đơn Nhân viên có thể quản lý hóa đơn thanh toán (như xem, tạo,
xóa, cập nhật và tìm kiếm)
8 Quản lý form Nhân viên có thể quản lý các phản hồi (như xóa, cập nhật và
tìm kiếm)
9 Xem thông tin hóa Hiển thị thông tin các hóa đơn của khách hàng
đơn
4.4.1.1. Đặc tả
39
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4. Hệ thống đưa người dùng đến trang chủ sau khi đăng
nhập thành công
Trạng thái hệ thống khi bắt Yêu cầu email và mật khẩu hợp lệ
đầu thực hiện Use-case. Tài khoản của người dùng đã được đăng ký
Trạng thái hệ thống sau khi Nếu use-case thực hiện thành công sẽ đi đến trang chủ.
thực hiện Use-case. Còn không thì trạng thái hệ thống không thay đổi
40
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
41
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.4.2. Đăng ký
4.4.2.1. Đặc tả
Tên Use-case Đăng ký
3. Người dùng nhập email, mật khẩu, sđt, thông tin cá nhân
(như họ tên, ngày sinh, giới tính, …)
4. Sau khi đăng ký thành công hệ thống yêu cầu bạn đăng
nhập lại
5. Hệ thống đưa người dùng đến trang chủ sau khi đăng
nhập thành công
Trạng thái hệ thống khi bắt Khách hàng không có tài khoản.
đầu thực hiện Use-case.
Trạng thái hệ thống sau khi Nếu use-case thực hiện thành công sẽ đi đến đăng nhập.
thực hiện Use-case. Còn không thì trạng thái hệ thống không thay đổi
42
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
43
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.4.3.1. Đặc tả
Tên Use-case Quản lý thông tin ô tô
Actor Admin
Dòng sự kiện chính 1. Nhấp vào chức năng quản lý thông tin ô tô trong trang web
của admin
2. Hiển thị màn hình danh sách thông tin ô tô
3. Có thể xem thông tin chi tiết, tìm kiếm thông tin của ô tô
hoặc chọn ô tô cần cập nhật hoặc xóa. Có thể chọn thêm
thông tin ô tô mới
4. Lưu thông tin của ô tô khi thao tác hợp lệ
Trạng thái hệ thống khi Admin đã đăng nhập vào trang web
bắt đầu thực hiện Use-
case.
Trạng thái hệ thống sau Nếu use-case thực hiện thành công sẽ hiển thị thông tin hay
khi thực hiện Use-case. lưu thông tin mới. Còn không thì trạng thái hệ thống không
thay đổi
44
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
45
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
46
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
47
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
48
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
49
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.4.4.1. Đặc tả
Tên Use-case Quản lý thông tin nhân viên
Mô tả Admin có thể xem danh sách nhân viên, xem thông tin chi tiết
của từng nhân viên và có thể thêm, xóa, cập nhật và tìm kiếm
thông tin nhân viên theo nhu cầu.
Actor Admin
Dòng sự kiện chính 1. Nhấp vào chức năng quản lý thông tin nhân viên trong trang
web của admin
2. Hiển thị màn hình danh sách thông tin nhân viên
3. Có thể xem thông tin chi tiết, tìm kiếm thông tin của nhân viên
hoặc chọn nhân viên cần cập nhật hoặc xóa. Có thể chọn thêm
thông tin nhân viên mới
4. Lưu thông tin của nhân viên khi thao tác hợp lệ
Trạng thái hệ thống Admin đã đăng nhập vào trang web
khi bắt đầu thực hiện
Use-case.
Trạng thái hệ thống Nếu use-case thực hiện thành công sẽ hiển thị thông tin hay lưu
sau khi thực hiện Use- thông tin mới. Còn không thì trạng thái hệ thống không thay
case. đổi
50
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 10. Sơ đồ Active Diagram xem thông tin chi tiết nhân viên
51
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 11. Sơ đồ Active Diagram thêm thông tin nhân viên mới
52
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 12. Sơ đồ Active Diagram tìm kiếm thông tin nhân viên
53
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
54
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
55
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 14. Sơ đồ Active Diagram cập nhật thông tin nhân viên
4.4.5.1. Đặc tả
Tên Use-case Quản lý thông tin khách hàng
Mô tả Admin và nhân viên có thể xem danh sách khách hàng, xem
thông tin chi tiết của từng khách hàng và có thể thêm, xóa, cập
nhật và tìm kiếm thông tin khách hàng theo nhu cầu.
Trạng thái hệ thống Nếu use-case thực hiện thành công sẽ hiển thị thông tin hay lưu
sau khi thực hiện thông tin mới. Còn không thì trạng thái hệ thống không thay đổi
Use-case.
56
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 15. Sơ đồ Active Diagram xem thông tin chi tiết khách hàng
57
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 16. Sơ đồ Active Diagram thêm thông tin chi tiết khách hàng mới
58
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 17. Sơ đồ Active Diagram tìm kiếm thông tin khách hàng
59
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
60
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 19. Sơ đồ Active Diagram cập nhật thông tin khách hàng
61
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.4.6.1. Đặc tả
Tên Use-case Quản lý tin tức
Mô tả Admin có thể xem danh sách tin tức, xem chi tiết tin tức về xe
ô tô và có thể thêm, xóa, cập nhật tin tức về xe ô tô để cung cấp
tin tức xe cho khách hàng.
Actor Admin
Dòng sự kiện chính 1. Nhấp vào chức năng quản lý tin tức trong trang web của admin
2. Hiển thị màn hình danh sách tin tức
3. Có thể xem thông tin chi tiết, cập nhật hoặc xóa tin tức. Có thể
chọn thêm tin tức mới về ô tô
4. Lưu tin tức khi thao tác hợp lệ
Trạng thái hệ thống Admin đã đăng nhập vàotrang web
khi bắt đầu thực hiện
Use-case.
Trạng thái hệ thống Nếu use-case thực hiện thành công sẽ hiển thị thông tin hay lưu
sau khi thực hiện Use- thông tin mới. Còn không thì trạng thái hệ thống không thay
case. đổi
62
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
63
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
64
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
65
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
66
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.4.7.1. Đặc tả
Tên Use-case Quản lý thông tin hóa đơn thanh toán
Mô tả Nhân viên có thể xem danh sách hóa đơn, xem thông tin chi
tiết của từng hóa đơn và có thể thêm, xóa, cập nhật và tìm kiếm
thông tin hóa đơn theo nhu cầu.
Dòng sự kiện chính 1. Nhấp vào chức năng quản lý thông tin hóa đơn trong trang web
của nhân viên
2. Hiển thị màn hình danh sách thông tin hóa đơn
3. Có thể xem thông tin chi tiết, tìm kiếm thông tin của hóa đơn
hoặc chọn hóa đơn cần cập nhật hoặc xóa. Có thể chọn thêm
thông tin hóa đơn mới
4. Lưu thông tin của hóa đơn khi thao tác hợp lệ
Trạng thái hệ thống Nhân viên đã đăng nhập vào trang web
khi bắt đầu thực hiện
Use-case.
Trạng thái hệ thống Nếu use-case thực hiện thành công sẽ hiển thị thông tin hay lưu
sau khi thực hiện Use- thông tin mới. Còn không thì trạng thái hệ thống không thay
case. đổi
67
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 24. Sơ đồ Active Diagram xem thông tin chi tiết hóa đơn
68
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
69
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
70
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
71
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 28. Sơ đồ Active Diagram cập nhật thông tin hóa đơn
72
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.4.8.1. Đặc tả
Tên Use-case Quản lý form
Mô tả Admin và nhân viên có thể xem danh sách phản hồi, xem thông
tin chi tiết của từng phản hồi và có thể xóa, cập nhật và tìm
kiếm thông tin phản hồi theo nhu cầu.
Dòng sự kiện chính 1. Nhấp vào chức năng quản lý form trong trang web của nhân
viên và admin
2. Hiển thị màn hình danh sách các form
3. Có thể xem thông tin chi tiết của form, tìm kiếm form hoặc
chọn form cần xóa.
4. Lưu xóa form khi thao tác hợp lệ
Trạng thái hệ thống Admin và nhân viên đã đăng nhập vòa trang web
khi bắt đầu thực hiện
Use-case.
Trạng thái hệ thống Nếu use-case thực hiện thành công sẽ hiển thị thông tin form.
sau khi thực hiện Use- Còn không thì trạng thái hệ thống không thay đổi
case.
Điểm mở rộng 1. Nhấn nút hủy thao tác và không xóa form
73
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
74
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
75
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
***Xóa form
76
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.4.9.1. Đặc tả
Tên Use-case Xem thông tin hóa đơn
Mô tả Khách hàng có thể xem các hóa đơn mua hàng của
bản thân khi có nhu cầu.
Dòng sự kiện chính 1. Nhấp vào chức năng xem thông tin hóa đơn mua
hàng
2. Hiển thị màn hình danh sách thông tin hóa đơn
mua hàng
Trạng thái hệ thống khi bắt đầu Khách hàng đã đăng nhập vào trang web
thực hiện Use-case.
77
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
78
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
79
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.5.2. Đăng ký
80
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
81
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
82
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
***Tìm kiếm ô tô
83
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
84
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
85
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
86
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
87
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
88
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 43. Sequence Diagram cập nhật thông tin nhân viên
89
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
90
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
91
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
92
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
93
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 48. Sequence Diagram cập nhật thông tin khách hàng
94
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
95
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
96
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
97
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
98
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
99
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
100
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
101
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
102
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 57. Sequence Diagram cập nhật thông tin hóa đơn
103
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
104
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
105
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
106
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
***Xóa form
107
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Hình 4. 62. Sequence Diagram xem thông tin hóa đơn trực tuyến
108
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
109
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4.6.2. Đăng ký
110
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
111
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
112
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
113
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
114
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
115
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
116
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
117
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Để thuận lợi trong việc triển khai đồ án, nhóm chúng em đã xây dựng dựa trên mô hình
Web API với ASP.NET Core MVC. Web API được sử dụng làm thành phần server cho
nhiều loại ứng dụng khác nhau (SPA,mobile, desktop,..). Web API trao đổi dữ liệu ở
dạng JSON hoặc XML với client qua HTTP. Trong ASP.NET Core, Web API được xây
dựng trên MVC framework chứ không phải là một framework riêng. Dự án ASP.NET
Core Web API cũng chính là dự án ASP.NET Core MVC nhưng có một số thay đổi về
kỹ thuật. Để khai thác Web API chúng ta phải xây dựng client riêng. Sự khác biệt lớn
nhất khi sử dụng MVC để tạo ra Web API nằm ở chỗ: thành phần View của MVC giờ
được thay thế bằng JSON hoặc XML. Thay vì sử dụng các Razor template để sinh
HTML, action trong Web API sẽ chuyển đổi dữ liệu thành chuỗi JSON hoặc XML. Do
đó đồ án của nhóm của chúng em sẽ chia thành 2 phần là Front End đảm nhiệm vai trò
là client và Back End đảm nhiệm vài trò là server.
5.1.1 FrontEnd
- ReactJS: ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào
năm 2013, bản thân nó là một thư viện Javascript được dùng để để xây dựng các
tương tác với các thành phần trên website. Một trong những điểm nổi bật nhất của
ReactJS đó là việc render dữ liệu không chỉ thực hiện được trên tầng Server mà
còn ở dưới Client nữa. ReactJS là một thư viện JavaScript chuyên giúp các nhà
phát triển xây dựng giao diện người dùng hay UI.
- Material UI: Material-UI là một thư viện cho phép chúng ta nhập và sử dụng
components khác nhau để tạo giao diện người dùng trong các ứng dụng React, là
một thư viện mã nguồn mở triển khai Material Design của Google. Nó bao gồm
một bộ sưu tập toàn diện các components được tạo sẵn, sẵn sàng để sử dụng trong
118
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
quá trình xây dựng giao diện người dùng của website.
- React simply carousel và Hero slider: các thư viện component hỗ trợ thiết kế
các giao diện carousel hoặc cần slide các thành phần.
- Sweet alert: thư viện component các thông báo, popup thay thế cho các popup
mặc định trong Javascript với thiết kế đẹp hơn, reponsive và có thể tùy chỉnh
được.
- Axios: Axios là một thư viện HTTP Client dựa trên Promise dành cho node.js và
trình duyệt. Nó có tính đẳng hình (tức là cùng codebase có thể chạy trong cả trình
duyệt và node.js). Ở phía server thì nó sử dụng native module http trong node.js,
còn ở phía client (trình duyệt) thì nó sử dụng XMLHttpRequest.
- Dayjs: Day.js là một thư viện xử lý ngày và giờ JavaScript nhẹ, dùng để thao tác
với dữ liệu thời gian và hiển thị, định dạng ngày tháng dễ dàng. - React cookie:
một JavaScript API đơn giản và nhẹ dùng để xử lý cookie.
- React Jodit: Jodit là một trình soạn thảo WYSIWYG mã nguồn mở được viết
bằng TypeScript thuần tuý mà không cần sử dụng các thư viện bổ sung.
5.1.2 BackEnd
- ASP.NET Core là một phiên bản mới của ASP.NET, được phát hành bởi
Microsoft và là một mã nguồn mở trên GitHub. ASP.NET Core được sử dụng để
phát triển khuôn khổ website và có thể thích ứng với nhiều trình duyệt khác nhau
như Windows, Mac hoặc Linux kể cả trên nền tảng MVC. ASP.NET Core được
thiết kế để tối ưu development framework cho những ứng dụng cái mà được chạy
on-promise hay được triển khai trên đám mây. ASP.NET Core bao gồm các thành
phần theo hướng module với mục đích tối thiểu tài nguyên và tiết kiệm chi phí
khi phát triển.
- RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng
web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng
119
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…),
bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
- Entity Framework Core là một Object Relational Mapping (ORM) framework
giúp dễ dàng truy xuất và lưu trữ dữ liệu trong database thông qua việc ánh xạ
database thành các objects tương ứng trong code.
- Jsonwebtoken: JWT là một phương tiện đại diện cho các yêu cầu chuyển giao
giữa hai bên Client – Server , các thông tin trong chuỗi JWT được định dạng bằng
JSON. Trong đó chuỗi Token phải có 3 phần là header , phần payload và phần
signature.
- Brcypt.Net là thư viện mã hóa mật khẩu. Bcrypt là một chức năng mã hóa mật
khẩu dựa trên các thuật toán mã hóa Blowfish. Bcrypt là một thuật toán mã hóa
một chiều. Bạn không thể lấy lại mật khẩu khi đã biết chuỗi mã hóa mật khẩu
trong dữ liệu database trước đó mà bạn hay bất kì ai tấn vào để đánh cắp.
- MailKit là một thư viện ứng dụng main client đa nền tảng được xây dựng trên
MimeKit. Mục tiêu của dự án này là cung cấp cho thế giới .NET các triển khai
ứng dụng khách hàng SMTP, POP3 và IMAP mạnh mẽ, đầy đủ tính năng và tuân
thủ RFC.
+ Breakpoints: Là điểm mà chương trình sẽ dừng lại để cho phép bạn chạy
từng bước các dòng code. Có thể đặt nhiều breakpoint trong chương trình.
+ Các cửa sổ theo dõi biến: Giúp bạn theo dõi sự thay đổi của biến hoặc hàm
120
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
cho mỗi bước chạy. Nếu một biến có sự thay đổi giá trị thì sẽ có màu đỏ
để phân biệt. Có 3 loại:
• Autos: Hiển thị tự động các biến, hoặc hàm trả về trong các dòng code
trước.
• Locals: Tương tự Autos nhưng chỉ hiển thị các biến liên quan trong nội
bộ hàm hoặc khối lệnh.
• Watch: cửa sổ tùy chỉnh cho phép bạn xem chỉ các biến mà bạn yêu
cầu hoặc giá trị tùy chỉnh bất kỳ. Visual Studio cho phép bạn mở tối đa
4 cửa sổ Watch.
+ Thanh công cụ Debug: cung cấp các nút lệnh để bạn thực hiện Debug chương
trình.
+ Cửa sổ Call Stack: Chứa lời gọi hàm trong ngăn xếp. Nếu chỉ debug ở mức độ cơ
bản thì cũng không cần quan tâm cửa sổ này lắm.
+ Cửa sổ Diagnostic Tool: Chứa các công cụ chẩn đoán nâng cao. Cung cấp biểu
đồ thời gian thực bộ nhớ, CPU… mà chương trình sử dụng. Ngoài ra nó còn hiển
121
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
5.2.2 Postman
Postman là một công cụ cho phép chúng ta thao tác với API, phổ biến nhất là
REST. Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trong thử
nghiệm các API. Với Postman, ta có thể gọi Rest API mà không cần viết dòng code nào.
Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH, DELETE,
…). Bên cạnh đó, nó còn cho phép lưu lại lịch sử các lần request, rất tiện cho việc sử
dụng lại khi cần. Những lợi ích khi sử dụng Postman:
122
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
- Sử dụng Collections (Bộ sưu tập) – Postman cho phép người dùng tạo bộ sưu tập
cho các lệnh gọi API của họ. Mỗi bộ sưu tập có thể tạo các thư mục con và nhiều
yêu cầu (request). Điều này giúp việc tổ chức các bộ thử nghiệm.
- Collaboration – Collections và environment có thể được import hoặc export giúp
chia sẻ tệp dễ dàng.
- API Testing – Test trạng thái phản hồi HTTP.
- Gỡ lỗi – Bảng điều khiển Postman giúp kiểm tra dữ liệu nào đã được truy xuất
giúp dễ dàng gỡ lỗi kiểm tra.
123
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
5.2.3 Swagger UI
Swagger UI là một tool cho phép bất kỳ ai từ nhà phát triển cho đến người dùng cuối có
thể hình dung và tương tác với các tài nguyên API của dự án. Tool này sẽ tự động tạo ra
tài liệu API từ file config Swagger, với cái nhìn trực quan và việc triển khai trở nên dễ
dàng hơn cho phía client.
124
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
125
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Màn hình Mô tả
Home Màn hình trang chủ của King Speed khi đã đăng nhập thành
công
Introduction Màn hình giới thiệu về King Speed
Product Màn hình chứa các sản phẩm xe của từng hãng xe
Contact Màn hình để khách hàng để lại thông tin liên lạc để được tư
vấn thêm về các sản phẩm của King Speed
User Màn hình chứa thông tin chi tiết của người dùng
Edit user Màn hình cập nhật, chỉnh sửa thông tin của tài khoản người
dùng
Car management Màn hình quản lý xe ô tô chứa danh sách ô tô và thông tin
Detail car Màn hình hiển thị thông tin chi tiết của xe ô tô
126
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Customer management Màn hình quản lý khách hàng chứa danh sách khách hàng
Edit customer Màn hình chỉnh sửa thông tin chi tiết khách hàng
Detail customer Màn hình hiển thị thông tin chi tiết của khách hàng
Employee management Màn hình quản lý nhân viên chứa danh sách nhân viên
Edit Employee Màn hình chỉnh sửa thông tin chi tiết nhân viên
Detail Employee Màn hình hiển thị thông tin chi tiết của nhân viên
News management Màn hình quản lý tin tức chứa danh sách tin tức
Edit news Màn hình chỉnh sửa thông tin chi tiết tin tức
Detail news Màn hình hiển thị thông tin chi tiết của tin tức
Form management Màn hình quản lý form chứa danh sách form phản hồi
Detail form Màn hình hiển thị thông tin chi tiết của tin tức
127
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Invoice management Màn hình quản lý hóa đơn chứa danh sách hóa đơn
Edit invoice Màn hình chỉnh sửa thông tin chi tiết hóa đơn
Detail invoice Màn hình hiển thị thông tin chi tiết của hóa đơn
128
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
129
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
130
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Quay về đăng
3 Text Mục quay về màn hình Login
nhập
Bảng 6. 4. Bảng mô tả các đối tượng trên màn hình Forget password
131
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 5. Danh sách các biến cố và xử lý trên màn hình Forget password
132
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 6. Bảng mô tả các đối tượng trên màn hình Reset Password
Bảng 6. 7. Danh sách các biến cố và xử lý trên màn hình Reset Password
133
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
134
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
135
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Màn hình introduction bao gồm những giới thiệu và hình ảnh về showroom.
136
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Trường nhập tên của người Bắt buộc phải nhập nội
1 name Text
dùng dung
137
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 10. Bảng mô tả các đối tượng trên màn hình Contact
Bảng 6. 11. Danh sách các biến cố và xử lý trên màn hình Contact
138
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
139
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 13. Danh sách các biến cố và xử lý trên màn hình News
140
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Màn hình Read news bao gồm phần tin tức chi tiết gồm hình ảnh và các thông tin, bên
cạnh là sidebar có chứa các smaller card.
Bảng 6. 14. Bảng mô tả các đối tượng trên màn hình Read News
ST
Biến cố Tên hàm Mô tả xử lý Ý nghĩa
T
141
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 15. Danh sách các biến cố và xử lý trên màn hình Read News
142
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
143
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
144
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
3 Thanh chọn Menu Hiển thị danh sách các item xe theo
branch hãng
5 Item tin thức Card Hiện thị trang chi tiết tin tức
Bảng 6. 16. Bảng mô tả các đối tượng trên màn hình Home
3 Click vào thanh chọn Hiển thị danh sách các item xe
branch theo hãng
5 Click vào Item tin thức Hiện thị trang chi tiết tin tức
Bảng 6. 17. Danh sách các biến cố và xử lý trên màn hình Home
145
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 18. Màn hình hiển thị thông tin sản phẩm xe
Bảng 6. 20. Bảng mô tả các danh sách và biến cố trên màn hình
146
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 22. Bảng mô tả các danh sách và biến cố trên màn hình
147
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
1 Đăng Xuất Button Đăng xuất khỏi tài khoản hiện tại
Bảng 6. 23. Bảng mô tả các đối tượng trên màn hình user
1 Click vào đăng xuất Đăng xuất khỏi tài khoản hiện tại
2 Click vào icon cây Chỉnh sửa thông tin của tài khoản
bút hiện tại
Bảng 6. 24. Bảng mô tả các danh sách và biến cố trên màn hình user
148
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
149
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 25. Bảng mô tả các đối tượng trên màn hình Quản lý
2 Click vào chọn item “Quản Hiển thị trang quản lý khách
lý khách hàng” hàng
3 Click vào chọn item “Quản Hiển thị trang quản lý tin tức
lý tin tức”
150
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
4 Click vào chọn item “Quản Hiển thị trang quản lý form
lý form”
5 Click vào chọn item “Quản Hiển thị trang quản lý nhân
lý nhân viên” viên
7 Click vào icon cây bút Hiển thị màn hình chỉnh sửa
thông tin khách hàng
8 Click vào icon thùng rác Hiển thị màn hình xác nhận xóa
pop up.
9 Click vào button chi tiết Hiển thị màn hình chi tiết xe
Bảng 6. 26. Bảng mô tả các đối tượng trên màn hình quản lí
151
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
2 Hủy Button Hủy xác nhận xóa thông tin khách hàng
Bảng 6. 27. Bảng mô tả các đối tượng trên màn hình quản lí xóa khách hàng
1 Click vào button Xóa luôn Xóa thông tin khách hàng
2 Click vào button Hủy Hủy xóa thông tin khách hàng
Bảng 6. 28. Bảng mô tả các danh sách và biến cố trên màn hình xóa khách hàng
152
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 29. Bảng mô tả các đối tượng trên màn hình cập nhật khách hàng
153
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
1 Hủy Button Đóng trang hiển thị chi tiết khách hàng
Hình 6. 21. Bảng mô tả các đối tượng trên màn hình chi tiết khách hàng
1 Click vào button hủy Đóng trang hiện chi tiết khách hàng
Hình 6. 22. Bảng mô tả các danh sách và biến cố trên màn hình xem chi tiết khách
hàng
154
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
1 Tên khách hang Input Nhập tên khách hang Bắt buộc
155
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 30. Bảng mô tả các đối tượng trên màn hình thêm khách hàng
1 Click vào button thêm Dữ liệu khách hang được lưu vào
dữ liệu database
Bảng 6. 31. Bảng mô tả các danh sách và biến cố trên màn hình thêm khách hàng
156
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
b) Quản lý ô tô
157
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 32. Bảng mô tả các đối tượng trên màn hình xóa ô tô
Bảng 6. 33. Bảng mô tả các danh sách và biến cố trên màn hình xóa ô tô
158
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
159
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
11 Tiêu hao nhiên liệu Input Nhập tiêu hao nhiên liệu
Bảng 6. 34. Bảng mô tả các đối tượng trên màn hình cập nhật dữ liệu xe
Bảng 6. 35. Bảng mô tả các danh sách và biến cố trên màn hình cập nhật dữ liệu xe
160
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
1 Hủy Button Đóng trang hiển thị chi tiết thông tin xe
Bảng 6. 36. Bảng mô tả các đối tượng trên màn hình chi tiết xe
1 Click vào button hủy Đóng trang hiện chi tiết thông tin xe
Bảng 6. 37. Bảng mô tả các danh sách và biến cố trên màn hình chi tiết xe
161
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
162
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 38. Bảng mô tả các đối tượng trên màn hình thêm mới ô tô
1 Click vào button thêm Dữ liệu khách hang được lưu vào
dữ liệu database
Bảng 6. 39. Bảng mô tả các danh sách và biến cố trên màn hình thêm mới ô tô
c) Hóa đơn
163
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
9 Chi tiết Button Hiển thị màn hình chi tiết hóa đơn
10 Icon cây bút Icon Hiển thị màn hình chỉnh sửa hóa đơn
11 Icon thùng rác Icon Hiển thi pop up xác nhận xóa item
164
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 40. Bảng mô tả các đối tượng trên màn hình quản lý hóa đơn
2 Click vào chọn item “Quản lý Hiển thị trang quản lý khách
khách hàng” hàng
3 Click vào chọn item “Quản lý Hiển thị trang quản lý tin tức
tin tức”
4 Click vào chọn item “Quản lý Hiển thị trang quản lý form
form”
5 Click vào chọn item “Quản lý Hiển thị trang quản lý nhân
nhân viên” viên
6 Click vào button thêm hóa Hiển thị màn hình pop up để
đơn thêm hóa đơn
7 Click vào icon cây bút Hiển thị màn hình chỉnh sửa
hóa đơn
8 Click vào icon thùng rác Hiển thị màn hình xác nhận
xóa pop up.
9 Click vào button chi tiết Hiển thị màn hình chi tiết xe
165
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 41. Bảng mô tả các danh sách và biến cố trên màn hình quản lý hóa đơn
2 Ngày lập thanh toán Input Nhập ngày lập thanh toán Bắt buộc
166
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 42. Bảng mô tả các đối tượng trên màn hình tạo hóa đơn
d) Form
Bảng 6. 43. Bảng mô tả các đối tượng trên màn hình quản lý form
167
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
2 Click vào chọn item “Quản lý Hiển thị trang quản lý khách
khách hàng” hàng
3 Click vào chọn item “Quản lý Hiển thị trang quản lý tin tức
tin tức”
4 Click vào chọn item “Quản lý Hiển thị trang quản lý form
form”
5 Click vào chọn item “Quản lý Hiển thị trang quản lý nhân
nhân viên” viên
6 Click vào button thêm hóa Hiển thị màn hình pop up để
đơn thêm hóa đơn
7 Click vào icon thùng rác Hiển thị màn hình xác nhận
xóa pop up.
Bảng 6. 44. Bảng mô tả các danh sách các biến cố trên màn hình quản lý form
e) Tin tức
168
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
5 Grid tin tức Grid Hiển thị các nội dung của tin tức (STT,
Ảnh, Tác Giả, Tiêu đề, Hồ sơ)
Bảng 6. 45. Bảng mô tả các đối tượng trên màn hình quản lý tin tức
169
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
2 Hủy Button Hủy xác nhận xóa thông tin tin tức
Bảng 6. 46. Bảng mô tả các đối tượng trên màn hình xóa tin tức
1 Click vào button Xóa luôn Xóa thông tin tin tức
2 Click vào button Hủy Hủy xóa thông tin tin tức
Bảng 6. 47. Bảng mô tả các danh sách và biến cố trên màn hình xóa tin tức
170
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
171
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 48. Bảng mô tả các đối tượng trên màn hình sửa tin tức
172
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 49. Bảng mô tả các đối tượng của màn hình thêm tin tức
f) Nhân viên
173
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 50. Bảng mô tả các đối tượng trên màn hình quản lý nhân viên
174
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
3 Click vào chọn item “Quản lý Hiển thị trang quản lý tin
tin tức” tức
6 Click vào button thêm hóa đơn Hiển thị màn hình pop
up để thêm hóa đơn
7 Click vào icon cây bút Hiển thị màn hình chỉnh
sửa hóa đơn
8 Click vào icon thùng rác Hiển thị màn hình xác
nhận xóa pop up.
9 Click vào button chi tiết Hiển thị màn hình chi
tiết xe
Bảng 6. 51. Bảng mô tả các biến cố màn hình quản lý hóa đơn
175
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
9 Xác nhận mật khẩu Input Nhập lại mật khẩu Bắt buộc
176
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
Bảng 6. 52. Bảng mô tả các đối tượng trên màn hình thêm nhân viên
Hình 6. 37. Màn hình xem chi tiết thông tin nhân viên
1 Hủy Button Đóng trang hiển thị chi tiết nhân viên.
Bảng 6. 53. Bảng mô tả các đối tượng trên màn hình chi tiết nhân viên
177
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
1 Click vào button Đóng trang hiện chi tiết thông tin chi tiết
hủy nhân viên.
Bảng 6. 54. Bảng mô tả các danh sách và biến cố trên màn hình chi tiết nhân viên
2 Hủy Button Hủy xác nhận xóa thông tin nhân viên
Bảng 6. 55. Bảng mô tả các đối tượng trên màn hình xóa nhân viên
178
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
1 Click vào button Xóa luôn Xóa thông tin nhân viên
2 Click vào button Hủy Hủy xóa thông tin nhân viên
Bảng 6. 56. Bảng mô tả các danh sách và biến cố trên màn hình xóa nhân viên
6.2. So Sánh
Nhìn chung, việc phát triển dự án phần mềm trải qua rất nhiều bước với độ phức tạp
khác nhau, song nhóm đã nắm bắt được những tính năng chính và nội dung cần thực
thực hiện đối với trang web của mình một cách chính xác và chuẩn chỉ nhất để có thể
thực hiện và hoàn thành đúng tiến độ và đạt yêu cầu
• Đồ án được thực hiện được các phân quyền giống đồ án thực tế như admin, nhân
viên thực hiện các thao tác như tạo tài khoản người dùng, xác nhận mail và quên
tài khoản.
• Hiển thị những nội dung cần thiết của một website quản lý showroom ô tô: thông
tin xe, giá xe, nội dung feedback từ người đùng. Ngoài ra còn có thêm tin tức liên
quan đến xe nổi bật trên thế giới.
• Hiển thị những thông tin cần thiết của một khách hàng khi mới đăng ký như danh
sách hóa đơn, thông tin người dùng đồng thời đó là chỉnh sửa thông tin người
dùng.
179
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
• Hiển thị được nội dung thanh toán hóa đơn cơ bả: bao gồm những xe nào và chi
tiết hóa đơn.
Tuy vậy, đây chỉ là đồ án môn học nên không thể đánh giá ngang bằng hoặc hơn được
với các đồ án thực tế được triển khai bên ngoài còn rất nhiều điều phải học hỏi:
• Thực hiện cải tiến giao diện phù hợp với giao diện người dùng
• Chưa có những tính năng nâng cao như định vị google map, responsive để phù
hợp với các thiết bị cầm tay như điện thoại hay máy tính bảng.
• Hiệu suất render của ứng dụng vẫn còn chưa được tối ưu.
Admin: có hầu hết mọi quyền hạn (quản lý hóa đơn, quản lý nhân viên, quản lý khách
hàng, quản lý form, quản lý news) với các khả năng thêm sửa xóa…
Đa số các màn hình trong đồ án đều có những chức năng riêng nên khác nhau, song
việc tạo header và footer luôn để xuất hiện giữa các màn hình nên điểm giống nhau
giữa các màn hình đó là phần header và footer.
180
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
7.2. Ưu điểm
• Các tính năng đơn giản, dễ sử dụng, giao diện hiện đại.
• Số lượng xe đa dạng, có tính tham khảo.
• Có áp dụng các phương thức bảo mật cho tài khoản bằng việc mã hóa mật khẩu,
xác thực người dùng bằng accessToken. AccessToken được lưu vào Cookie giúp
bảo mật hơn so với lưu ở LocalStorage. Gửi email xác thực tài khoản khi người
dùng muốn đặt lại mật khẩu.
• Giao diện Website gồm hai phần là phần giao diện dành cho khách hàng và phần
giao diện dành cho quản lý. Do đó, luồng hoạt động của website sẽ được đảm
bảo.
• Website có hỗ trợ phân quyền người dùng, hạn chế được người dùng truy cập vào
các trang không cho phép ví dụ như khách hàng không thể truy cập được vào
trang quản lý.
• Hỗ trợ gửi email đơn đặt đặt hàng cũng như hóa đơn đến email của khách hàng,
giúp khách hàng lưu trữ thông tin hóa đơn và năm bắt thông tin về hóa đơn dễ
dàng hơn.
• Hỗ trợ các tính năng lọc, tìm kiếm giúp người dùng dễ dàng hơn trong việc tra
cứu thông tin.
181
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
• Hỗ trợ nhiều loại quản lý như quản lý ô tô, quản lý khách hàng, quản lý nhân viên,
quản lý tin tức, quản lý hóa đơn, quản lý form liên hệ. Trong mỗi trang quản lý
đều hỗ trợ các chức năng liên quan đến thêm, xóa, sửa, tìm kiếm… Điều đó giúp
đảm bảo các chức năng cần thiết cho trang quản lý.
• Phát triển thêm một số tính năng cho trang web như là tích hợp các chức năng
về bảo hành, quản lý các chi nhánh, quản lý thống kê doanh thu…
• Tối ưu một số phần code nhằm cải thiện hiệu suất của trang web.
• Hỗ trợ thêm Responsive cho trang web nhằm tối ưu trải nghiệm người dùng khi
dùng trên các thiết bị có kích thước màn hình khác nhau.
182
Môn học: Xây dựng HTTT trên các framework GVHD: ThS. Tạ Việt Phương
[3] Giao diện ô tô của BMW, https://bmwvietnam.com.vn/ [Truy cập lần cuối:
30/11/2022].
[8] Hướng dẫn tìm hiểu Web API & Entity Framework,
https://www.youtube.com/watch?v=K23uJdMiEpk [truy cập lần cuối 6/12/2022]
183