Nội dung chính của đồ án: Quá trình xây dựng website Đặt đồ ăn nhanh: - Thu thập thông tin tài liệu liên quan và khảo sát thực tế.. Trong số đó, việc đặt đồ ăn nhanh trực tuyến đã trở t
Trang 1Đà Nẵng, tháng 01/2024
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ SỐ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI:
WEBSITE ĐẶT ĐỒ ĂN NHANH
Sinh viên thực hiện : Đỗ Huỳnh Ngọc Thế
Trang 2Đà Nẵng, tháng 01/2024
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ SỐ
ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI:
WEBSITE ĐẶT ĐỒ ĂN NHANH
Giảng viên hướng dẫn duyệt
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
Trang 5i
TÓM TẮT
Tên đề tài: Xây dựng website đặt đồ ăn nhanh Sinh viên thực hiện: Đỗ Huỳnh Ngọc Thế MSV: 1911505310162 Lớp: 19T1 Khách vãng lai sau khi truy cập website thì có thể tìm kiếm món ăn theo tên, xem và đăng ký tài khoản thành viên để tiến hành đặt hàng và thanh toán
Khách hàng đã đăng nhập có thể tiến hành đặt hàng, nếu chọn thanh toán trực tiếp thì khách hàng sẽ thanh toán sau khi nhận hàng Ngoài ra khách hàng còn có thể theo dõi tình trạng của đơn hàng đã đặt, xem những đơn hàng đã mua trước đó
Quản trị viên sẽ là người quản trị cao nhất của hệ thống, quản lý tất cả các thông tin của website: danh mục món ăn, thông tin của món ăn, đơn hàng, tài khoản của khách hàng, tài khoản của quản trị viên
Trang 6ii TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
3 Nội dung chính của đồ án:
Quá trình xây dựng website Đặt đồ ăn nhanh: - Thu thập thông tin tài liệu liên quan và khảo sát thực tế - Phân tích thiết kế các chức năng của hệ thống
- Phân tích thiết kế cơ sơ dữ liệu - Thiết kế giao diện cho các chức năng - Xây dựng hệ thống website
- Kiểm thử website - Hoàn thành báo cáo tổng hợp
4 Các sản phẩm dự kiến:
- Website quản lý đặt đồ ăn nhanh - File báo cáo hoàn chỉnh
5 Ngày giao đồ án: 6 Ngày nộp đồ án:
Đà Nẵng, ngày tháng năm 2024
Trang 7iii
LỜI NÓI ĐẦU
Trong thời đại công nghệ thông tin ngày càng phát triển, việc sử dụng Internet để giải quyết các nhu cầu hàng ngày trở nên phổ biến hơn bao giờ hết Trong số đó, việc đặt đồ ăn nhanh trực tuyến đã trở thành một xu hướng phổ biến, đáp ứng nhu cầu về ẩm thực và tiết kiệm thời gian của người dùng
Với mục tiêu tận dụng lợi thế của công nghệ và đáp ứng nhu cầu ngày càng tăng của thị trường đặt đồ ăn nhanh, chúng tôi đã lựa chọn đề tài "Web site đặt đồ ăn nhanh" cho đồ án của em Đồ án này nhằm xây dựng một trang web hiệu quả và tiện lợi cho người dùng để đặt đồ ăn nhanh một cách dễ dàng và nhanh chóng
Báo cáo này sẽ trình bày quá trình nghiên cứu, phân tích, thiết kế và triển khai website đặt đồ ăn nhanh Em đã tập trung vào việc tạo ra một giao diện thân thiện, dễ sử dụng và đáp ứng các yêu cầu đa dạng của người dùng Ngoài ra, chúng tôi cũng xây dựng một hệ thống quản lý đơn hàng và tích hợp thanh toán trực tuyến để đảm bảo quá trình giao dịch được diễn ra một cách thuận lợi và an toàn
Báo cáo cũng sẽ đề cập đến các thách thức và khó khăn gặp phải trong quá trình phát triển, cũng như các giải pháp mà chúng tôi đã áp dụng để vượt qua những khó khăn đó Em cũng sẽ trình bày kết quả đạt được và các hướng phát triển tiềm năng cho website trong tương lai
Em hy vọng rằng báo cáo này sẽ mang lại thông tin hữu ích và cung cấp cái nhìn tổng quan về quá trình phát triển một trang web đặt đồ ăn nhanh Chúng tôi xin chân thành cảm ơn sự hỗ trợ và đóng góp của Ban giám hiệu, giáo viên hướng dẫn và các bạn đồng nghiệp trong suốt quá trình thực hiện đồ án này
Em xin chân thành cảm ơn!
Trang 8iv
LỜI CAM ĐOAN
Em xin cam đoan đồ án “Xây dựng website Đặt đồ ăn nhanh” là một công trình
nghiên cứu độc lập dưới sự hướng dẫn của giảng viên ThS Đỗ Phú Huy Ngoài ra không có bất cứ sự sao chép nào của người khác Đề tài, nội dung báo cáo đồ án là sản phẩm mà em đã nỗ lực nghiên cứu trong quá trình học tập tại trường Các kết quả trình bày trong báo cáo là hoàn toàn trung thực, em xin chịu hoàn toàn trách nhiệm, kỷ luật của trưởng bộ môn và nhà trường đề ra nếu như có vấn đề xảy ra
Sinh viên thực hiện
Đỗ Huỳnh Ngọc Thế
Trang 92 Mục tiêu và nhiệm vụ nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học và thực tiễn 2
6 Giải pháp công nghệ 3
7 Cấu trúc của đồ án tốt nghiệp 3
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 Tổng quan về ngôn ngữ lập trình 4
1.1.1 HTML 4
1.1.2 CSS 4
1.1.3 Java 5
1.2 Hệ quản trị cơ sở dữ liệu MySQL 6
1.3 Framework và thư viện hỗ trợ 7
1.3.1 Giới thiệu Spring Framework 7
1.3.2 Thư viện Thymeleaf 8
1.3.3 Thư viện Bootstrap 9
1.4 Công cụ hỗ trợ xây dựng hệ thống 11
1.4.1 Interlij 11
1.5 Lý thuyết xây dựng website 12
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 14
Trang 102.5.1.2 Xem thông tin món ăn 16
2.5.1.3 Đăng ký tài khoản thành viên 17
2.5.2 Khách hàng 18
2.5.2.1 Đăng nhập trang người dùng 18
2.5.2.2 Cập nhật thông tin tài khoản 18
2.5.3.4 Quản lý tài khoản khách hàng 22
2.6 Thiết kế form, bảng cơ sở dữ liệu 23
2.6.1 Khách hàng 23
2.6.1.1 Đăng ký tài khoản 23
2.6.1.2 Cập nhật thông tin tài khoản 24
2.6.1.3 Cập nhật giỏ hàng 25
2.6.2 Quản trị viên 26
2.6.2.1 Thêm mới danh mục món ăn 26
2.6.2.2 Sửa danh mục hàng hoá 27
Trang 11vii
2.6.2.8 Sửa thông tin nhân viên 31
2.6.2.9 Danh sách nhân viên 32
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH 33
3.1 Giao diện người dùng (Khách vãng lai và Khách hàng) 33
3.1.1 Giao diện trang chủ khi chưa đăng nhập 33
3.1.2 Giao diện đăng nhập tài khoản 33
3.1.3 Giao diện trang chủ sau khi đăng nhập 34
3.1.7 Giao diện thông tin cá nhân 34
3.1.8 Giao diện giỏ hàng 35
3.2 Giao diện trang quản trị 35
3.2.1 Giao diện chính của trang quản trị 35
3.2.2 Giao diện quản lý thông tin hàng hoá 36
3.2.3 Giao diện quản lý thành viên 36
3.2.4 Giao diện quản lý nhân viên 36
3.1.5 Giao diện quản lí đơn hàng 37
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 38
TÀI LIỆU THAM KHẢO 39
Trang 12viii
DANH MỤC BẢNG BIỂU
Bảng 2 1 Kịch bản cho use case tìm kiếm món ăn 16
Bảng 2 2 Kịch bản cho use case xem thông tin món ăn 17
Bảng 2 3 Kịch bản cho use case đăng ký tài khoản thành viên 18
Bảng 2 4 Kịch bản cho use case đăng nhập trang người dùng 18
Bảng 2 5 Kịch bản cho use case cập nhật thông tin tài khoản 19
Bảng 2 6 Kịch bản cho use case đặt hàng 20
Bảng 2 7 Kịch bản cho use case đăng nhập trang quản trị 20
Bảng 2 8 Kịch bản cho use case đăng nhập 21
Bảng 2 9 Kịch bản cho use case quản lí đơn hàng 21
Bảng 2 10 Kịch bản cho use case quản lý tài khoản khách hàng 22
Trang 13Hình 1.8 Ảnh minh họa Interlij 12
Hình 1 9 Ảnh minh họa mô hình MVC 13
Hình 2 1 Cơ sở dữ liệu 15
Hình 2 2 Giao diện đăng ký tài khoản 23
Hình 2 3 Giao diện cập nhật thông tin tài khoản 24
Hình 2 4 Giao diện giỏ hàng 25
Hình 2 5 Giao diện thêm mới món ăn 26
Hình 2 6 Giao diện sửa món ăn 27
Hình 2 7 Giao diện danh sách thức uống 29
Hình 2 8 Giao diện danh sách món ăn 29
Hình 2 9 Giao diện thêm mới thành viên 30
Hình 2 10 Giao diện sửa thông tin thành viên 29
Hình 2 11 Giao diện danh sách thành viên 31
Hình 2 12 Giao diện thêm mới nhân viên 31
Hình 2 11 Giao diện sửa thông tin thành viên 31
Hình 2 12 Giao diện danh sách nhân viên 31
Trang 14x
Hình 3 1 Giao diện trang chủ khi chưa đăng nhập 33
Hình 3 2 Giao diện đăng nhập tài khoản 33
Hình 3 3 Giao diện trang chủ sau khi đăng nhập 34
Hình 3 4 Giao diện trang cá nhân 34
Hình 3 5 Giao diện chi tiết đơn hàng 35
Hình 3 6 Giao diện chính trang quản trị 35
Hình 3 7 Giao diện quản lý thông tin hàng hoá 36
Hình 3 8 Giao diện quản lý thành viên 36
Hình 3 9 Giao diện quản lý nhân viên 37
Hình 3 10 Giao diện quản lý đơn hàng 37
Trang 15xi
DANH MỤC CHỮ VIẾT TẮT, TIẾNG ANH
1 HTML HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản
2 CSS Cascading Style Sheets Ngôn ngữ tạo phong cách cho
website
3 W3C World Wide Web Consortium
Tổ chức tiêu chuẩn quốc tế chính cho World Wide Web
4 RDBMS Relational Database
Trang 16Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 1
MỞ ĐẦU
1 Lý do chọn đề tài
Với 5 lí do sau: - Xu hướng đặt đồ ăn trực tuyến: Trong thời đại số hóa, việc đặt đồ ăn qua
Internet đã trở nên phổ biến và thuận tiện hơn bao giờ hết Người tiêu dùng ngày càng tìm kiếm sự tiện lợi và tốc độ trong việc đặt đồ ăn, điều này tạo cơ hội kinh doanh lớn cho các trang web đặt đồ ăn nhanh
- Tính cạnh tranh cao: Thị trường đặt đồ ăn nhanh đang trở nên cạnh tranh và đòi hỏi sự sáng tạo và khác biệt Xây dựng một website đặt đồ ăn nhanh có thể giúp khách hàng dễ dàng tìm kiếm và đặt món ăn từ nhiều nhà hàng khác nhau, cung cấp lợi ích lớn cho người sử dụng và giúp doanh nghiệp tiếp cận khách hàng rộng lớn
- Tiềm năng tăng trưởng và lợi nhuận: Ngành công nghiệp đồ ăn nhanh luôn có nhu cầu lớn và tiềm năng tăng trưởng cao Bằng cách xây dựng một website đặt đồ ăn nhanh hiệu quả, có thể thu hút một lượng lớn khách hàng và tăng doanh số bán hàng, từ đó mang lại lợi nhuận cao
- Kỹ năng lập trình và phát triển web: Đề tài này cung cấp cơ hội để nghiên cứu và áp dụng các kỹ năng lập trình và phát triển web, như thiết kế giao diện, quản lý cơ sở dữ liệu, tích hợp thanh toán trực tuyến và quản lý đơn hàng Điều này không chỉ làm mở rộng kiến thức và kỹ năng cá nhân mà còn tạo ra tiềm năng phát triển sự nghiệp trong lĩnh vực công nghệ thông tin
- Tương tác với khách hàng: Xây dựng một website đặt đồ ăn nhanh cung cấp cơ hội tương tác với khách hàng thông qua các chức năng như đánh giá, nhận xét và phản hồi Điều này giúp cải thiện chất lượng dịch vụ, tạo niềm tin và tăng sự hài lòng của khách hàng
2 Mục tiêu và nhiệm vụ nghiên cứu
- Mục tiêu: Xây dựng giao diện người dùng thân thiện và dễ sử dụng Đáp ứng nhu cầu đa dạng của người dùng bằng việc cung cấp danh sách đa dạng các món ăn
Trang 17Xây dựng website đặt đồ ăn nhanh
3 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: + Khách hàng là những người thường xuyên đặt đồ ăn
+ Quản lý và nhân viên + Tài liệu tham khảo - Phạm vi nghiên cứu:
+ Website này có thể được ứng dụng cho các cửa hàng có quy mô và hình thức hoạt động nghiệp vụ nhỏ
+ Đề tài xây dựng website đặt đồ ăn nhanh + Lĩnh vực thiết kế website
+ Hoạt động bán và quản lí đồ ăn
4 Phương pháp nghiên cứu
- Tham khảo các website đặt đồ ăn nhanh trên mạng như now,… - Khảo sát thực tế
- Tìm kiếm tài liệu trên internet có liên quan đến nội dung nghiên cứu - Tìm hiểu về công cụ hỗ trợ lập trình và cách sử dụng
- Thu tập tài liệu liên quan đên nghiệp vụ quản lý website đặt đồ ăn nhanh
5 Ý nghĩa khoa học và thực tiễn
a) Ý nghĩa khoa học của đề tài - Giúp sinh viên bổ sung kiến thức để bắt đầu trên con đường trở thành kỹ sư lập
trình giỏi - Rèn luyện kỹ năng phân tích và thiết kế dự án
b) Ý nghĩa thực tiễn của đề tài Qua việc xây dựng website này, em có thể áp dụng những kiến thức trong quá trình học tập và trao dồi sự hiểu biết về các kiến thức như :
- Kiến thức về ngôn ngữ JAVA
Trang 18Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 3 - Kiến thức về Spring Framework
- Kiến thức thiết kế website với HTML, CSS, Javascript… - Phát huy tính sáng tạo và cách làm việc độc lập cho mình
6 Giải pháp công nghệ
- Thiết kế cơ sở dữ liệu, sơ đồ usecase, sơ đồ hoạt động: StarUML - Hỗ trợ soạn thảo mã nguồn: Interlij
- Ngôn ngữ lập trình: + Backend: JAVA (Spring Framework) + Frontend: HTML, CSS, JavaScript - Thư viện: Spring Framework, Bootstrap 4 - Hệ quản trị CSDL: MySQL
7 Cấu trúc của đồ án tốt nghiệp
Bài báo cáo ngoài các nội dung gồm phần mở đầu và phần kết thúc thì bố cục gồm có 3 chương:
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Nêu các cơ sở lý thuyết sẽ áp dụng trong hệ thống: ngôn ngữ HTML, CSS, JavaScript, ngôn ngữ lập trình JAVA, hệ quản trị cơ sở dữ liệu MySQL, thư viện Thymeleaf,
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Trình bày các sơ đồ use case, kịch bản cho các use case, sơ đồ ERD, sơ đồ hoạt động của các chức năng trong hệ thống Từ những phân tích ở trên, tiến hành thiết kế cơ sở dữ liệu cho hệ thống sẽ triển khai
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH
Từ những phân tích và thiết kế về hệ thống ở trên, áp dụng xây dựng các chức năng hệ thống Trình bày giao diện của phần mềm triển khai
Trang 19Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 4
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về ngôn ngữ lập trình 1.1.1 HTML
HTML là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web với các mẫu thông tin được trình bày trên World Wide Web Cùng với CSS và Javascript, HTML tạo ra bộ ba nền tảng kỹ thuật cho World Wide Web
HTML được định nghĩa như là một ứng dụng đơn giản của SGML và được sử dụng trong các tổ chức cần đến các yêu cầu xuất bản phức tạp HTML đã trở thành một chuẩn Internet do tổ chức World Wide Web Consortium (W3C) duy trì Phiên bản chính thức mới nhất của HTML và HTML 4.01 (1999) Sau đó, các nhà phát triển đã thay thế nó bằng XHTML Hiện nay, HTML đang được phát triển tiếp với phiên bản HTML5 hứa hẹn mang lại diện mạo mới cho trang Web
CSS được sử dụng trong Website là công nghệ được phát triển bởi W3C, được dùng để phát triển Front-end
Trang 20Xây dựng website đặt đồ ăn nhanh
Hình 1.3 Hình ảnh Java
Trang 21Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 6
1.2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS) hoạt động theo mô hình client-server RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập cơ sở dữ liệu trên internet
Hình 1.4 Icon MySQL
Trang 22Xây dựng website đặt đồ ăn nhanh
Một trong những đặc điểm nổi bật của Spring Boot là khả năng tự cấu hình tự động (auto-configuration), giúp giảm bớt công việc cấu hình và mở rộng ứng dụng Spring Boot tích hợp sẵn các thư viện và cấu hình mặc định cho các công nghệ phổ biến như Spring MVC, Spring Data, Spring Security, Hibernate, và nhiều hơn nữa Điều này giúp giảm thiểu việc cấu hình thủ công và giúp lập trình viên tập trung vào việc phát triển logic kinh doanh chính của ứng dụng
Spring Boot cũng cung cấp một hệ thống quản lý phụ thuộc (dependency management) thông qua Spring Boot Starter Starter là các module đã được cấu hình trước và chứa tất cả các thư viện cần thiết để sử dụng một công nghệ cụ thể Việc sử dụng Starter giúp giảm bớt công việc phải quản lý các phụ thuộc và đảm bảo rằng các phiên bản thư viện tương thích với nhau
Spring Boot cung cấp các công cụ mạnh mẽ để phát triển và kiểm thử ứng dụng, bao gồm hỗ trợ tích hợp cho các framework kiểm thử như JUnit và Mockito Nó cũng hỗ trợ việc tạo và quản lý các bộ công cụ phát triển như Maven và Gradle
Với Spring Boot, việc xây dựng các ứng dụng Java trở nên dễ dàng và nhanh chóng Nó cho phép lập trình viên tập trung vào việc phát triển chức năng và logic kinh doanh của ứng dụng mà không cần quá nhiều công sức vào việc cấu hình và quản lý phụ thuộc Spring Boot đã trở thành một trong những framework phát triển ứng dụng Java phổ biến và được ưa chuộng trong cộng đồng phát triển phần mềm Java
Hình 1.5 Icon Spring boot
Ưu điểm của Spring:
Trang 23Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 8
- IoC (Inversion of Control): Spring sử dụng nguyên tắc IoC, giúp quản lý các
đối tượng và kiểm soát luồng của chương trình IoC giúp giảm sự phụ thuộc giữa các thành phần, làm cho ứng dụng dễ dàng mở rộng và bảo trì hơn
- Dependency Injection (DI): Spring hỗ trợ DI, cho phép bạn ánh xạ và chuyển
các phụ thuộc giữa các thành phần một cách dễ dàng Điều này làm cho mã nguồn trở nên linh hoạt và dễ đọc, giảm sự rối bời và tăng tính tái sử dụng mã
- AOP (Aspect-Oriented Programming): Spring cung cấp hỗ trợ AOP, giúp
tách rời các quy tắc chung (cross-cutting concerns) như logging, transaction management, security, và nhiều loại khác, từ mã nguồn chính Điều này tạo ra mã nguồn sạch sẽ và dễ bảo trì
- MVC (Model-View-Controller): Spring Framework có một mô hình MVC
linh hoạt, giúp chia nhỏ ứng dụng thành các phần riêng biệt: Model (dữ liệu), View (hiển thị) và Controller (xử lý logic) Điều này tạo ra sự tách biệt giữa giao diện người dùng và logic xử lý, làm cho việc phát triển ứng dụng dễ dàng hơn
- ORM (Object-Relational Mapping): Spring hỗ trợ nhiều cách tiếp cận để
tương tác với cơ sở dữ liệu thông qua ORM Spring Data giúp giảm độ phức tạp của việc làm việc với cơ sở dữ liệu và cung cấp các tiện ích như JPA (Java Persistence API), Hibernate, và MyBatis
- Transaction Management: Spring cung cấp mô hình quản lý giao dịch linh
hoạt, cho phép bạn quản lý giao dịch trong môi trường Java EE hoặc standalone
- Testability: Spring làm cho việc kiểm thử dễ dàng hơn bằng cách hỗ trợ việc
chia nhỏ ứng dụng thành các thành phần độc lập có thể kiểm thử được Nó cũng cung cấp các công cụ hỗ trợ kiểm thử như Spring Test và JUnit
- Đa dạng các module: Spring cung cấp nhiều module khác nhau cho các nhu
cầu khác nhau như Spring Security cho bảo mật, Spring Batch cho xử lý hàng loạt, Spring Integration cho tích hợp, và nhiều module khác nữa
1.3.2 Thư viện Thymeleaf
Thymeleaf là một template engine (máy mẫu) cho phát triển ứng dụng web Java Nó cung cấp cú pháp đơn giản và mạnh mẽ để tạo ra các giao diện người dùng động và tương tác trên máy chủ
Một trong những đặc điểm nổi bật của Thymeleaf là khả năng tích hợp tốt với Spring Framework Nó được thiết kế để làm việc tốt với Spring và hỗ trợ đầy đủ các
Trang 24Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 9 tính năng của Spring như Dependency Injection và Spring Security Thymeleaf có thể sử dụng như một phần của cấu trúc Spring MVC để tạo ra các trang web động
Thymeleaf sử dụng cú pháp dựa trên HTML, giúp làm cho các template dễ đọc và dễ hiểu Nó cung cấp các thuộc tính và các thẻ (tags) đặc biệt để tương tác với dữ liệu và logic trong ứng dụng Với Thymeleaf, bạn có thể thực hiện các tác vụ như hiển thị dữ liệu từ mô hình Java, điều hướng, điều kiện, lặp lại các phần tử, xử lý biểu mẫu, và nhiều hơn nữa
Một điểm mạnh khác của Thymeleaf là khả năng xem trước (preview) template Điều này cho phép bạn xem trước cách dữ liệu sẽ được hiển thị trong template mà không cần triển khai ứng dụng hoàn chỉnh Điều này rất hữu ích trong quá trình phát triển và kiểm tra
Thymeleaf cũng hỗ trợ nhiều tính năng bảo mật như tránh XSS (Cross-Site Scripting) và CSRF (Cross-Site Request Forgery) Nó giúp bảo vệ ứng dụng khỏi các cuộc tấn công thông qua việc xác thực và kiểm tra dữ liệu đầu vào
Với tính năng linh hoạt và tích hợp tốt với Spring Framework, Thymeleaf đã trở thành một lựa chọn phổ biến cho việc phát triển giao diện người dùng trong các ứng dụng web Java Nó giúp đơn giản hóa việc tạo ra giao diện động và tạo điểm giao tiếp mạnh mẽ giữa lập trình viên và nhà thiết kế giao diện
Hình 1.6 Icon Thymeleaf
1.3.3 Thư viện Bootstrap
Bootstrap là 1 framework HTML, CSS, và JavaScript cho phép người dùng dễ dàng thiết kế website theo 1 chuẩn nhất định, tạo các website thân thiện với các thiết bị cầm tay như mobile, ipad, tablet,
Trang 25Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 10
Bootstrap là một bộ sưu tập miễn phí của các mã nguồn mở và công cụ dùng để tạo ra một mẫu webiste hoàn chỉnh Với các thuộc tính về giao diện được quy định sẵn như kích thước, màu sắc, độ cao, độ rộng…, các designer có thể sáng tạo nhiều sản phẩm mới mẻ nhưng vẫn tiết kiệm thời gian khi làm việc với framework này trong quá trình thiết kế giao diện website
Hình 1.7 Icon Bootstrap
Trang 26Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 11
1.4 Công cụ hỗ trợ xây dựng hệ thống 1.4.1 Interlij
IntelliJ IDEA là một môi trường phát triển tích hợp (IDE) mạnh mẽ và phổ biến dành cho phát triển phần mềm Được phát triển bởi JetBrains, IntelliJ IDEA cung cấp nhiều tính năng và công cụ hỗ trợ cho việc phát triển ứng dụng Java, Kotlin, Groovy, Scala và nhiều ngôn ngữ lập trình khác
IntelliJ IDEA có một giao diện người dùng thân thiện và tùy chỉnh, giúp lập trình viên tập trung vào công việc phát triển Nó cung cấp một loạt các tính năng như gợi ý mã thông minh, tự động hoàn thành mã, kiểm tra lỗi cú pháp và lỗi logic, và tạo ra mã đồng thời Nó cũng hỗ trợ tích hợp với các công cụ quản lý phiên bản như Git và SVN, và có khả năng tích hợp với hệ thống build phổ biến như Maven và Gradle
IntelliJ IDEA cung cấp một loạt các công cụ hỗ trợ cho việc kiểm thử và gỡ lỗi ứng dụng Nó cung cấp khả năng chạy và gỡ lỗi ứng dụng trực tiếp từ IDE, cho phép kiểm tra các đoạn mã theo từng bước và giải quyết các lỗi một cách hiệu quả Ngoài ra, IntelliJ IDEA còn cung cấp tính năng kiểm tra và tối ưu hóa mã, giúp tăng hiệu suất và chất lượng của ứng dụng
Một trong những ưu điểm của IntelliJ IDEA là khả năng tích hợp với một số framework phổ biến như Spring, Hibernate, và Android Nó cung cấp các công cụ và tính năng đặc biệt để hỗ trợ phát triển ứng dụng sử dụng các công nghệ này
IntelliJ IDEA có một phiên bản cộng đồng miễn phí (IntelliJ IDEA Community Edition) và một phiên bản trả phí (IntelliJ IDEA Ultimate Edition) với nhiều tính năng mở rộng hơn Dù là phiên bản miễn phí hay phiên bản trả phí, IntelliJ IDEA đều là một lựa chọn phổ biến và mạnh mẽ cho lập trình viên Java và các ngôn ngữ lập trình khác
Trang 27Xây dựng website đặt đồ ăn nhanh
SVTH: Đỗ Huỳnh Ngọc Thế Trang 12
Hình 1.8 Ảnh minh họa Interlij
1.5 Lý thuyết xây dựng website
Mô hình hoạt động MVC (Server Side Rendering): • Người dùng gửi yêu cầu (HTTP Request) qua một trình duyệt web bất kỳ Yêu cầu
này có thể kèm theo những dữ liệu tới Controller xử lý Bộ Routing điều hướng sẽ xác định Controller xử lý
• Khi Controller nhận được yêu cầu, nó sẽ kiểm tra yêu cầu đó có cần dữ liệu từ Model hay không Nếu có sẽ dùng các class/function trong Model sau đó trả ra kết quả Khi đó, Controller cũng sẽ xử lý các giá trị đó và trả ra view để hiển thị Controller sẽ xác định các View tương ứng và hiển thị đúng theo yêu cầu
• Khi View nhận được giá trị từ Controller, chúng sẽ xây dựng các thành phần hiển thị như hình ảnh, thông tin dữ liệu, … rồi trả về GUI content để Controller đưa ra kết quả và hiển thị lên màn hình Browser
• Browser sẽ nhận được giá trị trả về và hiển thị với người dùng và kết thúc quá trình hoạt động