Hệ thống hỗ trợ thông tin du lịch được xây dựng trên cả nền web và ứng dụng di động để khắc phục những nhược điểm đó, ngoài ra còn cung cấp thêm các tiện ích khác sẽ nói họ cho những ngư
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN CUỐI KÌ NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI QUẢN LÝ SIÊU THỊ
Giáo viên hướng dẫn: Cô Nguyễn Thị Thanh Trúc
Lớp: SE104.M26.KHCL
TP Hồ Chí Minh ngày 17 tháng 6 năm 2022
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM
NHẬP MÔN CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI E – TOUR
Sinh viên thực hiện:
Nguyễn Văn Hoàng – 20521346
Phạm Bùi Nhật Huy – 20521410
Võ Minh Trí – 20520821
Trang 3LỜI CÁM ƠN
Đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến toàn thể quý thầy cô Trường Đại học Công nghệ Thông tin - Đại học Quốc gia TP.HCM và quý thầy cô khoa Công nghệ phần mềm đã tận tình truyền đạt những kiến thức cơ bản làm nền tảng cho chúng em thực hiện đề tài này
Đặc biệt nhóm em xin gửi lời cảm ơn tới cô Nguyễn Thị Thanh Trúc, giảng viên môn Nhập môn Công nghệ phần mềm Cô đã trực tiếp hướng dẫn tận tình, sửa chữa và góp
ý giúp nhóm hoàn thành tốt đồ án của mình
Trong thời gian một học kỳ thực hiện đề tài, nhóm đã vận dụng những kiến thức tiếp thu được kết hợp với việc học hỏi và nghiên cứu những kiến thức mới để hoàn thiện đồ
án một cách tốt nhất có thể Chính vì vậy nhóm em rất mong nhận được những sự góp
ý chân thành từ phía thầy cô nhằm cải thiện đồ án cũng như kiến thức của nhóm trong tương lai
Xin chân thành cảm ơn Cô !
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5DANH SÁCH THUẬT NGỮ VIẾT TẮT
Trang 6DANH SÁCH BIỂU ĐỒ
Hình 2 1 Sơ đồ phân rã chức năng 15
Hình 2 2Sơ đồ tổng quan hệ thống 16
Hình 2 3 Biểu đồ hoạt động đăng ký 17
Hình 2 4 Biểu đồ hoạt động đăng nhập 17
Hình 2 5 Biểu đồ hoạt động tìm kiếm địa điểm 18
Hình 2 6 Biểu đồ hoạt động xem địa điểm 18
Hình 2 7 Biểu đồ hoạt động xem dịch vụ du lịch 19
Hình 2 8 Biểu đồ hoạt động thêm địa điểm du lịch 19
Hình 2 9 Biểu đồ hoạt động thêm dịch vụ du lịch 20
Hình 2 10 Biểu đồ hoạt động thay đổi thông tin tài khoản cá nhân 20
Hình 2 11 Biểu đồ use case tổng quát 22
Hình 2 12 Biểu đồ use case quản lý người dùng 23
Hình 2 13 Biểu đồ use case quản lý địa điểm 24
Hình 2 14 Biểu đồ use case quản lý loại địa điểm 25
Hình 2 15 Biểu đồ use case quản lý dịch vụ 26
Hình 2 16 Biểu đồ use case quản lý loại dịch vụ 27
Hình 2 17 Biểu đồ use case quản lý nhận xét, hình ảnh 28
Hình 2 18 Biểu đồ use case quản lý tin tức 29
Hình 2 19 Biểu đồ use case quản lý loại tin tức 30
Hình 2 20Biểu đồ use case quản lý dịch vụ của chủ dịch vụ 31
Hình 2 21 Biểu đồ use case quản lý thông tin cá nhân của người dùng 32
Hình 2 22 Biểu đồ use case quản lý địa điểm của người dùng 33
Hình 2 23 Biểu đồ use case quản lý nhận xét của người dùng 34
Hình 2 24 Biểu đồ use case quản lý địa phương của quản trị 35
Hình 2 25 Biểu đồ lớp tổng quát 36
Hình 2 26 Biểu đồ tuần tự cho chức năng đăng nhập 49
Hình 2 27 Biểu đồ tuần tự cho chức năng đăng ký 49
Hình 2 28 Biểu đồ tuần tự cho chức năng thêm địa điểm của quản trị 50
Hình 2 29 Biểu đồ tuần tự cho chức năng sửa địa điểm của quản trị 50
Hình 2 30 Biểu đồ tuần tự cho chức năng thêm địa điểm của người dùng 51
Hình 2 31 Biểu đồ tuần tự cho chức năng thêm người dùng 51
Trang 7Hình 2 32 Biểu đồ tuần tự cho chức năng sửa thông tin cá nhân 52
Hình 2 33 Biểu đồ tuần tự cho chức năng thêm dịch vụ 52
Hình 2 34 Biểu đồ tuần tự cho chức năng sửa dịch vụ 53
Hình 2 35 Biểu đồ tuần tự cho chức năng thêm tin tức 53
Hình 2 36 Biểu đồ tuần tự cho chức năng sửa tin tức 54
Hình 2 37 Biểu đồ tuần tự cho chức năng tìm kiếm 54
Hình 2 38 Biểu đồ tuần tự cho chức năng thêm loại dịch vụ 55
Hình 2 39 Biểu đồ tuần tự cho chức năng sửa loại dịch vụ 55
Trang 8DANH SÁCH HÌNH ẢNH
Hình 3 1 Mô hình quan hệ 57
Hình 3 2 Giao diện menu chính 66
Hình 3 3 Giao diện đăng nhập hệ thống 67
Trang 9MỤC LỤC
DANH SÁCH THUẬT NGỮ VIẾT TẮT 5
DANH SÁCH BIỂU ĐỒ 6
DANH SÁCH HÌNH ẢNH 8
MỤC LỤC Error! Bookmark not defined. LỜI NÓI ĐẦU 1
Chương 1 2
TỔNG QUAN VỀ ĐỀ TÀI 2
1.1 Giới thiệu về hệ thống 2
1.2 Cơ sở lý thuyết về cơ sở dữ liệu 2
1.3 Ngôn ngữ lập trình 4
1.3.1 Ngôn ngữ HTML 4
1.3.2 Ngôn ngữ CSS 6
1.3.3 Ngôn ngữ PHP 7
1.4 Mô hình MVC 8
1.5 Laravel framework 9
1.6 Kết chương 2 11
Chương 2 12
PHÂN TÍCH HỆ THỐNG 12
2.1 Khảo sát hệ thống 12
2.1.1 Mục đích 12
2.1.2 Mô tả hệ thống 12
2.1.3 Nhóm chức năng chính 13
2.2 Phân tích hệ thống 15
2.2.1 Mô hình hóa chức năng nghiệp vụ 15
2.2.2 Xây dựng biểu đồ Use Case 21
Trang 102.2.3 Xây dựng biểu đồ lớp 35
2.2.4 Xây dựng biểu đồ tuần tự 48
2.3 Kết chương 56
Chương 3 57
THIẾT KẾ HỆ THỐNG 57
3.1 Thiết kế cơ sở dữ liệu 57
3.1.1 Mô hình quan hệ 57
3.1.2 Danh sách các bảng trong mô hình quan hệ 57
3.2 Thiết kế giao diện tổng quan 66
3.1.1 Giao diện hệ thống trên web 66
b Giao diện đăng nhập quản trị 66
3.3 Kết chương 71
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72
1 Tổng kết 72
2 Hướng phát triển 72
TÀI LIỆU THAM KHẢO 73
Trang 11LỜI NÓI ĐẦU
Qua yêu cầu thực tế đó nhóm đã tìm hiểu cũng như đánh giá đi đến giải pháp xây dựng Hệ thống hỗ trợ thông tin du lịch và phát triển xây dựng ứng dụng trên thiết
bị di động chạy trên nền tảng Android Ứng dụng hoàn thành sẽ giới thiệu cho du khách những sự lựa chọn địa điểm du lịch hấp dẫn nhất hoặc những địa điểm du lịch theo tỉnh vùng cùng với những thông tin của địa điểm đó như: món ăn nổi tiếng, các lễ hội, những hình ảnh đặc trưng nhất ; cung cấp thêm các thông tin về thời tiết khu vực, nơi nghỉ dưỡng, ăn uống Website và ứng dụng trên điện thoại cũng cung cấp các chức năng về chia sẻ, bình luận và bài giới thiệu về địa điểm để làm tài liệu tham khảo cho các du khách khác Ngoài ra nhiều loại hình du lịch mới và các chức năng hữu ích cho người dùng sẽ được cập nhật, bổ sung trong quá trình phát triển
Nội dung của đồ án bao gồm:
Chương 1: Tổng quan về đề tài: Giới thiệu sơ lược về mục tiêu đề tài và các
cơ sở lý thuyết liên quan
Chương 2: Phân tích hệ thống: Chương này đi sâu vào tiếp cận hệ thống được
xây dựng trong đề tài từ các bước khảo sát, phân tích hệ thống
Chương 3: Thiết kế hệ thống: Thiết kế cơ sở dữ liệu và giao diện hệ thống
trong đề tài
Kết luận và hướng phát triển: Đưa ra kết quả và đánh giá hệ thống, hướng
phát triển trong tương lai của hệ thống
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác
Với lòng biết ơn sâu sắc nhất, nhóm em xin gửi lời cảm ơn chân thành tới toàn thể các thầy cô giáo trong khoa Công nghệ thông tin, những người đã dạy dỗ và truyền đạt vốn kiến thức vô cùng quý báu của mình cho chúng em trong suốt quãng thời gian học tại đây Những tình cảm và kiến thức mà thầy cô đã gửi trao cho chúng em sẽ là hành trang cho chúng em để bước đi trên những đoạn đường tương lai
Một lần nữa em xin được chân thành cảm ơn!
Trang 12Chương 1 TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu về hệ thống
Những năm qua, ngành du lịch ngày càng phát triển mạnh mẽ mang lại nhiều kết quả tích cực và trở thành một trong những ngành mũi nhọn của nền kinh tế
Trên thực tế có những website (travel.com.vn, skydoor.net,…) đã giải quyết vấn đề
về tra cứu thông tin du lịch nhưng vẫn chưa thực sự đầy đủ Đi kèm với đó còn tồn tại các mặt hạn chế:
- Nguồn thông tin chưa xác thực, còn mang tính quảng cáo nhiều khiến người dùng bị loãng thông tin
- Thiếu một vài chức năng mà theo phần lớn người dùng thì những điều này là cần thiết như xác định địa điểm hiện tại, xem thời tiết tại vị trí du lịch
Từ yêu cầu thực tế đó và cũng như phân tích từ những sản phẩm đi trước, nhóm đã tìm hiểu cũng như đánh giá để đi đến giải pháp xây dựng Hệ thống hỗ trợ thông tin du lịch để khắc phục những hạn chế còn tồn động trên Cùng với đó, nhóm còn xây dựng
cả website
Trang web mà đề tài hướng đến sẽ cung cấp đầy đủ thông tin cho những ai muốn đi du lịch Người dùng có thể đặt những câu hỏi về điểm đến, nhà hàng, thời tiết hay bất cứ câu hỏi gì khác, hệ thống sẽ cung cấp cho bạn đầy đủ thông tin hoặc có rất nhiều người từ có kinh nghiệm hoặc hiểu biết sẽ trả lời cho bạn Những chuyến đi và kinh nghiệm thực tế được người dùng chia sẻ cho những người khác, từ đó bạn có thể
dễ dàng thiết kế lịch trình cho chuyến đi của mình
1.2 Cơ sở lý thuyết về cơ sở dữ liệu
Hệ thống sử dụng hệ cơ sở dữ liệu MySQL
MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ nhanh và dễ dàng MySQL đang được sử dụng cho nhiều công việc kinh doanh từ lớn tới nhỏ, nó được phát triển, được công bố, được hỗ trợ bởi MySQL AB, là một công ty của Thụy Điển
Hệ cơ sở dữ liệu này đã trở thành khá phổ biến vì nhiều lý do:
• MySQL là mã nguồn mở
• MySQL là một chương trình rất mạnh mẽ
Trang 13• MySQL sử dụng một Form chuẩn của ngôn ngữ dữ liệu nổi tiếng là SQL
• MySQL làm việc trên nhiều Hệ điều hành và với nhiều ngôn ngữ như PHP, PERL, C, C++, Java, …
• MySQL làm việc nhanh và khỏe ngay cả với các tập dữ liệu lớn
• MySQL rất thân thiện với PHP, một ngôn ngữ rất đáng giá để tìm hiểu để phát triển Web
• MySQL hỗ trợ các cơ sở dữ liệu lớn, lên tới 50 triệu hàng hoặc nhiều hơn nữa trong một bảng Kích cỡ file mặc định được giới hạn cho một bảng là 4 GB, nhưng chúng ta có thể tăng kích cỡ này (nếu hệ điều hành có thể xử lý nó) để đạt tới giới hạn lý thuyết là 8 TB
• MySQL là có thể điều chỉnh Giấy phép GPL mã nguồn mở cho phép lập trình viên sửa đổi phần mềm MySQL để phù hợp với môi trường cụ thể của họ
MySQL sử dụng nhiều kiểu dữ liệu, được chia thành 3 loại: kiểu số, kiểu date và time, và kiểu chuỗi
Kiểu dữ liệu số trong MySQL
MySQL sử dụng tất cả các kiểu dữ liệu số theo chuẩn ANSI SQL Các kiểu dữ liệu số phổ biến gồm:
• INT: Một số nguyên với kích cỡ thông thường, có thể là signed hoặc unsigned
Nếu có dấu, thì dãy giá trị có thể là từ -2147483648 tới 2147483647, nếu không dấu thì dãy giá trị là từ 0 tới 4294967295 Chúng ta có thể xác định một độ rộng lên tới 11 chữ số
• TINYINT: Một số nguyên với kích cỡ rất nhỏ, có thể là signed hoặc unsigned
Nếu có dấu, thì dãy giá trị có thể là từ -128 tới 127, nếu không dấu thì dãy giá trị
là từ 0 tới 255 Chúng ta có thể xác định một độ rộng lên tới 4 chữ số
• SMALLINT: Một số nguyên với kích cỡ nhỏ, có thể là signed hoặc unsigned Nếu
có dấu, thì dãy giá trị có thể là từ -32768 tới 32767, nếu không dấu thì dãy giá trị
là từ 0 tới 65535 Chúng ta có thể xác định một độ rộng lên tới 5 chữ số
Trang 14• MEDIUMINT: Một số nguyên với kích cỡ trung bình, có thể là signed hoặc
unsigned Nếu có dấu, thì dãy giá trị có thể là từ -8388608 tới 8388607, nếu không dấu thì dãy giá trị là từ 0 tới 16777215 Chúng ta có thể xác định một độ rộng lên tới 9 chữ số
• BIGINT: Một số nguyên với kích cỡ lớn, có thể là signed hoặc unsigned Nếu có
dấu,thì dãy giá trị có thể là từ -9223372036854775808 tới
9223372036854775807, nếu không dấu thì dãy giá trị là từ 0 tới
18446744073709551615 Chúng ta có thể xác định một độ rộng lên tới 20 chữ
số
• FLOAT(M,D): Một số thực dấu chấm động không dấu Chúng ta có thể định
nghĩa độ dài hiển thị (M) và số vị trí sau dấy phảy (D) Điều này là không bắt buộc và sẽ có mặc định là 10,2: với 2 là số vị trí sau dấu phảy và 10 là số chữ số (bao gồm các phần thập phân) Phần thập phân có thể lên tới 24 vị trí sau dấu phảy đối với một số FLOAT
• DOUBLE(M,D): Một số thực dấu chấm động không dấu Chúng ta có thể định
nghĩa độ dài hiển thị (M) và số vị trí sau dấy phảy (D) Điều này là không bắt buộc và sẽ có mặc định là 16,4: với 4 là số vị trí sau dấu phảy và 16 là số chữ số (bao gồm các phần thập phân) Phần thập phân có thể lên tới 53 vị trí sau dấu phảy đối với một số DOUBLE REAL là đồng nghĩa với DOUBLE
phân chiếm 1 byte Việc định nghĩa độ dài hiển thị (M) và số vị trí sau dấy phảy (D) là bắt buộc NUMERIC là một từ đồng nghĩa cho DECIMAL
1.3 Ngôn ngữ lập trình
1.3.1 Ngôn ngữ HTML
Ngôn ngữ HTML (HyperText Markup Language – ngôn ngữ siêu văn bản) là
một trong các loại ngôn ngữ được sử dụng trong lập trình web Khi truy cập một trang web cụ thể là click vào các đường link, chúng ta sẽ được dẫn tới nhiều trang các nhau,
và các trang này được gọi là một tài liệu HTML (tập tin HTML)
Trang 15Một trang HTML như vậy được cấu thành bởi nhiều phần tử HTML nhỏ và được quy định bằng các thẻ tag Chúng ta có thể phân biệt một trang web được viết bằng ngôn ngữ HTML hay PHP thông qua đường link của nó Ở cuối các trang HTML thường hay có đuôi là HTML hoặc HTM
HTML là ngôn ngữ lập trình web được đánh giá là đơn giản Mọi trang web, mọi trình duyệt web đều có thể hiển thị tốt ngôn ngữ HTML Hiện nay, phiên bản mới nhất của HTML là HTML 5 với nhiều tính năng tốt và chất lượng hơn so với các phiên bản
cũ của HTML
Vai trò của HTML trong lập trình web:
HTML là một loại ngôn ngữ đánh dấu siêu văn bản nên các chức năng của nó cũng xoay quanh yếu tố này Cụ thể, HTML giúp cấu thành các cấu trúc cơ bản trên một website (chia khung sườn, bố cục các thành phần trang web) và góp phần hỗ trợ khai báo các tập tin kĩ thuật số như video, nhạc, hình ảnh
Ưu điểm nổi trội nhất và cũng là thế mạnh của HTML là khả năng xây dựng cấu trúc và khiến trang web đi vào quy củ một hệ thống hoàn chỉnh HTML chứa những yếu tố cần thiết mà dù website có thuộc thể loại nào, giao tiếp với ngôn ngữ lập trình
nào để xử lý dữ liệu thì nó vẫn phải cần đến ngôn ngữ HTML để hiển thị nội dung cho
người truy cập
Đối với các lập trình viên hay nhà phát triển web, họ đều phải học HTML như một loại ngôn ngữ cơ bản trước khi bắt tay vào thiết kế trang web nào
Các thẻ trong HTML:
Các trang HTML được quy định bằng các thẻ tag Những thẻ này được chứa
trong các dấu ngoặc đơn dạng: <tên thẻ> Trừ một vài thẻ đặc biệt, hầu hết các thẻ cơ bản đều có các thẻ đóng tương ứng với nó Ví dụ, thẻ <html> có thẻ đóng tương ứng
là </html>, thẻ <body> có thẻ đóng tương ứng là </body> … Bảng 1.1 là các mẫu thẻ
tag thường gặp trong HTML
Bảng 1.1 Các mẫu thẻ thường gặp trong HTML
Trang 16PE…>
Còn gọi là thẻ khai báo một tài liệu HTML Thẻ này xác định loại tài liệu và phiên bản HTML
<html> Thẻ này chứa đựng các tài liệu HTML đầy đủ Ở đầu trang sẽ xuất
hiện các thẻ <head>, </head> và thân tài liệu là các thẻ <body>,
</body>
<head> Thẻ này đại diện cho đầu trang tài liệu mà có thể giữ các thẻ
HTML như <title>, <link> …
<title> Thẻ <title> được sử dụng trong thẻ <head> chỉ tiêu đề tài liệu
<body> Thẻ này đại diện cho thân tài liệu và giữ các thẻ như <h1>, <div>,
<p> …
<h1> Thẻ tag này đại diện cho các tiêu đề trang
<p> Thẻ tag này đại diện cho định dạng các đoạn văn trong trang web
1.3.2 Ngôn ngữ CSS
Định nghĩa
CSS là viết tắt của Cascading Style Sheets Đây là một ngôn style sheet được sử dụng để mô tả giao diện và định dạng của một tài liệu viết bằng ngôn ngữ đánh dấu (markup) CSS cung cấp một tính năng bổ sung cho HTML CSS thường được sử dụng với HTML để thay đổi phong cách của trang web và giao diện người dùng Ngôn ngữ này cũng có thể được sử dụng với bất kỳ loại tài liệu XML nào bao gồm cả XML đơn giản, SVG và XUL
CSS được sử dụng cùng với HTML và JavaScript trong hầu hết các trang web để tạo giao diện người dùng cho các ứng dụng web và giao diện người dùng cho nhiều ứng dụng di động
Trang 17Ba lợi ích chính của CSS
• Giải quyết một vấn đề lớn:
Trước khi có CSS, các thẻ như phông chữ, màu sắc, kiểu nền, các sắp xếp phần
tử, đường viền và kích thước phải được lặp lại trên mọi trang web Đây là một quá trình rất dài tốn thời gian và công sức
• Tiết kiệm rất nhiều thời gian:
Định nghĩa kiểu CSS được lưu trong các tệp CSS bên ngoài vì vậy có thể thay đổi toàn bộ trang web bằng cách thay đổi chỉ một tệp
• Cung cấp thêm các thuộc tính:
CSS cung cấp các thuộc tính chi tiết hơn HTML để định nghĩa giao diện của trang web
1.3.3 Ngôn ngữ PHP
• Giới thiệu chung:
PHP khởi đầu như là một dự án mã nguồn mở nhỏ, nhưng theo đà phát triển, ngày càng nhiều người thấy rằng nó càng ngày càng hữu ích PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1994, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là "Personal Home Page Tools" Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới Database và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố
mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó, đồng thời cải tiến mã nguồn
PHP viết hồi qui của "PHP: Hypertext Preprocessor"
PHP là ngôn ngữ lập trình kịch bản viết cho máy chủ mà được nhúng trong HTML Nó được sử dụng để quản lý nội dụng động, Database, Session tracking, … PHP được tích hợp với một số Database thông dụng như MySQL, PostgreSQL, Oracle, Sybase, Informix, và Microsoft SQL Server
Trang 18PHP thực thi rất tuyệt vời, đặc biệt khi được biên dịch như là một Apache Module trên Unix side MySQL Server, khi được khởi động, thực thi các truy vấn phức tạp với các tập hợp kết quả khổng lồ trong thời gian Record-setting
PHP hỗ trợ một số lượng rộng rãi các giao thức lớn như POP3, IMAP, và LDAP PHP4 bổ sung sự hỗ trợ cho Java và các cấu trúc đối tượng phân phối (COM và CORBA)
Các đặc trưng quan trọng làm PHP trở thành ngôn ngữ khá tiện lợi:
• Đơn giản hóa
MVC là viết tắt của Model – View – Controller Là một kiến trúc phần mềm hay
mô hình thiết kế được sử dụng trong kỹ thuật phần mềm Đây là mô hình phân bố source code thành 3 phần, mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác
Trang 19Cho tới năm 2015, thì Framework laravel hiện đang đứng top 1 thế giới về mức
độ phổ biến và ưu dùng Được cộng đồng hỗ trợ phát triển mạnh mẽ Tháng 8 năm
2014, Laravel Framework được xem như là một dự án PHP phổ biến nhất trên Github
Trang 20Sau nhiều lần được cộng đồng Laravel thế giới hỗ trợ phát triển thì phiên bản mới nhất hiện nay là Laravel 5.2 và sắp tới là phiên bản 5.3
Các tính năng cơ bản của Laravel Framework
• Bundles: Ở laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các module,
với rất nhiều tính năng đi kèm
• Composer: Ở laravel phiên bản 4.x, được sử dụng như một công cụ quản lý với
tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel có trong kho Packagist
• Eloquent ORM (object relation mapping): ánh xạ các đối tượng và quan hệ cơ
sở dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổ sung các tính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu Eloquent ORM trình bày các bảng trong cơ sở dữ liệu dưới dạng các lớp, cung cấp thêm lựa chọn truy cập cơ sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệp hơn
• Application logic: Là một phần của phát triển ứng dụng, được sử dụng bởi bộ
điều khiển controllers
• Routes: Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết (link)
Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liên kết thống nhất sẽ được tạo ra bởi laravel
• Restful Controller: cung cấp các tùy chọn để tách các logic phía sau các request
HTTP POST, GET
• Class auto loading: cung cấp việc tải tự động các class trong PHP, mà không
cần include các class vào Tùy thuộc vào yêu cầu các class cần thiết sẽ được nạp vào, hạn chế các class không cần thiết
• View: chứa các mã html, hiển thị dữ liệu được chỉ định bởi controller
• Migrations: cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở dữ liệu (database cheme), làm cho web ứng dụng có khả năng tương tác phù hợp những thay đổi logic, các đoạn mã code của ứng dụng và những thay đổi cần thiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cập nhật các ứng dụng
• Unit Testing: đóng một vai trò quan trọng trong Laravel, Unit testting chứa rất
nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trong khuôn khổ nhất định Unit Testing có thể đượcchạy thông qua tiện ích command-line
Trang 21• Automatic pagination: Tính năng tự động phân trang được tích hợp
vào Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với các phương pháp thông thường
1.6 Kết chương 1
Từ những phân tích trên về cơ sở lý thuyết các công nghệ trên, em sử dụng Laravel framework để xây dựng các chức năng cho website quản lý và giới thiệu tour du lịch Lào và hệ cơ sở dữ liệu MySQL để lưu trữ và quản lý dữ liệu hệ thống Mặc dù các công nghệ này còn tồn tại những nhược điểm nhất định, nhưng em sẽ tận dụng các ưu điểm của các công nghệ này để xây dựng website quản lý và giới thiệu các tour du lịch với các chức năng hoạt động tốt nhất có thể
Trang 22Chương 2 PHÂN TÍCH HỆ THỐNG 2.1 Khảo sát hệ thống
2.1.1 Mục đích
Hiện nay các Website về thông tin du lịch khá nhiều, nhưng chỉ mang tính chất quảng cáo cho các dịch vụ du lịch Việc tìm được thông tin chính xác về địa điểm, cảnh quan và những đánh giá khách quan từ phía người dùng đều gặp khó khăn Hệ thống hỗ trợ thông tin du lịch được xây dựng trên cả nền web và ứng dụng di động để khắc phục những nhược điểm đó, ngoài ra còn cung cấp thêm các tiện ích khác sẽ nói
họ cho những người khác, được tìm kiếm địa điểm du lịch có sẵn trong hệ thống Đồng thời người dùng cũng được phép bình luận và đăng tải hình ảnh trải nghiệm
về các địa điểm, lưu lại địa điểm du lịch và các đơn vị cung cấp dịch vụ để xem sau, chia sẻ địa điểm lên các trang mạng xã hội; thêm địa điểm du lịch mới được phát hiện và khai phá nhanh chóng bằng cách đăng tải hình ảnh địa điểm, vị trí địa điểm này có thể được định vị tự động hoặc do người dùng viết
- Nhóm chủ nhà hàng khách sạn cung cấp các dịch vụ du lịch được phép truy cập hệ thống như một khách du lịch, đồng thời nhóm người này có thể thêm thông tin như
Trang 23giá tiền, các dịch vụ nhà hàng khách sạn mà mình cung cấp cho khách du lịch biết đến
- Nhóm quản trị sẽ quản trị các tài khoản người dùng (cấp quyền, sửa, vô hiệu tài khoản), thông tin địa điểm du lịch, dữ liệu Tỉnh thành, quản lý các bài viết của nhóm người dùng còn lại, quản lý tin tức du lịch, quản lý loại hình dịch vụ
2.1.3 Nhóm chức năng chính
2.1.3.1 Chức năng dành cho “Khách du lịch”
- Đăng nhập hệ thống với quyền của mình
- Thay đổi thông tin cá nhân và mật khẩu cá nhân
- Xem thông tin địa điểm du lịch, xem tin tức du lịch và dịch vụ
- Chia sẻ thông tin địa điểm du lịch
- Bình luận và đăng tải hình ảnh về địa điểm du lịch
- Thêm địa điểm du lịch mới
- Tìm kiếm địa điểm du lịch
2.1.3.2 Chức năng dành cho “Nhóm dịch vụ”
- Có các chức năng như nhóm “Khách du lịch”
- Quản lý thông tin dịch vụ của mình, bao gồm:
+ Tạo mới thông tin về dịch vụ mà mình cung cấp
+ Sửa thông tin dịch vụ mà mình cung cấp
+ Vô hiệu hóa thông tin dịch vụ mà mình cung cấp
2.1.3.3 Chức năng dành cho “Quản trị viên”
- Đăng nhập hệ thống toàn quyền
- Thay đổi thông tin cá nhân và mật khẩu cá nhân
- Quản lý danh sách người dùng (Nhóm dịch vụ, Khách du lịch, Thành viên ban quản trị) gồm các hoạt động:
+ Cấp quyền truy cập hệ thống cho người dùng
+ Cấp lại mật khẩu cho người dùng
+ Vô hiệu hóa tài khoản người dùng
- Quản trị địa điểm du lịch gồm hoạt động:
+ Tạo mới địa điểm
+ Sửa thông tin địa điểm
Trang 24+ Vô hiệu hóa địa điểm
- Quản trị bình luận, hình ảnh về địa điểm du lịch/dịch vụ/tin tức + Thêm bình luận, hình ảnh về địa điểm du lịch/dịch vụ/tin tức + Sửa bình luận, hình ảnh về địa điểm du lịch/dịch vụ/tin tức + Xóa bình luận, hình ảnh về địa điểm du lịch/dịch vụ/tin tức
- Quản trị thông tin dịch vụ gồm họat động:
+ Thêm thông tin dịch vụ
+ Sửa thông tin dịch vụ
+ Xóa thông tin dịch vụ
- Quản trị danh mục địa phương (xã-huyện-tỉnh), gồm hoạt động: + Thêm địa phương vào danh mục
+ Sửa địa phương trong danh mục
+ Xóa địa phương khỏi danh mục
Trang 252.2 Phân tích hệ thống
2.2.1 Mô hình hóa chức năng nghiệp vụ
2.2.1.1 Sơ đồ phân rã chức năng
Hình 2 1 Sơ đồ phân rã chức năng
Trang 262.2.1.2 Sơ đồ tổng quan hệ thống
Hình 2 2Sơ đồ tổng quan hệ thống
Trang 272.2.1.3 Biểu đồ hoạt động
a Biểu đồ hoạt động quy trình đăng kí tài khoản người dùng
Hình 2 3 Biểu đồ hoạt động đăng ký
b Biểu đồ hoạt động quy trình đăng nhập hệ thống
Hình 2 4 Biểu đồ hoạt động đăng nhập
Trang 28c Biểu đồ hoạt động quy trình tìm kiếm địa điểm
Hình 2 5 Biểu đồ hoạt động tìm kiếm địa điểm
d Biểu đồ hoạt động quy trình xem thông tin địa điểm
Hình 2 6 Biểu đồ hoạt động xem địa điểm
Trang 29e Biểu đồ hoạt động quy trình xem các dịch vụ du lịch
Hình 2 7 Biểu đồ hoạt động xem dịch vụ du lịch
f Biểu đồ hoạt động quy trình thêm địa điểm du lịch
Hình 2 8 Biểu đồ hoạt động thêm địa điểm du lịch
g Biểu đồ hoạt động quy trình thêm dịch vụ du lịch
Trang 30Hình 2 9 Biểu đồ hoạt động thêm dịch vụ du lịch
h Biểu đồ hoạt động quy trình thay đổi thông tin tài khoản cá nhân
Hình 2 10 Biểu đồ hoạt động thay đổi thông tin tài khoản cá nhân
Trang 312.2.2 Xây dựng biểu đồ Use Case
- Các Use Case của hệ thống
+ Đăng nhập hệ thống (Toàn bộ người dùng được thực hiện đăng nhập vào hệ thống)
+ Thay đổi hồ sơ cá nhân (Toàn bộ người dùng được thay đổi thông tin cá nhân và mật khẩu của mình)
+ Thích, lưu, bình luận, đăng tải hình ảnh về địa điểm
+ Thêm địa điểm du lịch mới
+ Đưa ra cảnh báo tại địa điểm du lịch
+ Tìm kiếm địa điểm du lịch
+ Quản lý thông tin dịch vụ của mình (Nhóm dịch vụ được quyền quản lý thông tin dịch vụ của mình đăng tải)
+ Quản lý bài viết (Quản trị viên có quyền quản lý bài viết về địa điểm du lịch) + Quản lý địa điểm du lịch (Quản trị viên có quyền quản lý thông tin địa điểm du lịch)
+ Quản lý danh mục địa phương (Quản trị viên có quyền quản lý danh mục địa phương gồm xã-huyện-tỉnh)
+ Quản lý người dùng trong hệ thống (Quản trị viên có quyền quản lý danh sách người dùng hệ thống, phê duyệt tài khoản, cấp lại mật khẩu hoặc vô hiệu hóa tài khoản)
+ Quản lý thông tin dịch vụ du lịch (Quản trị viên có quyền quản lý thông tin dịch vụ)
+ Quản lý loại hình dịch vụ du lịch (Quản trị viên có quyền quản lý loại hình dịch vụ)
Trang 32+ Quản lý tin tức về tình hình du lịch (Quản trị viên có quyền quản lý tin tức du lịch)
- Biểu đồ Use Case tổng quát
Hình 2 11 Biểu đồ use case tổng quát
Trang 33- Biểu đồ use case quản lý người dùng của quản trị
Hình 2 12 Biểu đồ use case quản lý người dùng
a Tóm tắt
Quản lý người dùng là Use Case quản trị viên sử dụng để quản lý các thông tin về người dùng
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập
Trang 34- Biểu đồ use case quản lý địa điểm của quản trị
Hình 2 13 Biểu đồ use case quản lý địa điểm
a Tóm tắt
Quản lý địa điểm là Use Case quản trị viên sử dụng để quản lý các thông tin các địa điểm
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập
Trang 35- Biểu đồ use case quản lý loại địa điểm của quản trị
Hình 2 14 Biểu đồ use case quản lý loại địa điểm
a Tóm tắt
Quản lý loại địa điểm là Use Case quản trị viên sử dụng để quản lý các thông tin về loại địa điểm
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập
d Các luồng sự kiện
Luồng sự kiện chính
1 Chọn danh sách quản lý loại địa điểm 2 Hệ thống hiển thị giao diện danh sách
các loại địa điểm
3 Lựa chọn loại địa điểm và chức năng,
nhập thông tin cần cập nhật
4 Tiếp nhận thông tin, kiểm tra thông tin
có hợp lệ hay không 5.Thông báo cập nhật thành công
Trang 36- Biểu đồ use case quản lý dịch vụ của quản trị
Hình 2 15 Biểu đồ use case quản lý dịch vụ
a Tóm tắt
Quản lý dịch vụ là Use Case quản trị viên sử dụng để quản lý các thông tin về dịch vụ
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập
Trang 37- Biểu đồ use case quản lý loại dịch vụ của quản trị
Hình 2 16 Biểu đồ use case quản lý loại dịch vụ
a Tóm tắt
Quản lý loại dịch vụ là Use Case quản trị viên sử dụng để quản lý các thông tin về loại dịch vụ
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập
Trang 38- Biểu đồ use case quản lý nhận xét của quản trị
Hình 2 17 Biểu đồ use case quản lý nhận xét, hình ảnh
a Tóm tắt
Quản lý nhận xét, hình ảnh là Use Case quản trị viên sử dụng để quản lý các thông tin
về nhận xét, hình ảnh mà người dùng đăng tải
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập
năng, nhập thông tin cần cập nhật
4 Tiếp nhận thông tin, kiểm tra thông tin có hợp lệ hay không
5.Thông báo cập nhật thành công
Trang 39- Biểu đồ use case quản lý tin tức của quản trị
Hình 2 18 Biểu đồ use case quản lý tin tức
a Tóm tắt
Quản lý tin tức là Use Case quản trị viên sử dụng để quản lý các thông tin về tin tức
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập
Trang 40- Biểu đồ use case quản lý loại tin tức của quản trị
Hình 2 19 Biểu đồ use case quản lý loại tin tức
a Tóm tắt
Quản lý loại tin tức là Use Case quản trị viên sử dụng để quản lý các thông tin về loại tin tức
b Tác nhân
Tác nhân: Quản trị viên
c Use case liên quan
Use case đăng nhập