1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng website tra cứu giá tour du lịch vuivivu

76 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Tra Cứu Giá Tour Du Lịch
Tác giả Đinh Ngọc Trang
Người hướng dẫn TS. Phạm Tuấn
Trường học Đại học Đà Nẵng
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 76
Dung lượng 12,42 MB

Nội dung

Sinh viên thực hiện: Đinh Ngọc Trang Mã SV: 1811505310148 Lớp: 18T1 Nội dung chính: Quá trình xây dựng website Tra cứu giá tour du lịch - Vuivivu gồm: - Khảo sát những website của các do

Trang 1

ĐẠ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ỌCNGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

Trang 2

Đà Nẵng, tháng 06/2022

Trang 3

ĐẠ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

Trang 4

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN

Trang 5

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

Trang 6

TÓM TẮT

Tên đề tài: Xây dựng website Tra cứu giá tour du lịch - Vuivivu

Sinh viên thực hiện: Đinh Ngọc Trang

Mã SV: 1811505310148 Lớp: 18T1

Nội dung chính:

Quá trình xây dựng website Tra cứu giá tour du lịch - Vuivivu gồm:

- Khảo sát những website của các doanh nghiệp cung cấp dịch vụ du lịch

ở Việt Nam

- Phân tích thiết kế các chức năng của hệ thống

- Thiết kế bộ cào dữ liệu tự động từ các website cung cấp dịch vụ du lịch

- Xây dựng hệ thống tự động cào dữ liệu và cơ sở dữ liệu để lưu dữ liệucào

- Kiểm thử, ghi log và cài đặt lên server

- Thiết kế giao diện cho các chức năng

- Phân tích thiết kế cơ sơ dữ liệu của website

- Xây dựng hệ thống website

- Kiểm thử và cài đặt

- Hoàn thành bài báo cáo

Trang 7

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ

Giảng viên hướng dẫn: TS Phạm Tuấn

Sinh viên thực hiện: Đinh Ngọc Trang Mã SV: 1811505310148

1 Tên đề tài:

Xây dựng Website Tra cứu giá tour du lịch - Vuivivu

2 Các số liệu, tài liệu ban đầu:

- Tài liệu lập trình: https://laravel.com/docs/8.x

3 Nội dung chính của đồ án:

Quá trình xây dựng website Tra cứu giá tour du lịch - Vuivivu gồm:

- Khảo sát nghiệp vụ thực tế

- Phân tích thiết kế các chức năng của hệ thống

- Cào và lưu trữ dữ liệu

- Thiết kế giao diện cho các chức năng

- Phân tích thiết kế cơ sơ dữ liệu

- File báo cáo hoàn chỉnh

Trang 9

LỜI NÓI ĐẦU

Lời đầu tiên, em không biết nói gì hơn ngoài bày tỏ sự biết ơn sâu sắc đến cácthầy cô bộ môn Trong suốt chặng đường học tập và làm đồ án tốt nghiệp em đã luônnhận được sự hướng dẫn, giúp đỡ tận tình của thầy cô

Đặc biệt, em xin bày tỏ sự kính trọng và lòng biết ơn sâu sắc nhất đến thầy giáohướng dẫn Phạm Tuấn, thầy là người đã trực tiếp hướng dẫn, giúp đỡ cho em để em cóthể hoàn thành đồ án này Trong quá trình học tập và nghiên cứu, nếu em có những saisót gì, kính mong thầy cô bỏ qua cho em!

Tuy em đã cố gắng tìm hiểu, phân tích, cài đặt và kiểm thử hệ thống tuy nhiên saisót là điều không thể tránh khỏi Em rất mong nhận được sự thông cảm và góp ý từquý thầy cô

Em xin kính chúc các thầy cô luôn luôn khỏe mạnh và ngày một thành công hơntrên con đường giảng dạy của mình

Em xin trân trọng cảm ơn !

Sinh viên thực hiệnĐinh Ngọc Trang

i

Trang 10

CAM ĐOAN

Em xin cam đoan :

1. Đồ án tốt nghiệp Website tra cứu giá tour du lịch - Vuivivu là công trìnhnghiên cứu của bản thân mình dưới sự hướng dẫn của thầy giáo PhạmTuấn

2. Những phần có sử dụng tài liệu tham khảo có trong đồ án đã được liệt kê

và nêu rõ ra tại phần tài liệu tham khảo

3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xinchịu hoàn toàn trách nhiệm

Sinh viên thực hiệnĐinh Ngọc Trang

ii

Trang 11

MỤC LỤC

NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN

TÓM TẮT

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

YLỜI NÓI ĐẦU i

CAM ĐOAN ii

MỤC LỤC iii

DANH MỤC BẢNG BIỂU ix

DANH MỤC HÌNH VẼ x

DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT xiii

DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH xiv

MỞ ĐẦU 1

1 Mục tiêu đề tài 2

2 Đối tượng nghiên cứu và phạm vi nghiên cứu 2

a Đối tượng nghiên cứu 2

b Phạm vi nghiên cứu 2

3 Phương pháp nghiên cứu 2

4 Giải pháp công nghệ 3

5 Cấu trúc đồ án 3

Chương 1 TỔNG QUAN 4

1.1 Lí do chọn đề tài 4

1.2 Mục đích đề tài 4

1.3 Phạm vi đề tài và đối tượng nghiên cứu 5

1.3.1 Thông tin cần quản lý 5

iii

Trang 12

1.4 Đặc tả yêu cầu nghiệp vụ (Business Requirments) 6

1.4.1 Khách hàng vãng lai 6

1.4.2 Nhân viên 6

1.4.3 Quản lý 6

Chương 2 CƠ SỞ LÝ THUYẾT 7

2.1 Ngôn ngữ lập trình 7

2.1.1 Ngôn ngữ lập trình PHP 7

2.1.1.1 Khái niệm 7

2.1.1.2 Đặc điểm 7

2.1.2 Ngôn ngữ lập trình Python 8

2.1.2.1 Khái niệm 8

2.1.2.2 Đặc điểm 9

2.2 Cơ sở dữ liệu 9

2.2.1 MySQL 9

2.2.1.1 Khái niệm 9

2.2.1.2 Đặc điểm 10

2.2.2 MongoDB 10

2.2.2.1 Khái niệm 10

2.2.2.2 Đặc điểm 11

2.2.2.3 Hạn chế 11

2.3 Laravel Framework 12

2.3.1 Khái niệm 12

2.3.2 Mô hình MVC 13

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15

3.1 Đặc tả yêu cầu phần mềm (Software Requirements) 15

iv

Trang 13

3.1.1 Khách hàng vãng lai : 15

3.1.2 Nhân viên : 15

3.1.3 Quản lý : 16

3.2 Sơ đồ Use-case 17

3.3 Kịch bản cho Use-case 18

3.3.1 Actor Khách hàng vãng lai 18

3.3.1.1 Use-case: Tra cứu tour 18

3.3.2 Actor Nhân viên 18

3.3.2.1 Use-case Cập nhật thông tin cá nhân 18

3.3.2.2 Use-case Thêm mới bài đăng 19

3.3.2.3 Use-case Thêm mới banner 19

3.3.2.4 Use-case Thêm mới quảng cáo 20

3.3.2.5 Use-case Chỉnh sửa bài đăng 21

3.3.2.6 Use-case Chỉnh sửa banner 21

3.3.2.7 Use-case chỉnh sửa quảng cáo 22

3.3.2.8 Use-case Quản lý hiển thị banner 22

3.3.2.9 Use-case Quản lý hiển thị quảng cáo 23

3.3.2.10 Use-case Xóa bài đăng 23

3.3.2.11 Use-case Xóa banner 24

3.3.2.12 Use-case Xóa quảng cáo 25

3.3.3 Actor Quản lý 25

3.3.3.1 Use-case Thêm mới nhân viên 25

3.3.3.2 Use-case cập nhật thông tin nhân viên 26

3.3.3.3 Use-case Quản lý quyền truy cập nhân viên 26

3.3.3.4 Use-case Xóa nhân viên 27

v

Trang 14

3.3.3.5 Use-case Xem lịch sử cào 27

3.3.3.6 Use-case Thống kê người dùng 28

3.3.3.7 Use-case Thống kê loại người dùng & thiết bị của người dùng 28

3.3.3.8 Use-case Truy xuất dữ liệu người dùng 29

3.4 Sơ đồ hoạt động 30

3.4.1 Actor Khách hàng vãng lai 30

3.4.1.1 Use-case Tìm kiếm tour du lịch 30

3.4.2 Actor Nhân viên 30

3.4.2.1 Use-case Đăng nhập 30

3.4.2.2 Use-case Cập nhật thông tin cá nhân 30

3.4.2.3 Use-case Đổi mật khẩu 31

3.4.2.4 Use-case thêm bài đăng 31

3.4.2.5 Use-case thêm banner 31

3.4.2.6 Use-case thêm quảng cáo 32

3.4.2.7 Use-case Sửa bài đăng 32

3.4.2.8 Use-case Sửa banner 32

3.4.2.9 Use-case Sửa quảng cáo 33

3.4.2.10 Use-case Quản lý hiển thị banner 33

3.4.2.11 Use-case Quản lý hiện thị quảng cáo 33

3.4.2.12 Use-case Xóa bài đăng 33

3.4.2.13 Use-case Xóa banner 33

3.4.2.14 Use-case Xóa quảng cáo 34

3.4.3 Actor Quản lý 34

3.4.3.1 Use-case Thêm nhân viên 34

3.4.3.2 Use-case Sửa thông tin nhân viên 34

vi

Trang 15

3.4.3.3 Use-case Xóa nhân viên 34

3.4.3.4 Use-case Quản lý trạng thái nhân viên 35

3.4.3.5 Use-case Xem lịch sử cào dữ liệu 35

3.4.3.6 Use-case Thống kê người truy cập 35

3.4.3.7 Use-case Thống kê loại người dùng và thiết bị của người dùng .35 3.4.3.8 Use-case Xuất dữ liệu thống kê người truy cập 35

3.5 Sơ đồ ERD 36

3.6 Sơ đồ Relationship Database trong Hệ quản trị MySQL 36

3.7 Sơ đồ cào dữ liệu 37

3.8 Sơ đồ luồng dữ liệu 37

Chương 4 XÂY DỰNG CHƯƠNG TRÌNH 38

4.1 Công cụ xây dựng chương trình 38

4.2 Giao diện chương trình 38

4.2.1 Giao diện trang người dùng 38

4.2.1.1 Giao diện trang chủ 38

4.2.1.2 Giao diện trang tour 39

4.2.1.3 Giao diện trang tìm kiếm tour 40

4.2.1.4 Giao diện trang bài viết 41

4.2.1.5 Giao diện trang chi tiết bài viết 42

4.2.2 Giao diện trang quản trị 43

4.2.2.1 Giao diện trang đăng nhập 43

4.2.2.2 Giao diện trang quản lý 44

4.2.2.3 Giao diện trang thông tin cá nhân 45

4.2.2.4 Giao diện trang quản lý nhân viên 46

4.2.2.5 Giao diện trang lịch sử cào dữ liệu 48

vii

Trang 16

4.2.2.6 Giao diện trang quản lý danh mục 48

4.2.2.7 Giao diện trang quản lý banner 50

4.2.2.8 Giao diện trang quảng lý quảng cáo 51

4.2.2.9 Giao diện trang quản lý bài đăng 54

4.2.2.10 Giao diện trang thống kê 56

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59

4.3 Kết luận 59

4.4 Hướng phát triển 59

TÀI LIỆU THAM KHẢO 60

viii

Trang 17

DANH MỤC BẢNG BIỂU

Bảng 3.1: Kịch bản cho usecase Tìm kiếm 18

Bảng 3.2: Kịch bản cho usease Cập nhật thông tin cá nhân 18

Bảng 3.3: Kịch bản cho usecase Thêm mới bài đăng 19

Bảng 3.4: Kịch bản cho usecase Thêm mới banner 19

Bảng 3.5: Kịch bản cho usecase Thêm mới quảng cáo 20

Bảng 3.6: Kịch bản cho usecase Chỉnh sửa bài đăng 21

Bảng 3.7: Kịch bản cho usecase Chỉnh sửa banner 21

Bảng 3.8: Kịch bản cho usecase Chỉnh sửa quảng cáo 22

Bảng 3.9: Kịch bản cho usecase Quản lý hiển thị banner 22

Bảng 3.10: Kịch bản cho use-case Quản lý hiển thị quảng cáo 23

Bảng 3.11: Kịch bản cho use-case Xóa bài đăng 23

Bảng 3.12: Kịch bản cho use-case Xóa banner 24

Bảng 3.13: Kịch bản cho use-case Xóa quảng cáo 25

Bảng 3.14: Kịch bản cho use-case Thêm mới nhân viên 25

Bảng 3.15: Kịch bản cho use-case Cập nhật thông tin nhân viên 26

Bảng 3.16: Kịch bản cho use-case Quản lý quyền truy cập nhân viên 26

Bảng 3.17: Kịch bản cho use-case Xóa nhân viên 27

Bảng 3.18: Kịch bản cho use-case Xem lịch sử cào 27

Bảng 3.19: Kịch bản cho use-case Thống kê người dùng 28

Bảng 3.20: Kịch bản cho use-case Thống kê loại người dùng & thiết bị 28

Bảng 3.21: Kịch bản cho use-case truy xuất dữ liệu người dùng 29

ix

Trang 18

DANH MỤC HÌNH VẼ

Hình 1.1: Hình ảnh trang tìm tour của website: travel.com.vn 4

Hình 1.2: Thông tin cần quản lý 5

Hình 2.1: Ngôn ngữ lập trình PHP 7

Hình 2.2: Ngôn ngữ lập trình Python 8

Hình 2.3: Hệ quản trị cơ sở dữ liệu MySQL 10

Hình 2.4: Cơ sở dữ liệu noSql - MongoDB 11

Hình 2.5: Mô tả Laravel 12

Hình 2.6:Mô hình MVC trong Laravel 12

Hình 3.1: Use-case Diagram 17

Hình 3.2: Sơ đồ hoạt động cho usecase Tìm kiếm tour du lịch 30

Hình 3.3: Sơ đồ hoạt động cho usecase Đăng nhập 30

Hình 3.4: Sơ đồ hoạt động cho usecase Cập nhật thông tin cá nhân 30

Hình 3.5: Sơ đồ hoạt động cho usecase Đổi mật khẩu 31

Hình 3.6: Sơ đồ hoạt động cho usecase Thêm bài đăng 31

Hình 3.7: Sơ đồ hoạt động cho usecase thêm banner 31

Hình 3.8: Sơ đồ hoạt động cho usecase thêm quảng cáo 32

Hình 3.9: Sơ đồ hoạt động cho usecase Sửa bài đăng 32

Hình 3.10: Sơ đồ hoạt động cho usecase Sửa banner 32

Hình 3.11: Sơ đồ hoạt động cho usecase Sửa quảng cáo 33

Hình 3.12: Sơ đồ hoạt động cho usecase Quản lý hiển thị banner 33

Hình 3.13: Sơ đồ hoạt động cho usecase Quản lý hiển thị quảng cáo 33

Hình 3.14: Sơ đồ hoạt động cho usecase Xóa bài đăng 33

Hình 3.15: Sơ đồ hoạt động cho usecase Xóa banner 33

Hình 3.16: Sơ đồ hoạt động cho usecase Xóa quảng cáo 34

x

Trang 19

Hình 3.17: Sơ đồ hoạt động cho usecase Thêm nhân viên 34

Hình 3.18: Sơ đồ hoạt động cho usecase Sửa thông tin nhân viên 34

Hình 3.19: Sơ đồ hoạt động cho usecase Xóa nhân viên 34

Hình 3.20: Sơ đồ hoạt động cho usecase Quản lý trạng thái nhân viên 35

Hình 3.21: Sơ đồ hoạt động cho usecase Xem lịch sử cào dữ liệu 35

Hình 3.22: Sơ đồ hoạt động cho usecase Thống kê người truy cập 35

Hình 3.23: Sơ đồ hoạt động cho usecase Thống kê loại người dùng & thiết bị 35

Hình 3.24: Sơ đồ hoạt động cho usecase Xuất dữ liệu thống kê người truy cập 35

Hình 3.25: Sơ đồ ERD 36

Hình 3.26: Sơ đồ Relationship Database trong hệ quản trị MySQL 36

Hình 3.27: Sơ đồ cào dữ liệu 37

Hình 3.28: Sơ đồ luồng dữ liệu 37

Hình 4.1: Giao diện trang chủ 38

Hình 4.2: Giao diện trang tour 39

Hình 4.3: Giao diện trang tìm kiếm tour 40

Hình 4.4: Giao diện trang bài viết 41

Hình 4.5: Giao diện trang chi tiết bài viết 42

Hình 4.6: Giao diện trang quản trị - Đăng nhập 43

Hình 4.7: Giao diện trang quản trị - Đăng nhập sai mật khẩu 43

Hình 4.8: Giao diện quản trị - Đăng nhập tài khoản bị khóa 43

Hình 4.9: Giao diện xác thực email 44

Hình 4.10: Giao diện trang quản lý ( nhân viên) 44

Hình 4.11: Giao diện trang quản lý (quản lý) 44

Hình 4.12: Giao diện thông tin cá nhân 45

Hình 4.13: Giao diện kết quả khi đổi thông tin cá nhân 45

Hình 4.14: Giao diện kết quả khi đổi mật khẩu 45

Hình 4.15: Giao diện tạo mới nhân viên 46

Hình 4.16: Giao diện tất cả nhân viên 46

Hình 4.17: Giao diện chỉnh sửa nhân viên 47

Hình 4.18: Giao diện Khóa/Mở khóa nhân viên 47

xi

Trang 20

Hình 4.19: Giao diện xóa nhân viên 47

Hình 4.20: Giao diện trang lịch sử cào dữ liệu 48

Hình 4.21: Giao diện tạo mới danh mục 48

Hình 4.22: Giao diện tất cả danh mục 49

Hình 4.23: Giao diện chỉnh sửa danh mục 49

Hình 4.24: Giao diện kết quả xóa danh mục 49

Hình 4.25: Giao diện tạo mới banner 50

Hình 4.26: Giao diện tất cả banner 50

Hình 4.27: Giao diện chỉnh sửa banner 50

Hình 4.28: Giao diện Ẩn/ Hiện banner 51

Hình 4.29: Giao diện xóa banner 51

Hình 4.30: Giao diện tạo mới quảng cáo 51

Hình 4.31: Giao diện tất cả quảng cáo 52

Hình 4.32: Giao diện tạo chỉnh sửa quảng cáo 52

Hình 4.33: Giao diện Ẩn/Hiện quảng cáo 53

Hình 4.34: Giao diện xóa quảng cáo 53

Hình 4.35: Giao diện tạo mới bài đăng 54

Hình 4.36: Giao diện tất cả bài đăng 54

Hình 4.37: Giao diện chỉnh sửa bài đăng 55

Hình 4.38: Giao diện xóa bài đăng thành công 55

Hình 4.39: Giao diện thống kê người dùng và lượt xem 56

Hình 4.40: Giao diện thống kê trong khoảng thời gian 57

Hình 4.41: File dữ liệu thống kê khi chọn xuất dữ liệu 58

Hình 4.42: Giao diện thống kê loại người dùng & thiết bị 58

xii

Trang 21

DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT

Stt Chữ viết tắt Giải nghĩa

xiii

Trang 22

DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH

Stt Chữ viết tắt Giải nghĩa Nghĩa tiếng Việt

Language Ngôn ngữ đánh dấu siêu văn bản

2 CSS Cascading Style Sheets Tập tin định kiểu theo tầng

3 PHP Hypertext Preprocessor

4 SQL Structured Query Language Ngôn ngữ truy vấn mang tính cấu

trúc

6 SMTP Simple Mail Transfer

Protocol

Giao thức truyền tải thư tín đơngiản hóa

7 ERD Entity Relationship Diagram Mô hình mối quan hệ thực thể

8 NoSQL Non-relational Data

Management System

Hệ thống quản lý dữ liệu khôngquan hệ

9 RDBMS Relational Database

Management System Hệ quản trị cơ sỡ dữ liệu quan hệ

10 JSON JavaScript Object Notation

11 MVC Model-View-Controller

xiv

Trang 23

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

MỞ ĐẦU

Hiện nay, kinh tế và mức sống của nhân dân trong nước càng ngày càng đượcnâng cao kéo theo đó nhu cầu đi du lịch, tham quan cũng được quan tâm hơn bao giờhết Tuy nhiên việc tìm kiếm những tour du lịch chất lượng, giá cả phải chăng và phùhợp với điều kiện, thời gian của khách du lịch đề ra là việc không hề dễ dàng

Để đáp ứng được nhu cầu du lịch cao của người dân thì tại địa bàn TP Đà Nẵngnói riêng và cả Nước nói chung đã có rất nhiều công ti du lịch lữ hành đứng ra tổ chứcnhiều tour du lịch thú vị, chất lượng Nhưng với số lượng công ti cung cấp dịch vụ dulịch, lữ hành thì khiến cho khách du lịch lạc vào một ma trận các tour du lịch với mọimức giá, chất lượng Việc chọn một tour du lịch phù hợp với túi tiền, thời gian mà lạichất lượng, đầy đủ điểm đến thú vị trở nên khó khăn với khách du lịch hơn bao giờhết

Vì vậy, Em mong muốn xây dựng website Tra cứu giá tour du lịch - Vuivivu đểgiúp khách du lịch dễ dàng tra cứu và xem thông tin của những tour du lịch từ nhữngwebsite, công ti tổ chức dịch vụ du lịch cùng một lúc Giúp tiết kiệm thời gian, côngsức và chọn được tour du lịch ưng ý nhất cho kì nghỉ của người dùng

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 1

Trang 24

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

1 Mục tiêu đề tài

Xây dựng hệ thống website Tra cứu giá tour du lịch - Vuivivu giúp:

- Khách hàng vãng lai:

o Xem được thông tin tour du lịch hiện có trên hệ thống

o Tra cứu tour du lịch trên nhiều nhà cung cấp dịch vụ du lịch chỉ với mộtlượt tìm kiếm

o Xem các thông tin quảng cáo, khuyến mãi cho dịch vụ du lịch

o Xem các Bài đăng hướng dẫn du lịch

- Nhân viên:

o Đăng thông tin quảng cáo, khuyến mãi

o Quản lý thông tin quảng cáo, khuyến mãi

o Đăng Bài đăng

o Quản lý Bài đăng

- Quản lý:

o Quản lý nhân viên

o Quản lý danh mục Bài đăng

o Xem lịch sử cào dữ liệu

o Thống kê lượt truy cập

o Truy xuất dữ liệu lượt truy cập

2 Đối tượng nghiên cứu và phạm vi nghiên cứu

a Đối tượng nghiên cứu

Áp dụng cho tất cả những khách hàng có nhu cầu đi du lịch có sử dụng internet

b Phạm vi nghiên cứu

Tất cả các tour du lịch từ trong nước cho tới nước ngoài được các công ti du lịchViệt Nam cung cấp

3 Phương pháp nghiên cứu

- Khảo sát, nghiên cứu hoạt động thực tế

- Lên ý tưởng giải quyết vấn đề đặt ra

- Nghiên cứu áp dụng các giải pháp công nghệ

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 2

Trang 25

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

- Phân tích, thiết kế hệ thống

- Xây dựng, kiểm thử và cài đặt hệ thống

4 Giải pháp công nghệ

- Cơ sở dữ liệu : SQL, MongoDB

- Ngôn ngữ lập trình : PHP, Python, Html, Css, JavaScript

- Framework : Laravel, Jquery, Bootstrap 4

- Dịch vụ đám mây : Heroku, AWS s3

- Dịch vụ gửi mail : Sendgrid SMTP service

- Dịch vụ theo dõi website : Google Analytics

- Chương 2: Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trình PHP,ngôn ngữ lập trình Python, Laravel Framwork; hệ quản trị cơ sở dữ liệu MYSQL, hệquản trị cơ sở dữ liệu - Nosql MongoDB

- Chương 3: Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầu phi chứcnăng của hệ thống

• Thiết kế sơ đồ use-case

• Xây dựng kịch bản cho từng use-case trong hệ thống

• Xây dựng sơ đồ ERD, kết quả relationship trong hệ quản trị cơ sở dữ liệu

• Xây dựng các sơ đồ hoạt động

• Thiết kế cơ sở dữ liệu

• Xây dựng các chức năng cho hệ thống

- Chương 4: Trình bày giao diện và kết quả làm được

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 3

Trang 26

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

- Chương 5: Kết luận chung cho các chương trong đồ án Trình bày những vấn đề đãgiải quyết cũng như chưa quyết được, từ đó đưa ra các hướng phát triển

Tuy nhiên, với vô vàn những nhà tổ chức du lịch và tour du lịch tràn lan ở trênmạng internet thì việc tìm được một nhà cung cấp tour du lịch và tour du lịch chấtlượng thì lại không dễ dàng cho một người không quen đi du lịch một chút nào

Nhận thấy những khó khăn, bất cập đấy em quyết định sẽ xây dựng website giúpviệc tra cứu thông tin tour du lịch được nhanh chóng và dễ dàng hơn

Hình 1.1: Hình ảnh trang tìm tour của website: travel.com.vn

1.2 Mục đích đề tài

Xây dựng hệ thống website Tra cứu giá tour du lịch - Vuivivu giúp:

- Khách hàng vãng lai:

o Xem được thông tin tour du lịch hiện có trên hệ thống

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 4

Trang 27

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

o Tra cứu tour du lịch trên nhiều nhà cung cấp dịch vụ du lịch chỉ với mộtlượt tìm kiếm

o Xem các thông tin quảng cáo, khuyến mãi cho dịch vụ du lịch

o Xem các Bài đăng hướng dẫn du lịch

- Nhân viên:

o Đăng thông tin quảng cáo, khuyến mãi

o Quản lý thông tin quảng cáo, khuyến mãi

o Đăng Bài đăng

o Quản lý Bài đăng

- Quản lý:

o Quản lý nhân viên

o Quản lý danh mục Bài đăng

o Xem lịch sử cào dữ liệu

o Thống kê lượt truy cập

o Truy xuất dữ liệu lượt truy cập

1.3 Phạm vi đề tài và đối tượng nghiên cứu

Áp dụng cho tất cả những khách hàng có nhu cầu đi du lịch có sử dụng internet

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 5

Trang 28

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

1.3.1 Thông tin cần quản lý

Hình 1.2: Thông tin cần quản lý

1.4 Đặc tả yêu cầu nghiệp vụ (Business Requirments)

1.4.1 Khách hàng vãng lai

- Được phép xem tin tức

- Được phép xem quảng cáo

- Được phép xem banner

- Được phép tìm kiếm tour theo tên, mức giá

Danh mục bài viết

Thêm, sửa, xóa

Bài viết

Thêm

sửa, xóa

Quảng cáo

Thêm

sửa, xóa, trạng thái

Lịch sử cào

4 Theo năm

Trang 29

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

- Được phép cập nhật quảng cáo

1.4.3 Quản lý

- Được phép cập nhật thông tin cá nhân

- Được phép cập nhật nhân viên

- Được phép cập nhật thông tin nhân viên

- Được phép cập nhập nhật danh mục

- Được phép xem lịch sử cào

- Được phép xem thống kê người truy cập

- Được phép truy xuất dữ liệu người truy cập

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 7

Trang 30

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

Hình 2.3: Ngôn ngữ lập trình PHP

2.1.1.2 Đặc điểm

- PHP rất đơn giản và dễ sử dụng

- PHP có thể kết nối cơ sở dữ liệu hiệu quả và giúp quá trình tải ứng dụng nhanh hơn

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 8

Trang 31

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

- PHP sẽ bảo mật hơn nếu sử dụng các Framwork

- Nó quen thuộc hơn đối với các nhà phát triển và hỗ trợ trực tuyến đang được cung cấpcho người mới bắt đầu

- PHP có khả năng tích hợp linh hoạt với các ngôn ngữ lập trình khác

- PHP là nguồn mở và miễn phí

- PHP rất nhẹ và có nhiều Framework có sẵn để lập trình website

- PHP giúp cho quá trình phát triển website trở nên nhanh hơn

2.1.2 Ngôn ngữ lập trình Python

2.1.2.1 Khái niệm

Python được sáng tạo bởi Guido van Rossum vào cuối những năm 1980s, đây làmột ngôn ngữ lập trình cực kỳ phổ biến được sử dụng để phát triển website và thiết kếnhiều ứng dụng khác nhau

Python là ngôn ngữ lập trình hướng đối tượng đa năng Ngôn ngữ này sở hữu cấutrúc dữ liệu cấp cao mạnh mẽ và hệ thống thư viện lớn Python sử dụng cơ chế cấpphát bộ nhớ tự động với cú pháp đơn giản và rõ ràng, giúp người học dễ tiếp cận vàlàm quen, kể cả đối với những người mới bắt đầu học lập trình

Hình 2.4: Ngôn ngữ lập trình Python

2.1.2.2 Đặc điểm

- Ngôn ngữ Python sử dụng chủ yếu các từ khóa bằng tiếng Anh, và hạn chế sử dụngcác từ khóa thuộc ngôn ngữ khác Python cũng phân biệt các kiểu chữ hoa hay chữthường

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 9

Trang 32

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

- Python sử dụng lùi đầu dòng (indentation) như dấu cách hay tab để tạo các khối lệnh.Các khối lệnh con sẽ ở vị trí thụt lùi đầu dòng vào sâu hơn so với khối lệnh cha mà nótrực thuộc

- Ngữ pháp đơn giản, dễ đọc

- Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object-oriented)

- Hỗ trợ module và hỗ trợ gói (package)

- Xử lý lỗi bằng ngoại lệ (Exception)

- Kiểu dữ liệu động ở mức cao

- Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình

- Có khả năng tương tác với các module khác viết trên C/C++ (Hoặc Java cho Jython,hoặc Net cho IronPython)

- Có thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface)

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 10

Trang 33

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

Hình 2.5: Hệ quản trị cơ sở dữ liệu MySQL

2.2.1.2 Đặc điểm

- MySQL là phần mềm quản lý dữ liệu thông qua cơ sở dữ liệu và mỗi một cơ sở dữ liệuđều có bảng quan hệ chứa dữ liệu riêng biệt

- MySQL có cơ chế quản lý sử dụng riêng giúp cho mỗi người sử dụng đều có thể quản

lý cùng lúc một hay nhiều cơ sở dữ liệu khác nhau

- MySQL tương thích tốt với môi trường PHP, giúp hệ thống hoạt động mạnh mẽ

2.2.2 MongoDB

2.2.2.1 Khái niệm

MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql

và được hàng triệu người sử dụng MongoDB là một database hướng tài liệu(document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảngnhư CSDL quan hệ nên truy vấn sẽ rất nhanh

Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (nhưMySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng

ta sẽ dùng khái niệm là collection thay vì bảng So với RDBMS thì trong MongoDBcollection ứng với table, còn document sẽ ứng với row , MongoDB sẽ dùng cácdocument thay cho row trong RDBMS

Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệulưu trữ không cần tuân theo một cấu trúc nhất định Thông tin liên quan được lưu trữcùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 11

Trang 34

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

Hình 2.6: Cơ sở dữ liệu noSql - MongoDB.

2.2.2.2 Đặc điểm

- Dữ liệu trong MongoDB không có sự ràng buộc lẫn nhau, không có join như trongRDBMS nên khi insert, xóa hay update nó không cần phải mất thời gian kiểm tra xem

có thỏa mãn các ràng buộc dữ liệu như trong RDBMS

- MongoDB rất dễ mở rộng (Horizontal Scalability) Trong MongoDB có một khái niệmcluster là cụm các node chứa dữ liệu giao tiếp với nhau, khi muốn mở rộng hệ thống tachỉ cần thêm một node với vào cluster

- Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độ truy vấn thôngtin đạt hiệu suất cao nhất

- Hiệu năng cao: Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơnhẳn so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Với một lượng dữ liệu đủlớn thì thử nghiệm cho thấy tốc độ insert của MongoDB có thể nhanh tới gấp 100 lần

Trang 35

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

- Khi insert/update/remove bản ghi, MongoDB sẽ chưa cập nhật ngay xuống ổ cứng, màsau 60 giây MongoDB mới thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống ổcứng điêù này sẽ là nhược điểm vì sẽ có nguy cơ bị mất dữ liệu khi xảy ra các tìnhhuống như mất điện

Hình 2.8:Mô hình MVC trong Laravel

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 13

Trang 36

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

2.3.2 Mô hình MVC

MVC là từ viết tắt bởi 3 từ Model – View – Controller Đây là mô hình thiết kế

sử dụng trong kỹ thuật phần mềm Mô hình source code thành 3 phần, tương ứng mỗi

từ Mỗi từ tương ứng với một hoạt động tách biệt trong một mô hình

Model (M):

Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng Bộ phận này làmột cầu nối giữa 2 thành phần bên dưới là View và Controller Model thể hiện dướihình thức là một cơ sở dữ liệu hoặc có khi chỉ đơn giản là một file XML bình thường.Model thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất, xử lý dữliệu,…

View (V):

Đây là phần giao diện (theme) dành cho người sử dụng Nơi mà người dùng cóthể lấy được thông tin dữ liệu của MVC thông qua các thao tác truy vấn như tìm kiếmhoặc sử dụng thông qua các website

Thông thường, các ứng dụng web sử dụng MVC View như một phần của hệthống, nơi các thành phần HTML được tạo ra Bên cạnh đó, View cũng có chức năngghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, Viewkhông có mối quan hệ trực tiếp với Controller, cũng không được lấy dữ liệu từController mà chỉ hiển thị yêu cầu chuyển cho Controller mà thôi

Controller (C):

Controller đóng vai trò trung gian giữa Model và View Thông tin người dùng

từ View được gửi cho Controller xử lý, sau đó Controller tương tác với Model để lấy

dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về cho View Nói đơn giảnhơn, Controller là lớp điều khiển, có chức năng điều khiển các hành vi, yêu cầu

Luồng xử lý trong MVC

- Khi một yêu cầu của từ máy khách (Client) gửi đến Server Thì bị Controller trongMVC chặn lại để xem đó là URL request hay sự kiện

- Sau đó, Controller xử lý input của user rồi giao tiếp với Model trong MVC

- Model chuẩn bị data và gửi lại cho Controller

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 14

Trang 37

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

- Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiển thịcho người dùng trên trình duyệt

SVTH: Đinh Ngọc Trang GVHD: TS Phạm Tuấn 15

Trang 38

WEBSITE TRA CỨU GIÁ TOUR DU LỊCH - VUIVIVU

 Tour du lịch theo giá

 Tour du lịch theo nơi bán

Ngày đăng: 07/03/2024, 10:45

w