BÁO CÁO ĐỒ ÁN QUẢN LÝ DỊCH VỤ ĐẶT VÉ XE KHÁCH TRÊN NỀN WEB Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng internet, công nghệ thông tin đang ngày càng chinh phục các đỉnh cao. Mạng internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên là một công cụ không thể thiếu trong mọi lĩnh vực cuộc sống. Với internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn và chi phí thấp hơn nhiều so với cách thức truyền thống. Chính điều này, đã thúc đầy sự khai sinh và phát triển của thương mại điện tử và chính phủ điện từ trên khắp thể giới, làm biến đối đáng kể bộ mặt văn hóa, nâng cao chẩt lượng cuộc sống con người. Trong hoạt động sản xuất kinh doanh, giờ đây thương mại điện tử đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp. Đối với một công ty xe khách, việc quảng bá và giới thiệu đến các khách do công ty cung cấp một cách hiệu quả và kịp thời là yếu tố quyết định đến lợi nhuận của doanh nghiệp. Vì vậy, sẽ rất thiếu sót nếu công ty bạn chưa xây dựng một website quảng bá và đặt vé trực tiếp trên website, nhưng song song với đó, là làm sao để có thể quản lý và điều hành website một cách dễ dàng và hiệu quả để thu được kết quả như mong muốn. Đây là vấn đề hết sức cấp thiết cho các doanh nghiệp khác nói chung, nhất là các doanh nghiệp Việt Nam. Với đề tài này tôi xin được trình bày một cách thức quản lý website cho những người quản trị dễ dàng trong việc quản lý, thay đổi, cập nhật thông tin trang web cũng như quản lý hiệu quả khách hàng và đặt vé trên mạng.
Trang 1XÂY DỰNG WEBSITE QUẢN LÝ DỊCH VỤ ĐẶT VÉ XE KHÁCH TRÊN
NỀN WEB
Hà Nội – Năm 2022
Trang 3LỜI CAM ĐOAN
Những nội dung trong khóa luận tốt nghiệp này là thành quả từ sự nghiên cứu
và được thực hiện dưới sự trực tiếp hướng dẫn của giảng viên hướng dẫn ThS PhíThị Hải Yến
Khoá luận được thực hiện hoàn toàn mới, là thành quả của riêng em, khôngsao chép theo bất cứ khóa luận tương tự nào Mọi sự tham khảo sử dụng trong khóaluận đều được trích dẫn các nguồn tài liệu trong báo cáo và danh mục tài liệu thamkhảo
Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, em xin hoàntoàn chịu trách nhiệm
Sinh viên thực hiện
Đỗ Văn Bình
Trang 4LỜI CẢM ƠN
Để hoàn thành được đề tài khóa luận tốt nghiệp này, trước hết em xin gửi lờicảm ơn chân thành nhất đến các cán bộ giảng viên trong Trường Đại học Tàinguyên Môi trường Hà Nội, các cán bộ giảng viên Khoa Công nghệ Thông tin, đãtận tình giảng dạy và truyền đạt kiến thức và luôn quan tâm và tạo điều kiện giúp
em hoàn thành đề tài khóa luận tốt nghiệp này Đồng thời em xin gửi lời cảm ơn đặcbiệt về sự chỉ dạy, hướng dẫn tận tình của ThS Phí Thị Hải Yến đã luôn tận tìnhhướng dẫn, giúp đỡ em trong suốt thời gian thực hiện khóa luận
Em cũng vô cùng biết ơn gia đình và bạn bè, những người đã luôn luôn ở bêncạnh động viên, chia sẻ với em trong suốt thời gian thực đề tài khóa luận tốt nghiệp
“ Xây dựng website quản lý dịch vụ đặt vé xe khách trên nền web ”.
Do kiến thức còn hạn chế, bài báo cáo của em không tránh khỏi những sai sót.Rất mong nhận được những lời góp ý từ quý thầy cô để khóa luận tốt nghiệp của emđược hoàn thiện và giúp em có thêm những kinh nghiệm quý báu
Cuối cùng, em xin kính chúc các thầy cô giảng viên trường Đại học Tàinguyên và Môi trường Hà Nội nói chung, các thầy cô khoa công nghệ thông tin nóiriêng dồi dào sức khỏe và thành công trong sự nghiệp cao quý
Em xin chân thành cảm ơn!
Hà Nội, tháng 6 năm 2022
Sinh viên thực hiện
Bình
Đỗ Văn Bình
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC CHỮ VIẾT TẮT vi
DANH MỤC CÁC BẢNG vii
DANH MỤC HÌNH ẢNH viii
PHẦN MỞ ĐẦU 1
1 Cơ sở lý thuyết 1
2 Tổng quan về đề tài nghiên cứu 2
3 Mục đích nghiên cứu 2
4 Đối tượng nghiên cứu và phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu 3
6 Những đóng góp của báo cáo 3
7 Kết cấu của báo cáo 3
CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN 4
1.1 Lý do chọn đề tài 4
1.2 Công nghệ sử dụng 4
1.2.1 Ngôn ngữ lập trình PHP 4
1.2.2 Framework Laravel 5
1.2.3 Hệ quản trị cơ sở dữ liệu MySQL 9
1.2.4 Sử dụng các thư viện dành cho thiết kế giao diện website 10
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 13
2.1 Phân tích yêu cầu 13
2.2 Xây dựng biểu đồ Use Case 13
2.2.1 Biểu đồ usecase tổng quát 14
2.2.2 Biểu đồ use case đăng nhập 14
2.2.3 Biểu đồ use case tìm kiếm 15
Trang 62.2.4 Biểu đồ usecase quản lý tin tức 16
2.2.5 Biểu đồ usecase quản lý chuyến xe 17
2.2.6 Biểu đồ usecase quản lý lộ trình 18
2.2.7 Biểu đồ usecase quản lý loại xe 19
2.2.8 Biểu đồ usecase quản lý khách hàng 20
2.2.9 Biểu đồ usecase quản lý người dùng 21
2.2.10 Biểu đồ usecase quản lý trạm dừng 22
2.2.11 Biểu đồ usecase xem thông tin 23
2.2.12 Biểu đồ usecase đặt vé – thanh toán 24
2.3 Biểu đồ hoạt động 25
2.3.1 Biểu đồ hoạt động chức năng đăng ký 25
2.3.2 Biểu đồ hoạt động chức năng đăng nhập 25
2.3.3 Biểu đồ hoạt động chức năng thêm 26
2.3.4 Biểu đồ hoạt động chức năng sửa 26
2.3.5 Biểu đồ hoạt động chức năng xóa 27
2.4 Biểu đồ tuần tự 27
2.4.1 Khách hàng đăng kí 27
2.4.2 Khách hàng đăng nhập 28
2.4.3 Khách hàng xem thông tin 28
2.4.4 Khách hàng tìm kiếm chuyến xe 29
2.4.5 Biểu đồ tuần tự chức năng đặt vé 29
2.4.6 Người quản trị quản lý các thông tin 30
2.5 Sơ đồ lớp 31
2.6 Thiết kế cơ sở dữ liệu 32
2.6.1 Bảng user 32
Trang 72.6.2 Bảng type_buses 32
2.6.3 Bảng Coach 33
2.6.4 Bảng Buse 33
2.6.5 Bảng buse_stop 34
2.6.6 Bảng customer 34
2.6.7 Bảng introduce 34
2.6.8 Bảng news 35
2.6.9 Bảng province 35
2.6.10 Bảng order_ticket 36
2.6.11 Bảng route_bus 36
2.6.12 Bảng settings 37
2.7 Sơ đồ liên kết 38
CHƯƠNG 3: XÂY DỰNG WEBSITE QUẢN LÝ DỊCH VỤ 39
ĐẶT VÉ XE KHÁCH 39
3.1 Yêu cầu về cấu hình 39
3.2 Thiết kế giao điện Website 40
3.2.1 Giao diện người dùng 40
3.2.2 Giao diện trang quản lý 46
KẾT LUẬN – HƯỚNG PHÁT TRIỂN 50
1 Kết quả đạt được 50
2 Hướng phát triển 50
TÀI LIỆU THAM KHẢO 51
Trang 8DANH MỤC CÁC CHỮ VIẾT TẮT
MVC Model - View - Controller Mô hình - Hiển thị - Điều khiểnSQL Structured Query Language Ngôn ngữ truy vấn
sẵn, cấu thành nên một bộkhung và các thư viện lập trình
được đóng góiDOM Document Object Model mô hình các đối tượng trong tài
liệu HTMLHTML Hypertext Markup Language Nó giúp người dùng tạo và cấu
trúc các thành phần trong trangweb hoặc ứng dụng, phân chiacác đoạn văn, heading, links,blockquotes,
Trang 9DANH MỤC CÁC BẢNG
Bảng 2.1: Kịch bản cho usecase đăng nhập 15
Bảng 2.2: Kịch bản cho usecase tìm kiếm 16
Bảng 2.3: Kịch bản quản lý tin tức 16
Bảng 2.4: Kịch bản quản lý chuyến xe 17
Bảng 2.5: Kịch bản quản lý lộ trình 18
Bảng 2.6: Kịch bản quản lý loại xe 19
Bảng 2.7: Kịch bản quản lý khách hàng 20
Bảng 2.8: Kịch bản quản lý người dùng 21
Bảng 2.9: Kịch bản quản lý trạm dừng 22
Bảng 2.10: Kịch bản xem thông tin 23
Bảng 2.11: Kịch bản đặt vé – thanh toán 24
Bảng 2.12: Bảng user 32
Bảng 2.13: Bảng type_buses 32
Bảng 2.14: Bảng coach 33
Bảng 2.15: Bảng Buse 33
Bảng 2.16: Bảng buse_stop 34
Bảng 2.17: Bảng customer 34
Bảng 2.18: Bảng giới thiệu 34
Bảng 2.19: Bảng tin tức 35
Bảng 2.20: Bảng province 35
Bảng 2.21: Bảng order_ticket 36
Bảng 2.22: Bảng route_bus 36
Bảng 2.23: Bảng settings 37
Trang 10DANH MỤC HÌNH ẢNH
Hình 1.1 Cách thức hoạt động của PHP 5
Hình 1.2: Mô hình tương tác Model và cơ sở dữ liệu 7
Hình 1.3: Liên kết Route, Controller và View trong Laravel 8
Hình 2.1: Sơ đồ Usecase Tổng quát hệ thống 14
Hình 2.2: Biểu đồ Use case đăng nhập 14
Hình 2.3: Biểu đồ Use case tìm kiếm 15
Hình 2.4: Sơ đồ Use case phân rã quản lý tin tức 16
Hình 2.5: Sơ đồ Use case phân rã quản lý chuyến xe 17
Hình 2.6: Sơ đồ Use case phân rã quản lý lộ trình 18
Hình 2.7: Sơ đồ Use case phân rã quản lý loại xe 19
Hình 2.8: Sơ đồ Use case phân rã quản lý khách hàng 20
Hình 2.9: Sơ đồ Use case phân rã quản lý người dùng 21
Hình 2.10: Sơ đồ Use case phân rã quản lý trạm dừng 22
Hình 2.11: Sơ đồ Use case phân rã xem thông tin 23
Hình 2.12: Sơ đồ Use case phân rã đặt vé – thanh toán 24
Hình 2.13: Biểu đồ hoạt động chức năng đăng ký 25
Hình 2.14: Biểu đồ hoạt động chức năng đăng nhập 25
Hình 2.15: Biểu đồ hoạt động chức năng thêm 26
Hình 2.16: Biểu đồ hoạt động chức năng sửa 26
Hình 2.17: Biểu đồ hoạt động chức năng xóa 27
Hình 2.18: Biểu đồ tuần tự khách hàng đăng kí 27
Hình 2.19: Biểu đồ tuần tự khách hàng đăng nhập 28
Hình 2.20: Khách hàng xem thông tin 28
Trang 11Hình 2.21: Khách hàng tìm kiếm chuyến xe 29
Hình 2.22: Biều đồ tuần tự chức năng đặt vé 29
Hình 2.23: Biểu đồ tuần chức năng quản lý thông tin 30
Hình 2.24: Sơ đồ lớp 31
Hình 2.25: Sơ đồ liên kết 38
Hình 3.1: Giao diện trang chủ 40
Hình 3.2: Giao diện tìm chuyến 41
Hình 3.3: Giao diện chọn chuyến 41
Hình 3.4: Giao diện chi tiết vé 42
Hình 3.5: Giao diện chọn hình thức thanh toán 42
Hình 3.6: Giao diện thông tin vé đã đặt 43
Hình 3.7: Giao diện thông tin khách hàng 43
Hình 3.8: Giao diện đổi thông tin khách hàng 44
Hình 3.9: Giao diện đổi mật khẩu khách hàng 44
Hình 3.10: Giao diện tin tức 45
Hình 3.11: Giao diện trang giới thiệu 45
Hình 3.12: Giao diện trang liên hệ 46
Hình 3.13: Giao diện trang đăng nhập 46
Hình 3.14: Giao diện trang quản lý 47
Hình 3.15: Giao diện trang quản lý đặt vé 47
Hình 3.16: Giao diện trang cấu hình website 48
Hình 3.17: Giao diện trang quản lý tin tức 48
Hình 3.18: Giao diện trang quản lý chuyến xe 49
Trang 12PHẦN MỞ ĐẦU
1 Cơ sở lý thuyết
Ngày nay công nghệ thông tin đã có những bước tiến phát triển mạnh mẽ về cảchiều sâu và chiều rộng Máy tính điện tử giờ đây không còn là thứ quý hiếm màđang ngày càng trở thành một công cụ làm việc và giải trí của con người Nhữngnăm gần đây, việc cập nhật các thông tin cũng như thực hiện các giao dịch quamạng internet ngày càng trở nên phổ biến Và một loại hình kinh doanh qua hiệnnay khá phổ biến đó là buôn bán qua mạng
Hình thức kinh doanh này mang lại rất nhiều lợi ích cho người tiêu dùng cũngnhư nhà cung cấp Phần lớn khách hàng có nhu cầu mua hàng thì phải đến các cửahàng, siêu thị hay các trung tâm thương mại để lựa chọn những mặt hàng hợp vớinhu cầu của minh Công việc này tốn kém nhiều thời gian và chi phí đi lại chongười tiêu dùng, đôi khi khách hàng còn mua phải hàng kém chất lượng Tất cảnhững bất cập đó sẽ được loại bỏ với sự ra đời của website giao dịch qua mạnginternet Khi khách hàng có nhu cầu mua hàng hay đặt trước vé xe, dù ở nhà haycông sở hay bất cứ nơi đâu có mạng internet, khách hàng chỉ cần truy cập vàonhững trang web cần thiết qua mạng là có thể tìm kiếm được những mặt hàng màmình muốn mua, những địa điểm cần đến và hành trình rõ ràng, khách hàng có thểthực hiện các thủ tục được hướng dẫn trên trang web là có thể đáp ứng được yêucầu của mình, phần còn lại là công việc của nhân viên và các nhà quản trị website.Ngoài những lợi ích mà internet mang lại cho người tiêu dùng nó còn giúp chonhà cung cấp phát triển rất nhiều trong việc mở rộng thị trường, giúp thương hiệucủa công ty được nhiều người biết đến, từ đó giảm được rất nhiều chi phí quảng cáocho sản phẩm và rất thuận tiện trong việc quản lý sản phẩm và chăm sóc khách hàngtheo đúng phương trâm đặt ra Để tiếp cận và góp phần đẩy mạnh sự phát triển củathương mại điện tử ở nước ta, em đã tìm hiểu và xây dựng “Website quản lý các
dịch vụ đặt vé xe khách trên nền web”.
Trang 132 Tổng quan về đề tài nghiên cứu
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng internet,công nghệ thông tin đang ngày càng chinh phục các đỉnh cao Mạng internet là mộttrong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên là một công cụ
không thể thiếu trong mọi lĩnh vực cuộc sống.
Với internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn
và chi phí thấp hơn nhiều so với cách thức truyền thống Chính điều này, đã thúcđầy sự khai sinh và phát triển của thương mại điện tử và chính phủ điện từ trên khắpthể giới, làm biến đối đáng kể bộ mặt văn hóa, nâng cao chẩt lượng cuộc sống conngười
Trong hoạt động sản xuất kinh doanh, giờ đây thương mại điện tử đã khẳngđịnh được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp Đối với mộtcông ty xe khách, việc quảng bá và giới thiệu đến các khách do công ty cung cấpmột cách hiệu quả và kịp thời là yếu tố quyết định đến lợi nhuận của doanh nghiệp
Vì vậy, sẽ rất thiếu sót nếu công ty bạn chưa xây dựng một website quảng bá và đặt
vé trực tiếp trên website, nhưng song song với đó, là làm sao để có thể quản lý vàđiều hành website một cách dễ dàng và hiệu quả để thu được kết quả như mongmuốn Đây là vấn đề hết sức cấp thiết cho các doanh nghiệp khác nói chung, nhất làcác doanh nghiệp Việt Nam
Với đề tài này tôi xin được trình bày một cách thức quản lý website cho nhữngngười quản trị dễ dàng trong việc quản lý, thay đổi, cập nhật thông tin trang webcũng như quản lý hiệu quả khách hàng và đặt vé trên mạng
3 Mục đích nghiên cứu
Tìm hiểu về ngôn ngữ PHP
Tìm hiểu về Laravel Framework
Xây dựng một ứng dụng sử dụng Laravel Framework
Nghiên cứu nghiệp vụ quản lý các dich vụ của website đặt vé xe khách
4 Đối tượng nghiên cứu và phạm vi nghiên cứu
Đối tượng nghiên cứu: Người quản lý và khách hàng
Phạm vi nghiên cứu: Các dịch vụ website đặt vé xe khách
Trang 145 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Thu nhập, nghiên cứu các tài liệu về
xây dựng web, nghiệp vụ quản lý, nghiên cứu cứu về HTML5, Bootstrap, Javascript
và Laravel Framework để nghiên cứu xây dựng phần mềm quản lý
- Phương pháp nghiên cứu thực nghiệm: Tiến hành kiểm thử sản phẩm đã
xây dựng để kiểm tra kết quả đạt được và khắc phục các lỗi đưa ra các hướng giảiquyết kịp thời
6 Những đóng góp của báo cáo
Khóa luận hoàn thành sẽ có những đóng góp chủ yếu sau đây:
- Xây dựng hoàn thiện được website có đầy đủ các chức năng phù hợp vớimục đích sử dụng, có độ chính xác cao với giao diện đẹp Dễ dàng cho người sửdụng khi thao tác cập nhật và xử lý thông tin
- Hệ thống hóa những vấn đề lý thuyết cơ bản về PHP
- Một số vấn đề cơ bản về Laravel Framework
7 Kết cấu của báo cáo
CHƯƠNG 1 TỔNG QUAN
- Lý do chọn đề tài
- Tổng quan về ngôn ngữ PHP
- Công nghệ Laravel Framework
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG.
- Mô tả bài toán và phân tích yêu cầu
- Xây dựng biểu đồ Use Case
Trang 15CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN
1.1 Lý do chọn đề tài
Trước đây, việc kinh doanh các dịch vụ đặt vé xe khách chỉ đơn thuần cáccông việc như quản lý thông tin, quản lý đặt vé xe khách, thống kê doanh thu thôngqua giấy tờ và bảng tính excel…Tuy nhiên, đến khi nhu của khách hàng ngày càngtăng thì việc quản lý bằng giấy tờ không còn hiệu quả, việc quản lý sẽ mất nhiềuthời gian và thiếu sót Hệ thống quản lý các dịch vụ đặt vé giúp tiết kiệm rất nhiềuthời gian và công sức cho khách hàng mỗi khi có nhu cầu đi xe khách hay các dịch
vụ liên quan đến xe khách Ngoài ra còn giúp rất nhiều trong việc mở rộng thịtrường, giúp thương hiệu của công ty được nhiều người biết đến, từ đó giảm đượcrất nhiều chi phí quảng cáo cho sản phẩm và rất thuận tiện trong việc quản lý sảnphẩm và chăm sóc khách hàng theo đúng phương trâm đặt ra Khách hàng có thể tracứu thông tin lộ trình cũng như các dịch vụ đặt vé trên website mọi lúc mọi nơi Đểtiếp cận và góp phần đẩy mạnh sự phát triển của thương mại điện tử ở nước ta, em
đã tìm hiểu và xây dựng “XÂY DỰNG WEBSITE QUẢN LÝ DỊCH VỤ ĐẶT VÉ
PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị
cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux(LAMP)
- Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trìnhduyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt
- MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress,Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu
Trang 16- Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho cácwebserver Thông thường các phiên bản được sử dụng nhiều nhất là RedHatEnterprise Linux, Ubuntu
Phương thức hoạt động:
Khi người sử dụng gọi trang PHP, Web Server sẽ triệu gọi PHP Engine đểthông dịch dịch trang PHP và trả kết quả cho người dùng như hình bên dưới
Hình 1.1 Cách thức hoạt động của PHP 1.2.2 Framework Laravel [5]
a) Laravel là gì?
Laravel là một PHP framework mã nguồn mở và miễn phí, được phát triển bởiTaylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếmtrúc model-view-controller (MVC) Những tính năng nổi bật của Laravel bao gồm
cú pháp dễ hiểu – rõ ràng, một hệ thống đóng gói modular và quản lý gói phụ thuộc,nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khácnhau hỗ trợ việc triển khai vào bảo trì ứng dụng
Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tạiGithub
b) Lịch sử phát triển của Laravel
Laravel được Taylor Otwell tạo ra như một giải pháp thay thế choCodeIgniter, cung cấp nhiều tính năng quan trọng hơn như xác thực và phân quyền
Trang 17Tôi cũng không chắc về điều này, nhưng có thể Taylor vốn là một NET developerkhi bắt đầu có nhu cầu làm việc với PHP khoảng vào những năm 2010-2011, đãchọn CodeIgniter khi đó đang là một ngôi sao mới nổi, thậm chí lấn át cả Symfonygạo cội Và Taylor nhanh chóng nhận ra những điểm khiếm khuyết ở CodeIgniter,với tài năng và kiến thức xuất sắc về design-pattern của mình, Taylor quyết định tựmình tạo ra một framework sao cho thật đơn giản, dễ hiểu, hỗ trợ lập trình viên hiệnthực ý tưởng một cách nhanh nhất bằng nhiều tính năng hỗ trợ như Eloquent ORMmạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thế nữa.
c) Thành phần cơ bản trong Laravel [5]
- Route trong Laravel
Mục đích chính của router là định tuyến đến những controller cụ thể nào đó từphía yêu cầu của người sử dụng Đối với những Framework khác thì khi muốn thựchiện một công việc nào đó thường sẽ cần xây dựng một controller để xử lý, nhưngtrong Laravel thì hoàn toàn có thể xử lý dữ liệu ngay trong phần Route Đây chính
là điểm mạnh cũng như điểm khác biệt lớn của Laravel đối với các Frameworkkhác
Cấu trúc Route:
- Các định tuyến trong Laravel 5.5 đều được viết trongroutes/web.php
- Cú pháp: Route:method (‘URI’, ‘function callback’);
Trong đó:
o URI là dạng link trên url
o Function call back: hàm sẽ gọi tới link URI phía trên
o Method: các dạng phương thức cơ bản post, get, put, delete, any
- Các method:
o POST Route: các thao tác lấy từ biểu mẫu (form) như thêm dữ liệu
o GETRoute: dành cho các thao tác truy cập thong thường tương đương vớiyêu cầu cơ bản trong PHP Ví dụ chạy 1 đường dẫn trên URL
o PUT Route: dành cho các thao tác lấy từ biểu mẫu nhưng là cập nhật dữliệu
Trang 18o DELETE Route: dành cho thao tác xóa dữ liệu.
o ANY Route: là sự tổng hợp các thao tác ở trên Trong đó POST và GETđược sử dụng nhiều nhất
- Laravel Model
Hình 1.2: Mô hình tương tác Model và cơ sở dữ liệu
Model là một lớp dữ liệu có cấu trúc giống với bảng trong cơ sở dữ liệu, dùng
để xử lý dữ liệu vào ra trong bảng
Tạo model
- Các Model sẽ được lưu tại mụcApp/
- Tạo một Model: Khởi động Command Prompt (cmd) và trỏ về thư mục gốccủa dự án, gõ lệnh sau để tạo model:
- Tạo một Model và migrate tương ứng với nó
- Kết nối Model tới bảng trong cơ sở dữ liệu
- Laravel Controller
Cấu trúc Controller
- Các Controller sẽ được lưu tại app/Http/Controllers
php artisan make:model NameModel
php artisan make:model NameModel –m
Protected $table = ‘nameTable’;
Trang 19 Tạo Controller
- Tạo Controller với cmd bằng câu lệnh:
php artisan make:controller MyController
Gọi Controller từ Route
- Để gọi một Controller, phải thông qua Route bằng cách khai báo như sau:
}}
Gửi nhận dữ liệu từ Route sang Controller
Truyền tham số id từ Route Nhận dữ liệu bên Controller
- Laravel View (MasterTemplate)
+ Laravel View
Trang 20Hình 1.3: Liên kết Route, Controller và View trong Laravel
View là các tệp tin có đuôi php, chứa mã nguồn html, hiển thị dữ liệu chongười dùng xem và được lưu tại resources/views
Giả sử truyền lên trình duyệt một đường dẫn, trình duyệt sẽ gửi lên router,Route chuyển sang Controller, sau khi Controller xử lý xong, sẽ gọi tệp tinindex.php, đây chính là view Tập tin này chứa các mã nguồn html, css, hoặc các dữliệu mà nhà phát triển ứng dụng muốn hiển thị lên màn hình rồi trả về trình duyệthiển thị cho người dung xem
Truyền tham số sang view
view sẽ kế thừa blade template này bằng cách sử dụng lệnh@extends.
Muốn sử dụng Blade Template thì tên tệp phải có chứa blade đằng trước php
1.2.3 Hệ quản trị cơ sở dữ liệu MySQL [4]
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (RelationalDatabase Management System, viết tắt là RDBMS) hoạt động theo mô hình client-
Trang 21server 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à một trong số các phần mềm RDBMS RDBMS và MySQL thườngđược cho là một vì độ phổ biến quá lớn của MySQL Các ứng dụng web lớnnhất như Facebook, Twitter, YouTube, Google, và Yahoo! đều dùng MySQL chomục đích lưu trữ dữ liệu Kể cả khi ban đầu nó chỉ được dùng rất hạn chế nhưng giờ
nó đã tương thích với nhiều hạ tầng máy tính quan trọng như Linux, macOS,Microsoft Windows, và Ubuntu
1.2.4 Sử dụng các thư viện dành cho thiết kế giao diện website
a) Boostrap CSS Framework [8]
Bootstrap là 1 frame work HTML, CSS, và JavaScript cho phép người dung
dễ dàng thiết kế website theo một chuẩn nhất định, bao gồm typography (kiểu dángvăn bản), forms (biểu mẫu), buttons (nút bấm), tables (bảng biểu), navigation(menu), modals (các phương thức), image carousels (trình chiếu ảnh) và nhiều thứkhác Trong bootstrap có thêm các trình cắm (plugin) Javascript trong nó, giúp tạocác website thân thiện (web responsive) với các thiết bị cầm tay như mobile, ipad,tablet, dễ dàng hơn và nhanh chóng hơn
Trong các phiên bản Laravel 5.x, bootstrap đã được thiết lập sẵn cấu hình, chỉcần tải về các gói (package) là sử dụngđược
Mỗi trang web, khi muốn sử dụng có 2 cách là tải Bootstrap từgetbootstrap.com hoặc thêm từ CDN
b) Thư viện Javascript [9]
JavaScript là một ngôn ngữ dạng script thường được sử dụng cho việc lậptrình web ở phía client, nó tuân theo chuẩn ECMAScript
Một số đặc điểm chính của JavaScript:
- Là một ngôn ngữ linh động, cú pháp dễ sử dụng như các ngôn ngữ khác và
dễ dàng lập trình
- Không hề liên quan tới ngôn ngữ lập trình java
- Được hầu hết các trình duyệt ngày nay hỗ trợ
Trang 22- Là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các
ý niệm nguyên mẫu
- Được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khảnăng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng
- Giống Java, JavaScript có cú pháp tương tự ngôn ngữ lập trình C, nhưng nógần với Self hơn Java
“.js” là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript
c) Thư viện Jquery [6]
JQuery là một thư viện kiểu mới của JavaScript, được tạo bởi John Resig vàonăm 2006 với một phương châm tuyệt vời: Write less, do more - Viết ít hơn, làmnhiều hơn
JQuery làm đơn giản hóa việc truyền tải HTML, xử lý sự kiện, tạo hiệu ứngđộng và tương tác Ajax Với jQuery, khái niệm Rapid Web Development đã khôngcòn quá xa lạ
Một số tính năng quan trọng được hỗ trợ bởi jQuery:
- Thao tác DOM − jQuery giúp dễ dàng lựa chọ các phần tử DOM
để traverse (duyệt) một cách dễ dàng như sử dụng CSS, và chỉnh sửa nội dung củachúng bởi sử dụng phương tiện Selector mã nguồn mở, mà được gọi là Sizzle
- Xử lý sự kiện − jQuery giúp tương tác với người dùng tốt hơn bằng việc xử
lý các sự kiện đa dạng mà không làm cho HTML code rối tung lên với các EventHandler
- Hỗ trợ AJAX − jQuery giúp bạn rất nhiều để phát triển một site giàu tínhnăng và phản hồi tốt bởi sử dụng công nghệ AJAX
- Hiệu ứng − jQuery đi kèm với rất nhiều các hiệu ứng đa dạng và đẹp mắt
mà bạn có thể sử dụng trong các Website của mình
- Gọn nhẹ − jQuery là thư viện gọn nhẹ - nó chỉ có kích cỡ khoảng 19KB(gzipped)
- Được hỗ trợ hầu hết bởi các trình duyệt hiện đại − jQuery được hỗ trợ hầuhết bởi các trình duyệt hiện đại, và làm việc tốt trên IE 6.0+, FF 2.0+, Safari 3.0+,Chrome và Opera 9.0+
Trang 23Cập nhật và hỗ trợ các công nghệ mới nhất − jQuery hỗ trợ CSS3 Selector và
cú pháp XPath cơ bản
Tổng kết chương 1:
Chương 1 trình bày cơ sở lý thuyết về ngôn ngữ lập trình và các công nghệ sửdụng Trên cơ sở lý thuyết này em đã vận dụng kiến thức về Laravel Framework đểxây dựng bài toán quản lý các dịch vụ đặt vé xe khách
Trang 24CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Phân tích yêu cầu
a) Yêu cầu chức năng
Người dùng vào website có thể xem, tìm kiếm thông tin về các lộ trình hiệnhành, các dịch vụ do công ty cung cấp và thông tin về công ty
Khách hàng có thể đặt vé, thanh toán online và các dịch vụ trực tuyến.Website sẽ cập nhật thông tin đặt dịch vụ lên cơ sở dữ liệu và cho phép người quảntrị được phân thao tác công việc sau:
- Tìm kiếm các đơn đặt vé đã xác nhận hay chưa xác nhận.
- Thống kê tình hình đặt vé của từng xe, xem danh sách khách hàng tham gia
các xe đó
- Thay đổi, thêm mới hoặc xóa bỏ thông tin, hình ảnh về các lộ trình, tin
tức… ở các địa điểm khác nhau mà công ty muốn giới thiệu cho khách hàng
- Theo dõi tình hình liên hệ thông qua website của khách hàng, để đáp ứng
kịp thời nhu cầu của họ
b) Yêu cầu phi chức năng
- Website phải có dung lượng không quá lớn, tốc độ xử lý nhanh.
- Công việc tính toán phải thực hiện chính xác, không chấp nhận sai xót.
- Sử dụng mã hóa các thông tin bảo mật của khách hàng.
- Đảm bảo an toàn dữ liệu khi chạy website trực tuyến.
- Giao diện đơn giản, thân thiện, đẹp và dễ nhìn
2.2 Xây dựng biểu đồ Use Case
Xác định Actor:
- Admin: Tác nhân Admin là tác nhân giữ vai trò chính của hệ thống website,
là người điều hành, quản lý và theo dõi mọi hoạt động của hệ thống Tác nhânAdmin có thể thực hiện được tất cả các chức năng có trong hệ thống của quản trịnhư: đăng nhập, quản lý các thông tin liên quan đến các dịch vụ, quản lý kháchhàng, tìm kiếm…
Trang 25- Khách hàng: những người giao tiếp với Website đăng ký hoặc đăng nhậpthông tin với Website Tra cứu thông tin về các dịch vụ, đặt vé, thanh toán
2.2.1 Biểu đồ usecase tổng quát
Hình 2.1: Sơ đồ Usecase Tổng quát hệ thống
2.2.2 Biểu đồ use case đăng nhập
Hình 2.2: Biểu đồ Use case đăng nhập+ Kịch bản:
Trang 26Bảng 2.1: Kịch bản cho usecase đăng nhập
Tiền điều kiện
Người dùng phải có tài khoản(usename vàpassword) để đăng nhập vào hệ thống.Thôngtin về người dùng đã được lưu trong hệ thống
Đảm bảo tối thiểu Hệ thống loại bỏ các thông tin sai về usename,
password và quay lại bước trước
Đảm bảo thành công Người dùng đăng nhập đúng usename,
4 Hệ thống thông báo đã đăng nhập thành công
5 Người dùng thoát khỏi chức năng Dangnhap
Ngoại lệ:
3.a Hệ thống thông báo usename hoặc password không hợp lệ
3.a.1 Hệ thống yêu cầu người dùng đăng nhập lại
3.a.2 Người dùng đăng nhập lại
3.a.3 Hệ thống thông báo đăng nhập thành công
2.2.3 Biểu đồ use case tìm kiếm
Hình 2.3: Biểu đồ Use case tìm kiếm
Trang 27+ Kịch bản:
Bảng 2.2: Kịch bản cho usecase tìm kiếm
Đảm bảo tối thiểu Hệ thống quay lại giao diện trước đó
Đảm bảo thành công Tìm kiếm thành công
Kich hoạt Người dùng chọn chức năng tìm kiếm trên giao diệnChuỗi sự kiện chính:
1 Người dùng chọn chức nằng tìm kiếm
2 Người dùng nhập nơi khởi hành và nơi kết thúc để hệ thống tìm kiếm
3 Hệ thống thông báo đã tìm thấy thông tin tài liệu , xuất ra màn hình
Ngoại lệ:
2.a Người dùng nhập tour không có trong hệ thống
2.a.1 Người dùng điền lại từ khóa hoặc hủy bỏ tìm kiếm
2.2.4 Biểu đồ usecase quản lý tin tức
Hình 2.4: Sơ đồ Use case phân rã quản lý tin tức+ Kịch bản:
Bảng 2.3: Kịch bản quản lý tin tức
Tiền điều kiện Admin đang ở trang quản lý tin tức
Đảm bảo tối thiểu Hệ thống quay lại bước trước
Đảm bảo thành công Quản lý tin tức thành công
Chuỗi sự kiện chính:
Trang 281 Người dùng chọn chức năng quản lý tin tức.
2 Hệ thống hiển thị danh sách đầy đủ tin tức
3 Người dùng chọn các chức năng “Thêm”, “Sửa”, “Xóa”
4 Hệ thống hiển thi các trang tương ứng với các chức năng
5 Người dùng thao tác thêm, sửa, xóa, trên các trang tương ứng với các chứcnăng
6 Hệ thống thông báo thao tác thành công
Ngoại lệ:
6.a Người dùng nhập sai nhập sai thông tin
6.a.1 Người dùng điền lại thông tin
6.a.2 Hệ thống báo thao tác thành công
2.2.5 Biểu đồ usecase quản lý chuyến xe
Hình 2.5: Sơ đồ Use case phân rã quản lý chuyến xe+ Kịch bản:
Bảng 2.4: Kịch bản quản lý chuyến xe
Tiền điều kiện Admin đang ở trang quản lý chuyến xe
Đảm bảo tối thiểu Hệ thống quay lại bước trước
Đảm bảo thành công Quản lý chuyến xe thành công
Chuỗi sự kiện chính:
1 Người dùng chọn chức năng quản lý chuyến xe
2 Hệ thống hiển thị danh sách đầy đủ chuyến xe
Trang 293 Người dùng chọn các chức năng “Thêm”, “Sửa”, “Xóa”.
4 Hệ thống hiển thi các trang tương ứng với các chức năng
5 Người dùng thao tác thêm, sửa, xóa, trên các trang tương ứng với các chứcnăng
6 Hệ thống thông báo thao tác thành công
Ngoại lệ:
6.a Người dùng nhập sai nhập sai thông tin
6.a.1 Người dùng điền lại thông tin
6.a.2 Hệ thống báo thao tác thành công
2.2.6 Biểu đồ usecase quản lý lộ trình
Hình 2.6: Sơ đồ Use case phân rã quản lý lộ trình+ Kịch bản:
Bảng 2.5: Kịch bản quản lý lộ trình
Tiền điều kiện Admin đang ở trang quản lý lộ trình
Đảm bảo tối thiểu Hệ thống quay lại bước trước
Đảm bảo thành công Quản lý tin tức thành công
Chuỗi sự kiện chính:
1 Người dùng chọn chức năng quản lý lộ trình
2 Hệ thống hiển thị danh sách đầy đủ lộ trình
3 Người dùng chọn các chức năng “Thêm”, “Sửa”, “Xóa”
4 Hệ thống hiển thi các trang tương ứng với các chức năng
5 Người dùng thao tác thêm, sửa, xóa, trên các trang tương ứng với các chức
Trang 306 Hệ thống thông báo thao tác thành công
Ngoại lệ:
6.a Người dùng nhập sai nhập sai thông tin
6.a.1 Người dùng điền lại thông tin
6.a.2 Hệ thống báo thao tác thành công
2.2.7 Biểu đồ usecase quản lý loại xe
Hình 2.7: Sơ đồ Use case phân rã quản lý loại xe+ Kịch bản:
Bảng 2.6: Kịch bản quản lý loại xe
Tiền điều kiện Admin đang ở trang quản lý loại xe
Đảm bảo tối thiểu Hệ thống quay lại bước trước
Đảm bảo thành công Quản lý tin tức thành công
Chuỗi sự kiện chính:
1 Người dùng chọn chức năng quản lý loại xe
2 Hệ thống hiển thị danh sách đầy đủ loại xe
3 Người dùng chọn các chức năng “Thêm”, “Sửa”, “Xóa”
4 Hệ thống hiển thi các trang tương ứng với các chức năng
5 Người dùng thao tác thêm, sửa, xóa, trên các trang tương ứng với các chứcnăng
6 Hệ thống thông báo thao tác thành công
Ngoại lệ:
Trang 316.a Người dùng nhập sai nhập sai thông tin.
6.a.1 Người dùng điền lại thông tin
6.a.2 Hệ thống báo thao tác thành công
2.2.8 Biểu đồ usecase quản lý khách hàng
Hình 2.8: Sơ đồ Use case phân rã quản lý khách hàng+ Kịch bản:
Bảng 2.7: Kịch bản quản lý khách hàng
Tiền điều kiện Admin đang ở trang quản lý khách hàng
Đảm bảo tối thiểu Hệ thống quay lại bước trước
Đảm bảo thành công Quản lý khách hàng thành công
Chuỗi sự kiện chính:
1 Người dùng chọn chức năng quản lý khách hàng
2 Hệ thống hiển thị danh sách đầy đủ khách hàng
3 Người dùng chọn các chức năng “Thêm”, “Sửa”, “Xóa”, “Tìm kiếm”
4 Hệ thống hiển thị các trang tương ứng với các chức năng
5 Người dùng thao tác thêm, sửa, xóa, tìm kiếm trên các trang tương ứng với cácchức năng
6 Hệ thống thông báo thao tác thành công
Ngoại lệ:
6.a Người dùng nhập sai nhập sai thông tin
6.a.1 Người dùng điền lại thông tin
6.a.2 Hệ thống báo thao tác thành công