Khi sử dụng đúng loại ngôn ngữ lập trình của nó thì cácứng dụng mới có thể hoạt động tốt được.. Hình 1: Các ngôn ngữ tạo nên ứng dụng di động 2.1.2 Lợi ích của ứng dụng di động Ứng dụng
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT-HÀN
Khoa Khoa Học Máy Tính
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐẶT ĐỒ
ĂN ONLINE (FOOD APP)
Sinh viên thực hiện : HUỲNH PHÚ NHUẬN Mã: 21IT365 Giảng viên hướng dẫn: ThS TRỊNH THỊ NGỌC LINH
Đà nẵng, tháng 5 năm 2023
Trang 2ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG VIỆT-HÀN
Khoa Khoa Học Máy Tính
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG ĐẶT ĐỒ
ĂN ONLINE (FOOD APP)
Sinh viên thực hiện : HUỲNH PHÚ NHUẬN Mã: 21IT365 Giảng viên hướng dẫn: ThS TRỊNH THỊ NGỌC LINH
Trang 3Đà nẵng, tháng 5 năm 2023
Trang 4MỞ ĐẦU
Ngày nay, việc tìm kiếm thông tin trở nên thật dễ dàng cho người sửdụng, chỉ cần có một máy tính kết nối internet và một dòng dữ liệu truy tìm thìgần như lập tức… cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, cóđầy đủ thông tin, hình ảnh và đôi lúc có những âm thanh nếu bạn cần.Cuộc sống ngày một hiện đại hơn, nhu cầu đặt đồ ăn, thức uống qua cáctrang web cũng như ứng dụng ngày càng tăng cao và phổ biển Từ những kiếnthức học được thì em đã tìm hiểu và thực hiện đề tài “Xây dựng ứng dụng đặt
đồ ăn Online” Ứng dụng sẽ là nơi cung cấp nguồn thông tin hữu ích Tất tầntật mọi thông tin mà bạn mong muốn truyền tải đến khách hàng đều có thểthông qua ứng dụng và website
Trang 5LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em đượcbày tỏ lòng biết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ,gúp đỡ em trong suốt quá trình học tập và nghiên cứu đề tài này Trong suốtthời gian từ khi bắt đầu học tập tại trường đến nay, em đã nhận được rấtnhiều sự quan tâm, giúp đỡ của quý Thầy cô và bạn bè Với lòng biết ơn sâusắc nhất, em xin gửi đển quý thầy cô khoa Khoa học máy tính đã truyền đạtvốn kiến thức quý báy cho chúng em trong suốt thời gian học tập tại trường.Nhờ có những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài nghiên cứucủa em mới có thể hoàn thiện tốt đẹp
Đặc biệt, em xin chân thành cảm ơn cô ThS Trịnh Thị Ngọc Linh đã
hỗ trợ cho em trong suốt quá trình làm đề tài này Nhờ có những lời hướngdẫn tận tình của các thầy nên đề tài nghiên cứu của em mới có thể hoàn thànhmột cách tốt đẹp
Trong quá trình xây dựng đề tài, cũng như là trong quá trình làm bàibáo cáo, khó tránh khỏi sai sót, rất mong các thầy, các cô bỏ qua Đồng thời
do trình độ lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báocáo không thể tránh khỏi những thiếu sót, em rất mong nhận được ý kiếnđóng góp thầy, cô để em học thêm được nhiều kinh nghiệm và sẽ hoàn thànhtốt hơn các bài báo cáo đồ án khi học tại trường
Em xin chân thành cảm ơn!
Trang 6NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà nẵng, ngày … tháng … năm 2023 Chữ kí giảng viên
ThS Trịnh Thị Ngọc Linh
Trang 7MỤC LỤC
MỞ ĐẦU ii
LỜI CẢM ƠN iii
NHẬN XÉT iv
DANH MỤC HÌNH ẢNH vii
CHƯƠNG 1: GIỚI THIỆU VỀ DỰ ÁN 1
1.1 Tên dự án 1
1.2 Người thực hiện 1
1.3 Giới thiệu về dự án 1
1.4 Lý do chọn đề tài 1
1.5 Sự khác biệt 1
1.6 Tổng quan 2
CHƯƠNG 2: KIẾN THỨC TỔNG QUAN 3
2.1 Cơ sở lý luận thực tiễn 3
2.1.1 Ứng dụng di động là gì 3
2.1.2 Lợi ích của ứng dụng di động 3
2.1.3 Tổng quan về XAMPP 4
2.1.4 Tổng quan về Firebase 5
2.1.5 Room Database 6
2.2 Ngôn ngữ lập trình di động 7
2.2.1 Ngôn ngữ trong lập trình ứng dụng 7
2.2.2 Tổng quan về IDE Android Studio 9
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 11
3.1 Use case diagram 11
3.2 Class diagram 12
3.3 Activity diagram 13
3.4 State diagram 14
3.5 Sequence diagram 14
3.6 Database 15
CHƯƠNG 4: CHI TIẾT DỰ ÁN 17
4.1 Giao diện người dùng 17
4.1.1 Giao diện bắt đầu (Splash Screen) 17
Trang 84.1.2 Giao diện màn hình chính 18
4.1.3 Giao diện danh mục 19
4.1.4 Giao diện lịch sử mua hàng 20
4.1.5 Giao diện mục yêu thích 21
4.1.6 Giao diện cá nhân 22
4.1.7 Giao diện giỏ hàng 23
4.1.8 Giao diện chọn mã giảm giá 24
4.1.9 Giao diện thêm địa chỉ 25
4.1.10 Giao diện đặt hàng 26
4.1.11 Giao diện tìm kiếm 27
4.1.12 Giao diện Dialog sản phẩm 28
4.1.13 Giao diện chi tiết sản phẩm 29
4.1.14 Giao diện chi tiết đơn hàng 30
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỄN 31
5.1 Kết quả đạt được 31
5.2 Nhận xét về ưu, nhược điểm của website 31
5.3 Hướng phát triển 31
TÀI LIỆU THAM KHẢO 32
Trang 9DANH MỤC HÌNH ẢNH
Hình 1: Các ngôn ngữ tạo nên ứng dụng di động 3
Hình 2: Logo XAMPP 5
Hình 3: Cơ sở dữ liệu Firebase 5
Hình 4: Logo IDE Android Studio 10
Hình 5: Usecase diagram 11
Hình 6: Class diagram 12
Hình 7: Activity diagram 13
Hình 8: State Diagram 14
Hình 9: Sequence diagram 14
Hình 10: Cơ sở dữ liệu 15
Hình 11: Mối quan hệ các bảng 16
Hình 12: Splash Screen 17
Hình 13: Giao diện màn hình chính 18
Hình 14: Giao diện danh mục 19
Hình 15: Giao diện lịch sử đặt hàng 20
Hình 16: Giao diện sản phẩm yêu thích 21
Hình 17: Giao diện thông tin cá nhân 22
Hình 18: Giao diện giỏ hàng 23
Hình 19: Giao diện nhập mã giảm giá 24
Hình 20: Giao diện thêm địa chỉ 25
Hình 21: Giao diện đặt hàng 26
Hình 22: Giao diện tìm kiếm sản phẩm 27
Hình 23: Giao diện Dialog sản phẩm 28
Hình 24: Giao diện chi tiết sản phẩm 29
Hình 25: Giao diện chi tiết đơn hàng 30
Trang 10CHƯƠNG 1: GIỚI THIỆU VỀ DỰ ÁN
1.1 Tên dự án
- Xây dựng ứng dụng đặt đồ ăn online (Food App)
1.2 Người thực hiện
- Tên nhóm trưởng: Huỳnh Phú Nhuận
- Mã sinh viên: 21IT365
1.3 Giới thiệu về dự án
Ngày nay, công nghệ thông tin trở thành một tri thức rất quan trọngđối với mỗi con người chúng ta Vì vậy chúng ta phải cập nhật chúng mộtcách liên tục Internet là một phần không thể thiếu để hỗ trợ cho việc tìmkiếm Đó là một nơi để mỗi cá nhân, đoàn thể thông qua việc thiết kế trangweb, ứng dụng để giới thiệu về lĩnh vực mình, ứng dụng đặt đồ ăn, thức uống
do em tìm hiểu và phát triển với mục tiêu ban đầu là phục vụ cho học tập vàmong muốn sau này có thể ứng dụng vào thực tế Ứng dụng có thể đáp ứngđược các nhu cầu cơ bản của người dùng, Mang tính chất tham khảo là chủyếu, em sẽ cố gắng tiếp tục điều chỉnh trong thời gian sắp tới
1.4 Lý do chọn đề tài
Nhịp sống hiện đại bận rộn dẫn đến những thay đổi đáng kể trong thói quen
ăn uống của nhiều người, thay vì nấu nướng, hay là ra quan thì họ chọn giải phápgiao hàng tận nơi Những bữa ăn tiện lợi nhanh chóng đang là sự lựa chọn củanhiều người Tại Việt Nam đã và đang sử dụng các dịch vụ giao đồ ăn nhanh Thờigian chủ yếu tập trung vào các bữa trưa, ăn tối trong tuần.sd
1.5 Sự khác biệt
Em đưa ra sản phẩm ứng dụng mà được tìm hiểu, chọn lọc từ nhữngnhững cái hay cái mới của các ứng dụng đã có và những yếu tố mà kháchhàng mong muốn để đưa ra một ứng dụng có thể nói là hoàn toàn khác biệtvới và đáp ứng các nhu cầu mà những nơi khác chưa thực hiện được Đặcbiệt, đây là ứng dụng được tạo ra với mục đích phi thương mại
Trang 111.6 Tổng quan
Với những nội dung trên em bước đầu đã tạo ra được ứng dụng có các phần sau:
- Trang chủ: Nơi giới thiệu chung và tổng quan về ứng dụng
- Trang tìm kiếm: Đưa ra thông tin các món ăn, thức uống, người dùng có thểlựa chọn, tìm kiếm các món ăn theo mức giá, danh mục một cách nhanh chóng
- Trang thông tin món ăn, đồ uống: Là trang cung cấp đầy đủ thông tin về sản phẩm mà khách hàng lựa chọn như giá, chất lượng, các món tương tự
- Trang lịch sử đặt hàng: Là trang sẽ đưa ra các chi tiết đơn chờ duyệt, đơn đang giao, đơn hoàn thành và đơn hủy
- Trang giỏ hàng: Là trang quản lý giỏ hàng của khách hàng, thêm số lượng, xóa, nhập mã giảm giá
- Trang đặt món: Là trang để điền thông tin, đưa ra các yêu cầu, thanh toán vàxác nhận đặt món với nhiều phương thức thanh toán khác nhau như là chuyển khoảnngân hàng, quét mã QR-Pay, sử dụng thẻ ATM, thẻ Visa, Master Card, trả sau
2
Trang 12CHƯƠNG 2: KIẾN THỨC TỔNG QUAN
2.1 Cơ sở lý luận thực tiễn
2.1.1 Ứng dụng di động là gì
Ứng dụng di động hay còn được biết đến với cái tên App mobile, cóthể được xem như các chương trình phần mềm được thiết kế tương thích trêntừng hệ điều hành khác nhau Ứng dụng được tạo ra nhằm phục vụ các nhucầu của con người như: giải trí, mua sắm hay xem tin tức Xã hội ngày càngphát triển, cùng với đó là lượng người sử dụng điện thoại di động tăng lênđáng kể Nắm bắt được tình hình đó, các công ty chuyênvề lĩnh vực côngnghệ tập trung phát triển về mảng này nhiều hơn để thỏa mãn nhu cầu sửdụng của khách hàng Các ứng dụng mobile còn được áp dụng vàocác ngànhnghề như: thương mại điện tử, lĩnh vực làm đẹp, giáo dục, buôn bán và tronghoạt động vận chuyển Mỗi hệ điều hành sẽ có riêng một ngôn ngữ để viếtcác chương trình Khi sử dụng đúng loại ngôn ngữ lập trình của nó thì cácứng dụng mới có thể hoạt động tốt được
Ngôn ngữ lập trình cho Android bao gồm: Java, Kotlin
Đối với hệ điều hành IOS, sử dụng ngôn ngữ lập trình Swift, Objective-C
Hình 1: Các ngôn ngữ tạo nên ứng dụng di
động 2.1.2 Lợi ích của ứng dụng di động
Ứng dụng di động là một phần không thể thiếu trong cuộc sống hiện đại, chúng mang lại rất nhiều lợi ích như:
Trang 13Tiện lợi: Bất cứ ai cũng có thể sử dụng ứng dụng di động bất cứ khi nào cần thiết, không cần phải sử dụng máy tính hoặc điện thoại cổ điển.Tăng cường khả năng kết nối: Ứng dụng di động cho phép bạn kết nối vớinhiều người từ khắp nơi trên thế giới, đồng thời cung cấp cho bạn các công cụ để trao đổi thông tin và tương tác.
Nâng cao hiệu suất làm việc: Nhiều ứng dụng di động được thiết kế để giúp người dùng quản lý thời gian và công việc của họ Chúng cũng cung cấp các công cụ để theo dõi tiến độ và đạt được các mục tiêu
Tăng cường giải trí: Ứng dụng di động mang đến rất nhiều lựa chọn giải trí như chơi game, nghe nhạc, xem phim và đọc sách, tất cả chỉ trong một chiếc điện thoại
Tiết kiệm thời gian: Việc sử dụng ứng dụng di động giúp tiết kiệm thời gian và công sức của người dùng trong việc tìm kiếm thông tin và thực hiện các giao dịch trực tuyến
Tăng cường an ninh: Nhiều ứng dụng di động được thiết kế để đảm bảo tính bảo mật và an toàn cho người dùng Chúng cung cấp các tính năng đểbảo vệ thông tin cá nhân của người dùng và ngăn chặn các hoạt động gianlận
Tóm lại, ứng dụng di động có rất nhiều lợi ích và đã trở thành một phầnkhông thể thiếu trong cuộc sống của chúng ta
2.1.3 Tổng quan về XAMPP
Phần mềm Xampp là một trong những phần mềm được nhiều lập trìnhviên sử dụng để thiết lập website theo ngôn ngữ PHP XAMPP có công dụngthiết lập web server có cài đặt sẵn các công cụ như PHP, Apache, MySQL…Xampp sở hữu thiết kế giao diện thân thiện với người dùng, cho phép các lậptrình viên có thể đóng mở hoặc reboot các tính năng của server mọi lúc.Ngoài ra, Xampp cũng được xây dựng theo source code mở Đánh giá mộtcách tổng thể, Xampp được đánh giá là một trong những phần mềm trọng yếutrong việc xây dựng website dành cho các lập trình viên PHP Xampp cài đặtcác thành tố trọng yếu, hỗ trợ lẫn nhau bao gồm:
Trang 14PHP (thiết lập nền tảng để các tập tin script *.php hoạt
động) MySql (hệ quản trị dữ liệu)
Hình 3: Cơ sở dữ liệu Firebase
Hoạt động và chức năng hiện tại của Firebase:
Firebase Authentication
Trang 15Hoạt động nổi trội nhất của Firebase chính là xây dựng những bước xácdụng người dùng thông qua Email, Facebook, Twitter, GitHub hay Google Ngoài
ra, hoạt động Firebase Authentication cũng hỗ trợ xác thực nặc danh cho nhữngứng dụng Hoạt động xác thực của Firebase có thể giúp cho thông tin cá nhân củanhững người sử dụng được an toàn hơn Điều này cũng đảm bảo tài khoản và cácthông tin cá nhân của người dùng không bị đánh cắp
Firebase Hosting
Cách thức hoạt động tiếp theo được nhắc đến là Firebase Hosting Đây
là một hoạt động được phân phối thông qua tiêu chuẩn công nghệ bảo mậtSSl từ hệ thống mạng CDN
CDN chính là cụm từ viết tắt của Content Delivery Network chính làmột mạng lưới máy chủ giúp lưu giữ lại các bản sao của các nội dung tĩnh,Những nội dung tĩnh này nằm ở bên trong website và trực tiếp phân phối đếncác máy chủ PoP khác Mạng lưới của máy chủ CDN được thiết đặt ở khắpnơi trên thế giới Từ máy chủ Pop – Points of Presence, nguồn dữ liệu sẽđược gửi đi đến những người dùng cuối cùng
Firebase Realtime Database
Firebase Realtime Database có dạng một JSON đã được đồng bộ thờigian đến với tất cả các kết nối client Để có được hoạt động này thì các lậptrình viên cần phải đăng ký tài khoản ở trên Firebase Dữ liệu ở trongdatabase sẽ tự động cập nhật một cách liên tục khi phát triển ứng dụng Saukhi đã được cập nhật thì những dữ liệu này sẽ được truyền tải thông qua cáckết nối SSl có 2048 bit
2.1.5 Room Database
- Giới thiệu:
Room database được phát triển và cải tiến từ sqlite Room database giúp đơn giản hoá việc code, và giảm thiểu các công đoạn liên quan đến cơ sở dữ liệu Bản
Trang 16chất Room database là abstract layer gồm cơ sở dữ liệu chuẩn SQLiteđượcAndroid thông qua với 3 thành phần chính là: Database, DAO (Data AccessObject) và entity Mỗi thành phần đều có nhiệm vụ và chức năng riêng.
- Đặc điểm:
Framework chính (Sqlite Database) cung cấp các built-in support chocác trườnghợp làm việc với các nội dung SQL thô Mặc dù các API này khámạnh mẽ nhưng chúnglại tương đối low-level và yêu cầu khá nhiều thời gian
và nỗ lực để sử dụng: Không có xác thực các câu truy vấn SQL ở thời điểmcompile-time Khi data graphthay đổi thì dev sẽ phải cập nhật lại các câu truyvấn SQL thủ công Việc này khá mất thờigian và xác suất gặp lỗi trong quátrình khá lớn
- Dao (Data Access Objects)
Đây là component đại diện cho lớp hoặc interface như một đối tượngtruy cập dữ liệu (DAO) DAO là thành phần chính của Room là chịu tráchnhiệm trong việc địnhnghĩa các phương thức truy cập CSDL Các lớp đượcchú thích với @Database phải chứa một phương thức trừu tượng có số lượngđối số truyền vào là 0 và đối tượng trả về là đốitượng của lớp được chú thíchbởi @Dao Khi code được sinh ra ở thời điểm biên dịch thì Room sẽ tạo mộtimplementation của class này
Ngôn ngữ lập trình này được phát hành năm 2011 và năm 2017, Google đãtuyên bố sẽ ưu tiên hỗ trợ hàng đầu cho Kotlin
Trang 17Lập trình Android bằng Java
Được ra mắt từ sớm, Java trở thành ngôn ngữ phổ biến nhất trong lậptrình Android Bạn hoàn toàn có thể sử dụng Android Studio trong giai đoạnlập trình
Android SDK sẽ được tự động cài đặt trong bước cuối cùng của quá trình càiđặt chương trình Google khuyến khích cộng đồng Android sử dụng AndroidStudio khi lập trình bằng Java
Lập trình Android bằng C++
C++ là một ngôn ngữ low- level, tương thích với phần cứng Việc lậptrình bằng C++ sẽ giúp bạn tốn ít tài nguyên phần cứng hơn Hiệu suất đượcnâng cao và chương trình của bạn sẽ chạy nhanh hơn
Lập trình Android bằng Python
Nếu bạn là người mới thì Python là sự lựa chọn dành cho bạn Ngônngữ này sẽ không yêu cầu bạn cài đặt thêm quá nhiều công cụ và đơn giảncác bước lập trình của bạn
Việc chạy thử cũng trở nên dễ dàng hơn khi bạn có thể chạy thử ngay trựctiếp trên thiết bị Android của mình Khi đã làm quen với ngôn ngữ lập trìnhPython, bạn hoàn toàn có thể tự thiết kế cho bản thân một phiên bản APKhoàn chỉnh
Lập trình Android bằng C#
Được phát triển bởi Microsoft, C# là một ngôn ngữ lập trình hướngđối tượng đa năng Các ứng dụng trong Windows truyền thống, mã nguồncủa chương trình được dịch trực tiếp thành mã thực thi của hệ điều hành.Được ra đời từ những năm 2000, C# trở thành thứ ngôn ngữ lập trình đơngiản với khoảng 80 từ khóa và một hệ thống dữ liệu được dựng sẵn
Vì là một ngôn ngữ đơn giản, C# cũng tồn tại một số nhược điểm như: Chỉchạy trên nền Windows và có cài NET Framework, thao tác đối với phầncứng yếu, phần nhiều phụ thuộc vào Windows
Trang 18Lập trình Android bằng Draft
Đây là ngôn ngữ lập trình đơn giản được kế thừa và phát triển trên các nềntảng ngôn ngữ C++, C# Ít được phổ biến hơn nhưng với những tính năng ưuviệt của Draft rất đáng để bạn tìm hiểu
Lập trình Android bằng Lua
Lua – Theo tiếng Bồ Đào Nha còn có nghĩa là mặt trăng Ngôn ngữ lập trìnhnày có đặc điểm nhỏ gọn, đa nền tảng và không phụ thuộc vào phần cứng.Vậy nên Lua có cấu trúc linh động, ít dư thừa dễ dàng sử dụng và test
2.2.2 Tổng quan về IDE Android Studio
Android Studio là IDE chính thức được sử dụng trong phát triển ứngdụng Android dựa trên IntelliJ IDEA Chức năng chính của Android Studio làcung cấp các giao diện giúp người dùng có thể tạo các ứng dụng và xử lý cáccông cụ file phức tạp sau hậu trường Ngôn ngữ lập trình được sử dụng trongAndroid Studio là Java và nó sẽ được cài đặt sẵn trên thiết bị của bạn.Khi sử dụng Android Studio thì bạn chỉ cần viết, chỉnh sửa và lưutrữchúng trên các dự án của mình và các file nằm trong dự án đó Đồngthời,Android Studio còn cung cấp quyền truy cập vào Android SDK
Ngoài ra, bạn có thể xem Android Studio là đuôi cho code Java chophép nó chạy trơn tru trên các thiết bị Android rồi tận dụng được lợi thế củaphần cứng gốc Bạn chỉ cần sử dụng ngôn ngữ lập trình Java để có thể viếtchương trình, khi đó Android SDK sẽ có nhiệm vụ kết nối các phần này lạivới nhau
Khi đó, Android Studio sẽ kích hoạt để thực hiện chạy code vàthôngqua trình giả lập hoặc dựa vào bất kỳ phần cứng giúp kết nối với thiết bị Sau
đó, bạn có thể gỡ rối cho chương trình của mình ngay khi nó chạy và nhậnphản hồi giúp giải thích các sự cố,
Trang 19Cho đến hiện nay, Google đã và đang rất nỗ lực để giúp cho AndroidStudio sẽ trở nên mạnh mẽ và hữu ích hơn Khi bạn gõ code, nó sẽ giúp bạncung cấp danh sách gợi ý hoàn thành để giúp người dùng cóthể hoàn thiệnđược dòng code đó Đây là một trong những chức năng rất hữu ích đề phòngcho trường hợp người dùng không nhớ chính xác cú pháp giúp bạn tiết kiệmthời gian hiệu quả hơn.
Hình 4: Logo IDE Android Studio
Trang 20CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1 Use case diagram
+ Actor người dùng: bao gồm các use case như đăng ký, tìm kiếm, xem sảnphẩm, xem lịch sử đặt hàng, đặt hàng, Khi người dùng muốn thao tác các chức năngtrên ứng dụng thì phải bắt buộc đăng nhập
Hình 5: Usecase diagram