Bản báo cáo đồ án tốt nghiệp với đề tài Xây dựng website cho công ty du lịch Việt bằng ngôn ngữ PHP. Giới thiệu các tour du lịch, đặt tour, tin tức tour du lịch, việc quản lý các tour và đặc biệt có tích hợp cổng ngân lượng vào quá trình thanh toán.
Trang 1MỤC LỤC 1
DANH SÁCH CÁC HÌNH VẼ 4
DANH SÁCH CÁC BẢNG BIỂU 7
DANH SÁCH TỪ VIẾT TẮT 8
LỜI NÓI ĐẦU 9
LỜI CẢM ƠN 10
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 11
1.1 Tổng quan 11
1.2 Lý do chọn đề tài 11
1.3 Mục tiêu chọn đề tài 12
1.4 Giới hạn và phạm vi của đề tài 12
1.5 Nội dung thực hiện 12
1.6 Phương pháp tiếp cận 13
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 14
2.1 HTML 14
2.2 CSS 14
2.3 Javascript 15
2.4 PHP 15
2.4.1 Khái niệm PHP 15
2.4.2 Lịch sử phát triển của PHP 15
2.4.3 Môi trường hoạt động của PHP 17
2.5 Tổng quan về ngôn ngữ MySQL 18
2.5.1 Khái niệm MySQL 18
2.5.2 Lịch sử phát triển 19
2.5.3 Lý do sử dụng MySQL 20
2.6 Tổng quan về Twitter Bootstrap 21
2.6.1 Khái niệm Twitter Bootstrap 21
2.6.2 Lịch sử phát triển 22
2.6.3 Lợi ích của Bootstrap 22
2.6.4 Grid System trong Bootstrap 23
CHƯƠNG 3: NỘI DUNG THỰC HIỆN 25
3.1 Khảo sát và đặc tả yêu cầu 25
Trang 23.1.2 Các yêu cầu phi chức năng 28
3.2 Phân tích thiết kế hệ thống 28
3.2.1 Các chức năng của hệ thống 28
3.2.2 Các tác nhân của hệ thống 29
3.3 Biểu đồ Use Case 30
3.3.1 Use Case mức tổng quát 30
3.3.2 Use Case Đặt tour 30
3.3.3 Use Case Đăng nhập 31
3.3.4 Use Case Quản lý loại tour 33
3.3.5 Use Case Quản lý khách sạn 35
3.3.6 Use Case Quản lý hướng dẫn viên 37
3.3.7 Use Case Quản lý tour 39
3.3.8 Use Case Quản lý chi tiết khách sạn 41
3.3.9 Use Case Quản lý thành viên 43
3.3.10 Use Case Quản lý khuyến mại 45
3.3.11 Use Case Liên hệ 47
3.3.12 Use Case Quản lý liên hệ 48
3.3.13 Use Case Quản lý đặt tour 49
3.3.14 Use Case Quản lý tin tức 51
3.4 Biểu đồ tuần tự 53
3.4.1 Biểu đồ tuần tự cho Use Case Đăng nhập 53
3.4.2 Biểu đồ tuần tự Use Case Đặt tour 53
3.4.3 Biểu đồ tuần tự Use Case Liên hệ 53
3.4.4 Biểu đồ tuần tự Use Case Quản lý đặt tour 54
3.4.5 Biểu đồ tuần tự Use Case phản hồi liên hệ 55
3.4.6 Biểu đồ tuần tự Use Case quản lý hướng dẫn viên 56
3.4.7 Biểu đồ tuần tự Use Case quản lý loại tour 58
3.4.8 Biểu đồ tuần tự quản lý tour du lịch 60
3.4.9 Biểu đồ tuần tự Use Case quản lý khách sạn 62
3.4.10 Biểu đồ tuần tự Use Case quản lý khuyến mại 64
3.4.11 Biểu đồ tuần tự Use Case quản lý chi tiết khách sạn 66
3.4.12 Biểu đồ tuần tự Use Case quản lý tin tức 68
3.4.13 Biểu đồ tuần tự Use Case quản lý thành viên 70
3.5 Biểu đồ lớp 72
Trang 33.6 Thiết kế cơ sở dữ liệu 72
3.6.1 Danh sách các bảng 72
3.6.2 Danh sách các bảng cơ sở dữ liệu 73
3.6.3 Lược đồ Cơ sở dữ liệu 76
3.7 Thiết kế giao diện 77
3.7.1 Giao diện người dùng 77
3.7.2 Giao diện quản trị 82
CHƯƠNG 4: KẾT LUẬN 90
3.8 Kết quả đạt được của đề tài 90
3.9 Hạn chế của đề tài 90
3.10 Hướng phát triển của đề tài 90
TÀI LIỆU THAM KHẢO 91
[1] Giáo trình hướng dẫn thực hành PHP và MySQL toàn tập (Nguyễn Tấn Trường) 91
[2] Một số bài viết tại các website: 91
Trang 4DANH SÁCH CÁC HÌNH VẼ
Hình 2.1 Mô hình hoạt động của PHP 18
Hình 2.2 Grid System của Bootstrap 23
Hình 3.1 Biểu đồ Use Case tổng quát 30
Hình 3.2 Biểu đồ Use Case Đặt tour du lịch 30
Hình 3.3 Biểu đồ Use Case Đăng nhập 31
Hình 3.4 Biểu đồ Use Case Quản lý loại tour 33
Hình 3.5 Biểu đồ Use Case Quản lý khách sạn 35
Hình 3.6 Biểu đồ Use Case Quản lý hướng dẫn viên 37
Hình 3.7 Biểu đồ Use Case Quản lý tour 39
Hình 3.8 Biểu đồ Use Case Quản lý chi tiết khách sạn 41
Hình 3.9 Biểu đồ Use Case Quản lý thành viên 43
Hình 3.10 Biểu đồ Use Case Quản lý khuyến mại 45
Hình 3.11 Biểu đồ Use Case Liên hệ 47
Hình 3.12 Biểu đồ Use Case Quản lý liên hệ 48
Hình 3.13 Biểu đồ Use Case Quản lý đặt tour 49
Hình 3.14 Biểu đồ Use Case Quản lý tin tức 51
Hình 3.15 Biểu đồ tuần tự cho Usce Case Đăng nhập 53
Hình 3.16 Biểu đồ tuần tự Use Case Đặt tour 53
Hình 3.17 Biểu đồ tuần tự Use Case Liên hệ 53
Hình 3.18 Biểu đồ tuần tự Use Case quản lý đặt tour 54
Hình 3.19 Biểu đồ tuần tự Use Case sửa đặt tour 54
Hình 3.20 Biểu đồ tuần tự Use Case xóa đặt tour 55
Hình 3.21 Biểu đồ tuần tự Use Case quản lý liên hệ 55
Hình 3.22 Biều đồ tuần tự Use Case quản lý hướng dẫn viên 56
Hình 3.23 Biểu đồ tuần tự Use Case thêm hướng dẫn viên 56
Hình 3.24 Biểu đồ tuần tự Use Case sửa hướng dẫn viên 57
Hình 3.25 Biểu đồ tuần tự Use Case xóa hướng dẫn viên 57
Hình 3.26 Biểu đồ tuần tự Use Case quản lý loại tour 58
Hình 3.27 Biểu đồ tuần tự Use Case thêm loại tour 58
Hình 3.28 Biểu đồ tuần tự Use Case sửa loại tour 59
Trang 5Hình 3.29 Biểu đồ tuần tự Use Case xóa loại tour 59
Hình 3.30 Biểu đồ tuần tự quản lý tour du lịch 60
Hình 3.31 Biểu đồ tuần tự Use Case thêm tour du lịch 60
Hình 3.32 Biểu đồ tuần tự Use Case sửa tour du lịch 61
Hình 3.33 Biều đồ tuần tự Use Case xóa tour du lịch 61
Hình 3.34 Biểu đồ tuần tự Use Case quản lý khách sạn 62
Hình 3.35 Biểu đồ tuần tự Use Case thêm khách sạn 62
Hình 3.36 Biểu đồ tuần tự Use Case sửa khách sạn 63
Hình 3.37 Biểu đồ tuần tự Use Case xóa khách sạn 63
Hình 3.38 Biểu đồ tuần tự Use Case quản lý khuyến mại 64
Hình 3.39 Biểu đồ tuần tự Use Case thêm khuyến mại 64
Hình 3.40 Biểu đồ tuần tự Use Case sửa khuyến mại 65
Hình 3.41 Biểu đồ tuần tự Use Case xóa khuyến mại 65
Hình 3.42 Biểu đồ tuần tự Use Case quản lý chi tiết khách sạn 66
Hình 3.43 Biểu đồ tuần tự Use Case thêm chi tiết khách sạn 66
Hình 3.44 Biểu đồ tuần tự Use Case sửa chi tiết khách sạn 67
Hình 3.45 Biểu đồ tuần tự Use Case xóa chi tiết khách sạn 67
Hình 3.46 Biểu đồ tuần tự Use Case quản lý tin tức 68
Hình 3.47 Biểu đồ tuần tự Use Case thêm tin tức 68
Hình 3.48 Biểu đồ tuần tự Use Case sửa tin tức 69
Hình 3.49 Biểu đồ tuần tự Use Case xóa tin tức 69
Hình 3.50 Biểu đồ tuần tự Use Case quản lý thành viên 70
Hình 3.51 Biểu đồ tuần tự Use Case thêm thành viên 70
Hình 3.52 Biểu đồ tuần tự Use Case sửa thành viên 71
Hình 3.53 Biểu đồ tuần tự Use Case xóa thành viên 71
Hình 3.54 Biểu đồ lớp 72
Hình 3.55 Mô hình Cơ sở dữ liệu 76
Hình 3.56 Giao diện trang chủ 77
Hình 3.57 Giao diện trang danh sách tour 78
Hình 3.58 Giao diện trang tin tức 79
Hình 3.59 Giao diện trang giới thiệu 80
Trang 6Hình 3.61 Giao diện trang tìm kiếm theo kết quả 81
Hình 3.62 Giao diện trang đăng nhập 82
Hình 3.63 Giao diện trang danh sách tour du lịch 82
Hình 3.64 Giao diện trang Thêm tour du lịch 83
Hình 3.65 Giao diện Sửa tour du lịch 84
Hình 3.66 Giao diện sửa nhiều tour du lịch 85
Hình 3.67 Giao diện trang Xem danh sách loại tour 86
Hình 3.68 Giao diện Trang thêm loại tour 86
Hình 3.69 Giao diện trang Sửa loại tour 86
Hình 3.70 Giao diện trang Xem danh sách khách sạn 86
Hình 3.71 Giao diện trang Thêm khách sạn 87
Hình 3.72 Giao diện trang Xem danh sách hướng dẫn viên 87
Hình 3.73 Giao diện trang Thêm hướng dẫn viên 87
Hình 3.74 Giao diện trang Xem danh sách tin tức 88
Hình 3.75 Giao diện trang Thêm tin tức 88
Hình 3.76 Giao diện trang Xem danh sách khuyến mại 88
Hình 3.77 Giao diện trang Thêm khuyến mại 89
Hình 3.78 Giao diện trang Sửa khuyến mại 89
Trang 7DANH SÁCH CÁC BẢNG BIỂU
Bảng 2.1 Các lớp tùy chọn của Grid System trong Bootstrap 24
Bảng 3.1 Các yêu cầu chức năng của ứng dụng 28
Bảng 3.2 Danh sách các bảng cơ sở dữ liệu 72
Bảng 3.3 Bảng lưu thông tin hướng dẫn viên 73
Bảng 3.4 Bảng lưu thông tin khách sạn 73
Bảng 3.5 Bảng lưu thông tin loại tour 73
Bảng 3.6 Bảng lưu thông tin các tour du lịch 74
Bảng 3.7 Bảng lưu thông tin chi tiết về khách sạn và tour 74
Bảng 3.8 Bảng lưu thông tin đăng ký tour du lịch 74
Bảng 3.9 Bảng lưu thông tin thành viên 74
Bảng 3.10 Bảng lưu liên hệ từ khách hàng 75
Bảng 3.11 Bảng lưu tin tức của website 75
Bảng 3.12 Bảng lưu thông tin các khuyến mại du lịch 75
Trang 8DANH SÁCH TỪ VIẾT TẮT
HTML Hyper Text Markup Language Ngôn ngữ Đánh dấu Siêu văn
bảnXML Extensible Markup Language Ngôn ngữ Đánh dấu Mở rộngPHP Hypertext Preprocessor Ngôn ngữ lập trình PHP
CSS Cascading Style Sheets Ngôn ngữ kịch bản quy định
cách trình bày của thẻ HTML
Trang 9LỜI NÓI ĐẦU
Nền kinh tế các nước trên thế giới đang phát triển mạnh mẽ, trong đó có cả ViệtNam Mức sống, thu nhập của người dân tăng lên, cải thiện rất nhiều theo từng năm
Do đời sống vật chất đã đầy đủ, nên phát sinh thêm nhu cầu thoải mái về tinh thần làđiều dễ hiểu Bởi vậy, ngành du lịch trong nước đang ngày càng chiếm tỉ trọng lớntrong cơ cấu nền kinh tế nước ta Du lịch dần trở thành môi trường cạnh tranh khốc liệtvới các công ty, tập đoàn kinh doanh trong lĩnh vực này Trong thời đại mà Internet đãtrở nên hết sức phổ biến trong mọi lĩnh vực kinh tế, chính trị, xã hội, được phổ biếnrộng rãi đến nhiều tầng lớp trong xã hội, việc thiết kế website du lịch trở nên đặc biệtquan trọng đối với mọi doanh nghiệp kinh doanh du lịch nhưng chưa có website Mộtcông ty du lịch chất lượng phục vụ tốt thôi là chưa đủ, họ phải có website để quảng báthương hiệu qua Internet nhằm thu hút khách hàng đến với mình
Nhận thấy tiềm năng phát triển và khả năng áp dụng thực tế rất cao, cho nên emquyết định chọn đề tài là: Xây dựng Website cho công ty Du Lịch Việt
Sinh viên thực hiện
Vũ Thị Chang
Trang 10LỜI CẢM ƠN
Sau quá trình học tập và thực hiện đồ án tốt nghiệp, em đã hoàn thành xong đềtài của mình Đầu tiên, em xin gửi lời cảm ơn tới tất cả thầy cô trong khoa Công nghệthông tin của trường nói chung – là những người đã cung cấp, chỉ bảo các kiến thứcnền tảng, và đặc biệt là cô Nguyễn Thị Thanh Huệ nói riêng, giáo viên hướng dẫn trựctiếp đồ án của em Cô là người luôn theo dõi tiến độ làm việc, đưa ra những góp ý, gợi
ý quý giá cho em trong quá trình phát triển đồ án, nhắc nhở em về những vấn đề cầnkhắc phục để em có thể hoàn thành đồ án đúng thời gian, đảm bảo tiến độ công việc
Dù đã cố gắng làm việc với sự tập trung cao, song em cũng không thể tránhkhỏi một số sai sót do kiến thức về công nghệ mới tiếp cận trong đề tài còn chưanhiều, thời gian thực hiện cũng hạn hẹp Em mong sẽ nhận được những góp ý, nhậnxét từ thầy cô và các bạn để em có thể làm tốt hơn nữa các đề tài và dự án sau này
Em xin chân thành cảm ơn
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Tổng quan
Trong những năm gần đây, do công nghệ thông tin đang phát triển rất mạnh nênviệc ứng dụng tin học vào du lịch ngày càng được quan tâm hơn Du lịch dần trởthành môi trường cạnh tranh khốc liệt với các công ty, tập đoàn kinh doanh trong lĩnhvực này Trong thời đại mà Internet đã trở nên hết sức phổ biến trong mọi lĩnh vựckinh tế, chính trị, xã hội, được phổ biến rộng rãi đến nhiều tầng lớp trong xã hội, việcthiết kế website du lịch trở nên đặc biệt quan trọng đối với mọi doanh nghiệp kinhdoanh du lịch nhưng chưa có website.Việc ứng dụng công nghệ thông tin trong công
ty du lịch là một yêu cầu cấp bách nhằm nâng cao chất lượng công tác quản lý công ty,góp phần quảng bá thương hiệu qua Internet nhằm thu hút khách hàng
1.2 Lý do chọn đề tài
Thương mại điện tử và lợi ích cho doanh nghiệp thương mại điện tử nên đượcxem là một công cụ hỗ trợ thương mại truyền thống trong bối cảnh Việt Nam hiện nay.Thương mại điện tử ngày càng phát triển, thay thế thương mại truyền thống, chúngđem lại rất nhiều lợi ích
Lợi ích lớn nhất là tăng doanh thu: với thương mại điện tử, đối tượng kháchhàng của bạn giờ đây đã không còn bị giới hạn về mặt địa lý, hay thời gian làm việc Bạn không ngồi chờ khách hàng tự tìm đến với bạn mà bạn đang tích cực và chủ động
đi tìm khách hàng cho mình Vì thế, chắc chắn rằng số lượng khách hàng của bạn sẽtăng lên đáng kể dẫn đến tăng doanh thu
Thứ hai là cắt giảm được chi phí quảng cáo: với thương mại điện tử, bạn khôngphải tốn kém nhiều cho việc thuê cửa hàng, mặt bằng, đông đảo nhân viên phục vụ,bạn cũng không cần phải đầu tư nhiều cho kho chứa
Maketing toàn cầu với chi phí cực kì thấp là lợi ích thứ ba: chỉ với chi phí cực
kì nhỏ bạn có thể đưa thông tin quảng cáo của bạn đến với hàng trăm triệu người xem
từ khắp nơi trên thế giới Đây là điều mà chỉ có thương mại điện tử làm được chodoanh nghiệp
Lợi ích thứ tư đó là dịch vụ tốt hơn cho khách hàng, bạn có thể tạo điều kiệncho khách hàng làm mọi thứ trực tiếp từ trên mạng, tiết kiệm thời gian cho cả hai
Trang 12Lợi ích cuối cùng đó là lợi thế cạnh tranh: việc kinh doanh trên mạng là một
“sân chơi” cho sự sáng tạo, nơi đây, bạn tha hồ áp dụng những ý tưởng hay nhất, mớinhất về dịch vụ hỗ trợ, chiến lược tiếp thị
Ngành du lịch là một ngành đang ngày càng phát triển, chiếm tỉ trọng lớn trong
cơ cấu kinh tế nước ta Việc áp dụng thương mại điện tử, đặc biệt là hoạt độngmarketing online là điều vô cùng quan trọng, cần thiết Để thực hiện được điều đó, họcần có một website, thông qua website, các công ty du lịch có thể quảng bá các sảnphẩm của mình cung cấp, cung cấp các dịch vụ trực tuyến như đặt vé, đặt phòng,…nhằm đưa các sản phẩm của công ty đến gần người tiêu dùng hơn
Với những lý do đó, em quyết định chọn đề tài “Xây dựng Website cho công
ty Du Lịch Việt”.
1.3 Mục tiêu chọn đề tài
Thiết kế một website du lịch phải đảm bảo tính tiện dụng đối với cả người dùng
và người quản trị.Nội dung và cách trình bày của website phải rõ ràng mạch lạc và dễ
sử dụng
- Vận dụng các kiến thức đã được học về HTML cùng với việc tìm hiểu thêm
về ngôn ngữ lập trình web PHP và MySQL
- Website được thiết kế trên nền tảng HTML và lập trình trên ngôn ngữ PHPtrên cơ sở dữ liệu MySQL
1.4 Giới hạn và phạm vi của đề tài
Đề tài xây dựng một website quảng bá hoạt động du lịch cho công ty Du LịchViệt Các kiến thức được sử dụng bao gồm: Lập trình PHP và MySQL, sử dụngJavascript và Twitter Bootstrap vào việc xử lý và thiết kế website Công cụ lập trìnhđược sử dụng bao gồm: Trình soạn thảo code Sublime Text, chương trình tạo WebServer XAMPP (được tích hợp sẵn Apache, PHP, MySQL)
Hệ thống website cho công ty Du Lịch Việt sẽ được ứng dụng vào thực tế
1.5 Nội dung thực hiện
Nội dung thực hiện được như sau:
- Nghiên cứu các website trên ngôn ngữ PHP.
Trang 13- Tìm hiểu một số website du lịch trên mạng.
- Thiết kế đặc tả hệ thống.
- Xây dựng cơ sở dữ liệu trên MySQL.
- Lập trình cho các chức năng của website.
- Kiểm thử đơn vị.
1.6 Phương pháp tiếp cận
Cách tiếp cận: Nghiên cứu các web trên các nền tảng công nghệ từ trước
Sử dụng các phương pháp nghiên cứu:
- Phương pháp đọc tài liệu
- Phương pháp phân tích mẫu
Phương pháp thực nghiệm làm những module nhỏ
Trang 14CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2
2.1 HTML
HTML(Hyper Text Markup Languages – tiếng Anh) hay còn gọi là “Ngôn ngữ
đánh dấu siêu văn bản” nó được sử dụng để tạo nên các trang web thông qua các thẻđánh dấu Do vậy HTML không phải là một ngôn ngữ lập trình mà nó chỉ là ngôn ngữđánh dấu Phần mở rộng của tập tin HTML thường là html hoặc htm.Các trình duyệt sẽđọc tập tin HTML và hiển thị chúng dưới dạng trang web.Các thẻ HTML sẽ được ẩn
đi, chỉ hiển thị nội dung văn bản và các đối tượng khác: hình ảnh, media.Với các trìnhduyệt khác nhau đều hiển thị một tập HTML với 1 kết quả nhất định Các trang HTMLđược gửi đi qua mạng internet theo giao thức HTTP
HTML không những cho phép nhúng thêm các đối tượng hình ảnh, âm thanh màcòn cho phép nhúng các kịch bản vào trong đó như các ngôn ngữ kịch bản nhưJavascript để tạo hiệu ứng động cho trang web Để trình bày trang web hiệu quả hơnthì HTML cho phép sử dụng kết hợp với CSS HTML chính thức là chuẩn của W3C từtháng 1 năm 97 với phiên bản HTML 3.2 Trước đó thì HTML xuất bản theo chuẩncủa RFC
HTML được tương thích với mọi hệ điều hành cùng các trình duyệt của nó Khảnăng dễ học, dễ viết là một ưu điểm của HTML không những vậy việc soạn thảo đòihỏi hết sức đơn giản và thông thường sử dụng notepad là đã đủ HTML vẫn tiếp tụcđược phát triển, phiên bản hiện tại là HTML 5 – một phiên bản nâng cấp của XHTMLHTML cải tiến khá nhiều đặc biệt hỗ trợ mạnh mẽ các phần tử multimedia mà khôngcần các plugin HTML5 nói chung mạnh mẽ hơn nhiều không chỉ về tốc độ và độ thíchứng cao mà chính là khả năng hỗ trợ API (Application Programming Interface - giaodiện lập trình ứng dụng) và DOM (Document Object Model – mô hình đối tượng tàiliệu hay cây cấu trúc dữ liệu)
Trang 152.2 CSS
CSS-Cascading Style Sheet dùng để trình bày các tài liệu viết bằng HTML hoặcXHTML Ngoài ra ngôn ngữ định kiểu theo tầng cũng có thể dùng cho XML, SVG,XUL…Các đặc điểm kĩ thuật của CSS được duy trì bởi tổ chức W3C
CSS có cấu trúc đơn giản và sử dụng các từ tiếng anh để đặt tên cho các thuộctính CSS khi sử dụng có thể viết trực tiếp xen lẫn vào mã HTML hoặc tham chiếu từmột file css riêng biệt Và hiện nay CSS thường được viết riêng thành một tập tin với
mở rộng là css Chính vì vậy mà các trang web có sử dụng CSS thì mã HTML sẽ trởnên ngắn gọn và trong sáng hơn Ngoài ra có thể sử dụng 1 tập tin CSS đó cho nhiềuwebsite tiết kiệm rất nhiều thời gian và công sức Một đặc điểm quan trọng đó là tính
kế thừa của CSS do đó sẽ giảm được số lượng dòng code mà vẫn đạt được yêu cầu.Tuy nhiên đối với CSS thì các trình duyệt hiểu theo kiểu riêng của nó Do vậyviệc trình bày 1 nội dung trên các trình duyệt khác nhau là không thống nhất
2.3 Javascript
Javascript là một ngôn ngữ lập trình kịch bản dựa trên các đối tượng, được pháttriển từ các ý niệm nguyên mẫu Được sử dụng rộng rãi trong các trang web, nó đượcphát triển bởi Brendan Eich của hãng truyền thông Nestcape, đầu tiên tên gọi làMocha, sau đổi thành LiveScript và cuối cùng mới có tên gọi là JavaScript Cú phápcủa JavaScript tương tự C giống Selt hơn là Java Nó sử dụng có 2 dạng: nhúng trựctiếp vào mã html, hoặc tham chiếu từ một tập tin với phần mở rộng là *.js Phiên bảnJavaScript mới nhất là 1.5, tương ứng với các ECMA-262- phiên bản chuẩn hóa củajavaScript Trình duyệt Mozilla 1.8 beta 1 hỗ trợ không đầy đủ cho E4X- phần mởrộng cho JavaScript làm việc với XML, được chuẩn hóa trong ECMA-357
2.4 PHP
2.4.1 Khái niệm PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trìnhkịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết chomáy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và cóthể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc
độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm
Trang 16tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành mộtngôn ngữ lập trình web phổ biến nhất thế giới
2.4.2 Lịch sử phát triển của PHP
PHP/FI: 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ủacá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ênmạ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 các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụngweb đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi ngườixem, 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/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian
khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã đượcthay thế bởi các bản alpha đầu tiên của PHP 3.0
PHP 3: PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi
với các phiên bản PHP mà chúng ta được biết ngày nay
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộngmạnh mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầngchặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mởrộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun
mở rộng mới Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫnđến thành công vang dội của PHP 3.0 Các tính năng khác được giới thiệu trong PHP3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quánkhác
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9tháng được cộng đồng kiểm nghiệm
PHP 4: Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công
bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi củaPHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cảitiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy được trên PHP3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên
Trang 17thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thếnày một cách có hiệu quả.
Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủyếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo
bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mậthơn và cung cấp một vài các cấu trúc ngôn ngữ mới
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàngtriệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet
PHP 5: Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát
triển PHP tự mãn Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kémcủa PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML,không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ webyếu Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộngđồng kiểm nghiệm Đó cũng là phiên bản đầu tiên của Zend Engine 2.0 Phiên bảnBeta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rấtđược chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãikhác đã bị loại khỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã đượccông bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khảnăng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàmmới PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dàicác bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bảnsản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thựcHTTP
PHP 6: Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản
sử dụng thử đã có thể được download tại địa chỉ http://snaps.php.net Phiên bản PHP 6được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗtrợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng về vấn đề này); hỗtrợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ
sẽ bị đưa ra thành thư viện PECL
Trang 182.4.3 Môi trường hoạt động của PHP
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ìnhduyệ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
- 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
PHP hoạt động như thế nào?
Hình 2.1 Mô hình hoạt động của PHP
Khi người sử dụng gọi trang PHP, Web Server sẽ triệu gọi PHP Engine để
Trang 192.5 Tổng quan về Hệ quản trị cơ sở dữ liệu MySQL
2.5.1 Khái niệm MySQL
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à 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ênnhiề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 CSDL trêninternet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ
Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệđiều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, NovellNetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan
hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nólàm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
MySQL là một RDBMS nhanh và dễ dàng để sử dụng MySQL đang được sửdụng cho nhiều công việc kinh doanh từ lớn tới nhỏ MySQL được phát triển, đượccông bố, được hỗ trợ bởi MySQL AB, là một công ty của Thụy Điển MySQL trởthành khá phổ biến vì nhiều lý do:
- MySQL là mã ngồn mở Vì thế, để sử dụng nó, bạn chẳng phải mất một xu nào
- MySQL là một chương trình rất mạnh mẽ
- 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áttriể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ữatrong 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 bạn có thể tăng kích cỡ này (nếu hệ điều hành của bạn có thể xử lý nó)
để đạt tới giới hạn lý thuyết là 8 TB
Trang 20- MySQL là có thể điều chỉnh Giấy phép GPL mã nguồn mở cho phép lập trìnhviên sửa đổi phần mềm MySQL để phù hợp với môi trường cụ thể của họ.
2.5.2 Lịch sử phát triển
Các cột mốc đáng chú ý trong phát triển MySQL bao gồm:
- Ban đầu phát triển MySQL là Michael Widenius và Daivid Axmark bắtđầu vào năm 1994
- Nội bộ đầu tiên phát hành ngày 23 tháng 5 năm 1995
- Phiên bản 3,19 : Cuối năm 1996, từ www.tcx.se
- Phiên bản 3,2: Tháng 1 năm 1997
- Phiên bản Windows được phát hành vào ngày 8 tháng 1 năm 1998 choWindows 95 và NT
- Phiên bản 3,21 : sản xuất phát hành năm 1998, từ www.mysql.com
- Phiên bản 3,22 : alpha, beta từ năm 1998
- Phiên bản 3,23 : beta từ năm 2000, sản xuất phát hành ngày 22/1/2001
- Phiên bản 4,0: beta từ tháng 8 năm 2002 sản xuất, phát hành tháng 3 năm2003
- Phiên bản 4,01 beta từ tháng 8 năm 2003
- Phiên bản 4,1: beta từ tháng 6 năm 2004 và sản xuất, phát hành 10/2004
- Phiên bản 5,0 : phiên bản beta từ tháng 3/2005, sản xuất phát hành tháng10/2005
- Sun Microsystems mua lại MySQL AB ngày 26 tháng 2 năm 2008
- Phiên bản 5,1: sản xuất phát hành năm 2008, nhưng bản này có nhiều lỗi
- Oracle mua lại Sun Microsystems vào ngày 27/1/2010
2.5.3 Lý do sử dụng MySQL
Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ
liệu nhanh nhất mà bạn có thể có
Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở
dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn
Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ
chức
Trang 21Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa
cho tất cả các hệ thống cơ sở dữ liệu hiện đại Bạn cũng có thể truy cập MySQL bằngcách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giaothức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft)
Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian Các
client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn có thể truy cậpMySQL tương tác với sử dụng một vài giao diện để bạn có thể đưa vào các truy vấn vàxem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web…
Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ
liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữliệu của bạn với bất kỳ ai, bất kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cậpcho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thể nhìn được
Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải
UNIX chẳng hạn như Windows hay OS/2 MySQL chạy được các với mọi phần cứng
từ các máy PC ở nhà cho đến các máy server
Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt
web của bạn Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán,bạn có thể lấy mã nguồn và tìm tòi nó Nếu bạn không thích một vài cái, bạn có thểthay đổi nó
Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng
đồng MySQL rất có trách nhiệm Họ trả lời các câu hỏi trên mailing list thường chỉtrong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phụctrong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức cósẵn trên Internet
2.6 Tổng quan về Twitter Bootstrap
2.6.1 Khái niệm Twitter Bootstrap
Bootstrap là Front-end framework, là một bộ sưu tập miễn phí các công cụ đểtạo ra các trang web và các ứng dụng web Nó chứa HTML và CSS dựa trên các mẫuthiết kế cho kiểu chữ, hình thức, các nút, chuyển hướng và các thành phần giao diệnkhác, cũng như mở rộng JavaScript tùy chọn
Trang 22Bootstrap được phát triển bởi Mark Otto và Jacob Thornton tại Twitter như mộtframework, một công cụ để phục vụ công việc nội bộ của Twitter Trước khi phát triểnBootstrap, có nhiều thư viện khác nhau đã được sử dụng để phát triển giao diện, dẫnđến mâu thuẫn, xung đột.Bootstrap ra đời để khắc phục những yếu tố này, cũng nhưgiúp các nhà phát triển, lập trình tại Twitter có thể triển khai công việc nhanh hơn, tiệnlợi và đồng bộ hơn.
Bootstrap tương thích với các phiên bản mới nhất của tất cả các trình duyệt nổitiếng trên thế giới như Chrome, Firefox, IE, Opera
Kể từ phiên bản 2.0 trở l nó cũng hỗ trợ Responsive Web Design Thiết kế và
bố trí của các trang web tự động điều chỉnh, tự động tương thích các thiết bị được sửdụng (máy tính để bàn, máy tính bảng, điện thoại di động)
Responsive là gì?
Hiểu một cách đơn giản Web Responsive là phong cách thiết kế website làmsao cho phù hợp trên tất cả các thiết bị, mọi độ phân giải màn hình Một website đẹptrên máy tính nhưng khi xem trên điện thoại bố cục lộn xộn, hình ảnh, bài viết khôngcân đối thì không thể gọi là Web Responsive
Ví dụ về Web Responsive: Khi mở trang chủ website Responsive, rồi thu nhỏtrình duyệt hoặc đổi độ phân giải màn hình, người dùng sẽ thấy website của mìnhkhông hề xuất hiện Scrollbar ngang, mà nó sẽ tự động co dãn sao cho phù hợp vớichiều rộng màn hình máy tính
Hoặc đơn giản và hay bắt gặp nhất là khi sử dụng các thiết bị cảm ứng để lướtweb thì với chế độ xoay thiết bị thì hình ảnh , trang web của sẽ chuyển đổi một cáchuyển chuyển sang chế độ hiện thị khác Nó không chỉ đẹp mắt và phù hợp hơn vớimàn hình mới mà nó còn tạo hiệu ứng tốt cho người dùng, tất nhiên đó là điều nhàthiết kế rất cần cho website của mình
2.6.2 Lịch sử phát triển
Bootstrap được phát triển bởi Mark Otto và Jacob Thornton tại Twitter như mộtkhuôn khổ để khuyến khích nhất quán giữa các công cụ nội bộ Trước khi Bootstrap,thư viện khác nhau đã được sử dụng để phát triển giao diện, dẫn đến mâu thuẫn và làmột gánh nặng bảo dưỡng cao
Trang 23Bootstrap được phát hành như là một sản phẩm mã nguồn mở trong tháng 8năm 2011 trên GitHub Trong tháng 6 năm 2014 Bootstrap là dự án số 1 trên GitHub.
2.6.3 Lợi ích của Bootstrap
- Tiết kiệm thời gian: Boostrap giúp người thiết kế giao diện website tiết kiệm rấtnhiều thời gian Các thư viện Bootstrap có những đoạn mã sẵn sàng để áp dụngvào website của mình Không phải tốn quá nhiều thời gian để tự viết code chogiao diện của mình
- Tùy biến cao: Hoàn toàn có thể dựa vào Bootstrap và phát triển nền tảng giao
diện của chính mình Bootstrap cung cấp một hệ thống Grid System mặc định
bao gồm 12 cột và độ rộng 940px Có thể thay đổi, nâng cấp và phát triển dựatrên nền tảng này
- Responsive Web Design: Với Bootstrap, việc phát triển giao diện website đểphù hợp với đa thiết bị trở nên dễ dàng hơn bao giờ hết Đây là xu hướng pháttriển giao diện website đang rất được ưu chuộng trên thế giới có thể có
2.6.4 Grid System trong Bootstrap
Grid System là 1 hệ thống của Bootstrap, tạo ra với 12 cột trong một trang nộidung và tự động sắp xếp theo kích thước hiển thị của thiết bị (Desktop, Tablet,Phone…), từ đó chúng ta dễ dàng phân bố cục cho Bootsrap theo thiết kế Reponsive.Cách hoạt động của grid system:
Mỗi một hàng, phải được bao bọc bởi class container (cố định kích thước rộng
là 768px) hoặc container-fluid (không giới hạng chiều rộng) để canh giữa và cáchkhoảng cách lề
Mỗi một hàng gồm các nhóm cột Nội dung nằm trong cột, mỗi cột có thể chứa
12 cột con khác Giữa các cột sẽ có khoảng padding (đệm) Khoảng đệm của cột đầu
và cuối sẽ được quy định bởi rows Nếu có nhiều hơn 12 cột trên một hàng thì mỗinhóm 12 cột sẽ cố định và phần dư sẽ được chuyển sang hàng mới
Grid system được đinh nghĩa với các kích thước màn hình khác nhau mà hiểnthi khác nhau Ví dụ ta có lớp col-md-* sẽ không hiển thị đúng cột nếu màn hình cỡlớn và col-lg-* sẽ không áp dụng nếu bạn đang xem bằng màn hình cỡ vừa
span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1 span 1
Trang 24span 4 span 4 span 4
span 12
Hình 2.2 Grid System của Bootstrap
Các lớp tùy chọn của Grib System được quy định bởi bảng sau:
Màn hình nhỏ nhất
Phones (<768px)
Màn hình nhỏ
Tablets (≥768px)
Màn hình vừa Desktops (≥992px)
Màn hình lớp Desktops (≥1200px) Trạng thái Mọi thời điểm Tự động hiển thị theo màn hình
Trang 25CHƯƠNG 3: NỘI DUNG THỰC HIỆN
3.1 Khảo sát và đặc tả yêu cầu
Website cho công ty Du Lịch Việt, cần thực hiện các chức năng sau:
- Cho phép khách hàng tìm kiếm, tham khảo thông tin về các tour du lịchđược cung cấp trong hệ thống Khi khách hàng có nhu cầu đặt tour có thểtiến hành đặt tour
- Cho phép khách hàng đặt tour Khách hàng đặt tour cần cung cấp đầy đủ cácthông tin cá nhân cũng như thông tin về số ghế đặt và được xác nhận quaemail, thanh toán tour qua thẻ trước 30% giá trị tour
- Cho phép khách hàng liên hệ với công ty tại trang liên hệ để phản hổi vềdịch vụ, hướng dẫn viên, Khách hàng khi liên hệ cần có cung cấp địa chỉemail để công ty phản hồi lại
- Người quản trị hoặc các thành viên quản lý website sẽ tiến hành xử lý đơnđặt tour khi có khách hàng đặt tour trong hệ thống và gửi emai,goi điện yêucầu khách hàng xác nhận lạ thông tin và yêu cầu thanh toán tour trong thờigian cho phép Nếu khách hàng muốn hủy hoặc thay đổi tour đã đặt, thànhviên sẽ tiến hành thay đổi theo ý muốn Hoặc nếu khách hàng không xácnhận và thanh toán theo yêu cầu đã hẹn thì người quản lý sẽ xóa đi thông tinđặt tour của khách hàng đó
- Quản trị viên quản lý các thành viên trong hệ thống, cấp quyền truy cập hệthống cho từng người dùng, tiến hành đăng thông tin tour du lịch
3.1.1 Các yêu cầu chức năng
Website công ty Du Lịch Việt cần có các chức năng sau:
1 Quản lý thông tin tour du lịch
- Nhập thông tin tour du lịch: Hệ thống giúp thành viên thêm mới thôngtin cho tour du lịch Những thông tin của tour du lịch bao gồm: Mã tour,Tên tour, Hành trình, Ảnh tour, Giá tiền, Số ngày, Mã loại tour, Mãhướng dẫn viên, Nơi bắt đầu, Ngày khởi hành, Số chỗ
- Sửa thông tin tour: Hệ thống phải cung cấp chức năng sửa thông tin tour
du lịch khi có thay đổi
Trang 26- Xóa tour du lịch: Hệ thống phải cung cấp chức năng xóa tour du lịch khitour không được bán nữa.
- Hiển thị thông tin tour du lịch: Hệ thống phải cung cấp chức năng hiểnthị danh sách thông tin các tour du lịch hiện có
2 Quản lý loại tour
- Nhập thông tin loại tour du lịch: Hệ thống giúp thành viên thêm mớithông tin cho loại tour du lịch Những thông tin của loại tour du lịch baogồm: Mã loại tour, Tên loại tour
- Sửa thông tin loại tour: Hệ thống phải cung cấp chức năng sửa thông tinloại tour du lịch khi có thay đổi
- Xóa loại tour: Hệ thống phải cung cấp chức năng xóa loại tour khi công
ty không còn kinh doanh loại tour đó nữa
- Hiển thị thông tin loại tour du lịch: Hệ thống phải cung cấp chức nănghiển thị danh sách thông tin các loại tour du lịch hiện có
3 Quản lý thành viên: Hệ thống cho phép người quản trị viên (có quyền là 1)được thêm, sửa, xóa thành viên (có quyền là 0)
4 Quản lý thông tin hướng dẫn viên:
- Nhập thông tin hướng dẫn viên: Hệ thống giúp thành viên thêm mớithông tin cho hướng dẫn viên Những thông tin của hướng dẫn viên baogồm: ID Hướng dẫn viên, Tên hướng dẫn viên, Ngày sinh, Địa chỉ, Giớitính, Số điện thoại
- Sửa thông tin hướng dẫn viên: Hệ thống phải cung cấp chức năng sửathông tin hướng dẫn viên khi có thay đổi
- Xóa hướng dẫn viên: Hệ thống phải cung cấp chức năng xóa hướng dẫnviên khi hướng dẫn viên đó không còn làm việc trong công ty nữa
- Hiển thị thông tin hướng dẫn viên: Hệ thống phải cung cấp chức nănghiển thị danh sách thông tin các hướng dẫn viên du lịch hiện có
5 Quản lý tin tức:
- Nhập tin tức: Hệ thống giúp thành viên thêm mới tin tức du lịch Nhữngthông tin của tin tức bao gồm: id tin, tên tin, ảnh, nội dung
Trang 27- Sửa thông tin tin tức: Hệ thống phải cung cấp chức năng sửa thông tintin tức khi có thay đổi.
- Xóa tin tức: Hệ thống phải cung cấp chức năng xóa tin tức khi tin tức bịsai hoặc vi phạm bản quyền
- Hiển thị tin tức: Hệ thống phải cung cấp chức năng hiển thị danh sáchthông tin tin tức du lịch hiện có
6 Quản lý khuyến mại:
- Nhập thông tin khuyến mại: Hệ thống giúp thành viên thêm mới thôngtin khuyến mại Những thông tin của khuyến mại bao gồm: ID khuyếnmại, ID tour, Phần trăm khuyến mại, Ngày bắt đầu, Ngày kết thúc
- Sửa thông tin khuyến mại: Hệ thống phải cung cấp chức năng sửa thôngtin khuyến mại khi có thay đổi
- Xóa khuyến mại: Hệ thống phải cung cấp chức năng xóa khuyến mại khichương trình khuyến mạ đó không được áp dụng nữa
- Hiển thị thông tin khuyến mại: Hệ thống phải cung cấp chức năng hiểnthị danh sách thông tin các khuyến mại hiện có
7 Chức năng tìm kiếm tour du lịch
- Tìm kiếm thông tin tour du lịch theo điểm khởi hành, thời gian du lịch,giá tour, điểm đến của tour du lịch
- Hệ thống cần phải cung cấp chức năng tìm kiếm thông tin khuyến mại,việc tìm kiếm mang tính tương đối
3.1.2 Các yêu cầu phi chức năng
Mụ
1 Giao diện Giao diện hệ thống phải dễ sử dụng, trực quan,
thân thiện với mọi người dùng
2 Tốc độ xử lý Tốc độ xử lý của hệ thống phải nhanh chóng và
chính xác
3 Bảo mật Tính bảo mật và độ an toàn cao
4 Người sử dụng Người sử dụng website có thể sẽ không cần tìm
Trang 283.2 Phân tích thiết kế hệ thống
3.2.1 Các chức năng của hệ thống
Khách hàng có thể:
- Đăng ký đặt tour du lịch
- Xem thông tin các tour du lịch
- Xem tin tức du lịch liên quan
- Xem giới thiệu cũng như đội ngũ hướng dẫn viên của công ty
- Liên hệ phản hổi, đóng góp ý kiến với công ty
Thành viên có thể:
- Xem, thêm, sửa, xóa thông tin danh sách các khách hàng đặt tour
- Xem, thêm, sửa, xóa các tour du lịch
- Xem, thêm, sửa, xóa loại tour du lịch
- Xem, thêm, sửa, xóa khách sạn
- Xem, thêm, sửa, xóa hướng dẫn viên
- Xem, thêm, sửa, xóa khuyến mại
- Xem, thêm, sửa, xóa tin tức
- Xem, thêm, sửa, xóa chi tiết khách sạn
- Thành viên: Là người có thể sử dụng toàn bộ chức năng của website trừ chứcnăng quản lý thành viên
- Khách hàng: Là người ghé thăm trang web nhưng không có tài khoản, sử dụngcác chức năng như: đăng ký đặt tour, xem thông tin tour, xem thông tin công ty,xem tin tức,…
Trang 293.3 Biểu đồ Use Case
3.3.1 Use Case mức tổng quát
Hình 3.3 Biểu đồ Use Case tổng quát 3.3.2 Use Case Đặt tour
Hình 3.4 Biểu đồ Use Case Đặt tour du lịch
- Tác nhân: Khách hàng.
- Mô tả: Use case cho phép khách hàng đăng ký đặt tour du lịch trên hệ thống
- Điều kiện trước: Khách hàng có nhu cầu đăng ký đặt tour du lịch
- Dòng sự kiện chính:
Xem tour và nhấn nút đặt tour cạnh tour Hệ thống hiển thị giao diện đặt tour
Nhập đầy đủ thông tin về cá nhân và các yêu cầu riêng trên giao diện
Trang 30 Hệ thống kiểm tra họ tên, email, số điện thoại, số chỗ đăng ký,…nhập củakhách hàng Nếu nhập email, họ tên… không hợp lệ thì chuyển sang dòng sựkiện rẽ nhánh A1 Nếu nhập đúng thì tiếp tục thực hiện đặt tour thành công vàđưa ra thông báo yêu cầu xác nhận thông tin trong email và thanh toán trước30% số giá trị của tour đã đặt.
Use case kết thúc
- Dòng sự kiện rẽ nhánh:
Dòng rẽ nhánh A1: Đưa ra các thông báo nhập sai
Hệ thống thông báo các thông tin mà bạn nhập sai
Hệ thống yêu cầu nhập lại toàn bộ thông tin
Use case kết thúc
- Hậu điều kiện: khách hàng đăng ký thành công sẽ được nhận yêu cầu xác nhậnqua email
3.3.3 Use Case Đăng nhập
Hình 3.5 Biểu đồ Use Case Đăng nhập
- Tác nhân: Quản trị viên, Thành viên
- Mô tả: Use case cho phép Quản trị viên, Thành viên đăng nhập vào hệ thống
- Điều kiện trước: Quản trị viên, thành viên chưa đăng nhập vào hệ thống
Trang 31- Dòng sự kiện chính:
Chọn chức năng đăng nhập
Giao diện đăng nhập hiển thị
Nhập tên, mật khẩu vào giao diện đăng nhập
Hệ thống kiểm tra tên, mật khẩu nhập của Quản trị viên, thành viên Nếunhập sai tên, mật khẩu thì chuyển sang dòng sự kiện rẽ nhánh A1 Nếunhập đúng thì hệ thống sẽ chuyển tới trang quản trị
Use case kết thúc
- Dòng sự kiện rẽ nhánh:
Dòng rẽ nhánh A1: Quản trị viên, thành viên đăng nhập không thành công
Hệ thống thông báo quá trình đăng nhập không thành công do sai tên đăngnhập hoặc mật khẩu
Chọn nhập lại Hệ thống yêu cầu nhập lại tên đăng nhập, mật khẩu
Use case kết thúc
- Hậu điều kiện: Quản trị viên,thành viên đăng nhập thành công và có thể sử dụngcác chức năng tương ứng trong trang quản trị
Trang 323.3.4 Use Case Quản lý loại tour
Hình 3.6 Biểu đồ Use Case Quản lý loại tour
- Tác nhân: Quản trị viên, thành viên.
- Mô tả: Use case cho phép xem, sửa hoặc xóa các thông tin loại tour trong hệthống
- Điều kiện trước: Quản trị viên, thành viên đã đăng nhập vào hệ thống
- Dòng sự kiện chính:
Quản trị viên,thành viên chọn kiểu tác động: thêm, sửa hay xóa thông tinloại tour trong danh sách của hệ thống
Thêm loại tour
o Nhấn nút thêm trên giao diện danh sách tour
o Hệ thống hiển thị giao diện nhập thông tin loại tour
o Quản trị viên, thành viên nhập thông tin loại tour
o Nhấn nút cập nhật loại tour
o Nếu thành công hệ thống sẽ đưa ra thông báo
o Nếu sai thực hiện dòng rẽ nhánh A1
o Lưu thông tin danh sách loại tour
Sửa thông tin loại tour
Trang 33o Nhấn vào biểu tượng sửa trên giao diện danh sách loại tour.
o Hệ thống đưa ra thông báo có muốn sửa không
o Hệ thống hiển thị giao diện sửa thông tin loại tour
o Nhập các thông tin cần thay đổi
o Nhấn nút cập nhật loại tour
o Nếu việc thay đổi thông tin thành công hệ thống sẽ đưa ra thôngbáo
o Nếu sai thì thực hiện dòng rẽ nhánh A1
o Lưu thông tin danh sách loại tour
Xóa loại tour
o Nhấn vào biểu tượng xóa trong giao diện
o Hệ thống sẽ đưa ra thông báo “Bạn có chắc chắn muốn xóakhông?”
o Nếu nhấn OK bạn sẽ xóa thành công
o Nếu nhấn hủy bạn sẽ hủy sự kiện xóa
Use case kết thúc
- Dòng sự kiện rẽ nhánh A1
Hệ thống thông báo việc nhập dữ liệu không hợp lệ
Quản trị viên, thành viên nhập lại thông tin
Quay lại bước 1 của dòng sự kiện chính
- Hậu điều kiện: các thông tin về loại tour được cập nhật trong cơ sở dữ liệu
Trang 343.3.5 Use Case Quản lý hướng dẫn viên
Hình 3.7 Biểu đồ Use Case Quản lý hướng dẫn viên
- Tác nhân: Quản trị viên, Thành viên.
- Mô tả: Use case cho phép người dùng Xem danh sách Hướng dẫn viên, Thêm /Sửa / Xóa thông tin Hướng dẫn viên có trong hệ thống
- Điều kiện trước: Quản trị viên, Thành viên đã đăng nhập vào hệ thống
- Dòng sự kiện chính:
Quản trị viên, thành viên chọn kiểu tác động: thêm, sửa hay xóa thông tinHướng dẫn viên trong hệ thống thông qua các nút chức năng tương ứng trêngiao diện
Thêm thông tin Hướng dẫn viên
o Người dùng nhấn nút Thêm trên giao diện hiển thị danh sáchHướng dẫn viên
o Hệ thống hiển thị giao diện nhập thông tin Hướng dẫn viên
o Người dùng nhập thông tin Hướng dẫn viên mới
o Người dùng nhấn nút Thêm Hướng dẫn viên
o Nếu thành công hệ thống sẽ đưa ra thông báo thêm Hướng dẫnviên thành công
o Nếu sai thực hiện dòng rẽ nhánh A1
o Lưu thông tin Hướng dẫn viên, load lại giao diện danh sáchHướng dẫn viên
Trang 35 Sửa thông tin Hướng dẫn viên.
o Người dùng nhấn nút Sửa trên giao diện danh sách Hướng dẫnviên
o Hệ thống đưa ra thông báo hỏi “Bạn có muốn sửa Hướng dẫnviên hay không?”
o Hệ thống hiển thị giao diện sửa thông tin Hướng dẫn viên
o Người dùng nhập các thông tin cần thay đổi
o Người dùng nhấn nút Cập nhật để xác nhận thay đổi thông tin
o Nếu việc thay đổi thông tin thành công hệ thống sẽ đưa ra thôngbáo “Bạn đã cập nhật thông tin Hướng dẫn viên thành công”
o Nếu sai thì thực hiện dòng rẽ nhánh A1
o Hệ thống lưu thông tin danh sách Hướng dẫn viên vào CSDL vàload lại trang danh sách Hướng dẫn viên
Xóa Hướng dẫn viên
o Người dùng nhấn nút Xóa trên giao diện danh sách Hướng dẫnviên
o Hệ thống sẽ đưa ra thông báo “Bạn có chắc chắn muốn xóakhông?”
o Nếu nhấn OK, hệ thống tiến hành xóa và hiển thị thông báo
Hệ thống thông báo việc nhập dữ liệu không hợp lệ
Quản trị viên, thành viên nhập lại thông tin
Quay lại bước 1 của dòng sự kiện chính
Hậu điều kiện: Các thông tin về danh sách Hướng dẫn viên được cập nhật vàoCSDL
Trang 363.3.6 Use Case Quản lý tour
Hình 3.8 Biểu đồ Use Case Quản lý tour
- Tác nhân: Quản trị viên, Thành viên.
- Mô tả: Use case cho phép người dùng Xem danh sách tour, Thêm / Sửa / Xóathông tin các tour có trong hệ thống
- Điều kiện trước: Quản trị viên, Thành viên đã đăng nhập vào hệ thống
- Dòng sự kiện chính:
Quản trị viên, thành viên chọn kiểu tác động: thêm, sửa hay xóa thông tintour trong hệ thống thông qua các nút chức năng tương ứng trên giao diện
Thêm thông tin Tour
o Người dùng nhấn nút Thêm trên giao diện hiển thị danh sáchtour
o Hệ thống hiển thị giao diện nhập thông tin tour Hệ thống load
danh sách loại tour và hướng dẫn viên vào điều khiển select của
HTML
o Người dùng nhập thông tin Tour mới
o Người dùng nhấn nút Thêm Tour
Trang 37o Nếu thành công hệ thống sẽ đưa ra thông báo thêm tour thànhcông.
o Nếu sai thực hiện dòng rẽ nhánh A1
o Hệ thống lưu thông tin tour, load lại giao diện danh sách tour
Sửa thông tin Tour
o Người dùng chọn tour trong danh sách và nhấn nút Sửa trêngiao diện danh sách Tour
o Hệ thống đưa ra thông báo hỏi “Bạn có muốn sửa Tour haykhông?”
o Hệ thống hiển thị giao diện sửa thông tin Tour Hệ thống load
danh sách loại tour và hướng dẫn viên vào điều khiển select của
HTML
o Người dùng nhập các thông tin cần thay đổi
o Nhấn nút Cập nhật để xác nhận thay đổi thông tin
o Nếu việc thay đổi thông tin thành công hệ thống sẽ đưa ra thôngbáo “Bạn đã cập nhật thông tin Tour thành công”
o Nếu sai thì thực hiện dòng rẽ nhánh A1
o Lưu thông tin danh sách Tour vào CSDL và load lại trang danhsách tour
Xóa Tour
o Người dùng nhấn nút Xóa trên giao diện danh sách Tour
o Hệ thống sẽ đưa ra thông báo “Bạn có chắc chắn muốn xóakhông?”
o Nếu nhấn OK, hệ thống tiến hành xóa và hiển thị thông báo
Trang 38 Quản trị viên, thành viên nhập lại thông tin.
Quay lại bước 1 của dòng sự kiện chính
- Hậu điều kiện: Các thông tin về danh sách Tour được cập nhật vào CSDL
3.3.7 Use Case Quản lý thành viên
Hình 3.9 Biểu đồ Use Case Quản lý thành viên
- Tác nhân: Quản trị viên.
- Mô tả: Use case cho phép người dùng Xem danh sách thành viên, Thêm / Sửa /Xóa thông tin các thành viên có trong hệ thống
- Điều kiện trước: Quản trị viên đã đăng nhập vào hệ thống
- Dòng sự kiện chính:
Quản trị viên chọn kiểu tác động: thêm, sửa hay xóa thông tin thành viêntrong hệ thống thông qua các nút chức năng tương ứng trên giao diện
Thêm thông tin Thành viên
o Người dùng nhấn nút Thêm trên giao diện
o Hệ thống hiển thị giao diện nhập thông tin thành viên
o Người dùng nhập thông tin Thành viên mới (Tên đăng nhập,Mật khẩu, Quyền hạn, Địa chỉ, Số điện thoại…)
o Người dùng nhấn nút Thêm Thành viên
o Nếu thành công hệ thống sẽ đưa ra thông báo thêm thành viênthành công
o Nếu sai thực hiện dòng rẽ nhánh A1
Trang 39o Lưu thông tin thành viên, load lại giao diện danh sách thànhviên.
Sửa thông tin Thành viên
o Người dùng chọn thành viên và nhấn nút Sửa trên giao diệndanh sách Thành viên
o Hệ thống đưa ra thông báo hỏi “Bạn có muốn sửa Thành viênhay không?” Nếu người dùng chọn OK, chuyển sang bước tiếptheo Nếu người dùng chọn Cancel, hủy thao tác sửa, quay vềdanh sách
o Hệ thống hiển thị giao diện sửa thông tin thành viên
o Người dùng nhập các thông tin cần thay đổi
o Người dùng nhấn nút Cập nhật để xác nhận thay đổi thông tin
o Nếu việc thay đổi thông tin thành công hệ thống sẽ đưa ra thôngbáo “Bạn đã cập nhật thông tin Thành viên thành công”
o Nếu sai thì thực hiện dòng rẽ nhánh A1
o Lưu thông tin danh sách Thành viên vào CSDL và load lại trangdanh sách thành viên
Trang 40 Quay lại bước 1 của dòng sự kiện chính.
- Hậu điều kiện: Các thông tin thành viên được cập nhật vào CSDL
3.3.8 Use Case Quản lý khuyến mại
Hình 3.10 Biểu đồ Use Case Quản lý khuyến mại
- Tác nhân: Quản trị viên, Thành viên.
- Mô tả: Use case cho phép người dùng Xem danh sách khuyến mại, Thêm /Sửa / Xóa thông tin các khuyến mại có trong hệ thống
- Điều kiện trước: Quản trị viên, Thành viên đã đăng nhập vào hệ thống
- Dòng sự kiện chính:
Quản trị viên, thành viên chọn kiểu tác động: thêm, sửa hay xóa thông tinkhuyến mại trong hệ thống thông qua các nút chức năng tương ứng trên giaodiện
Thêm thông tin Khuyến mại
o Người dùng nhấn nút Thêm trên giao diện hiển thị danh sáchkhuyến mại
o Hệ thống hiển thị giao diện nhập thông tin khuyến mại
o Người dùng nhập thông tin Khuyến mại mới
o Người dùng nhấn nút Thêm Khuyến mại
o Nếu thành công hệ thống sẽ đưa ra thông báo thêm khuyến mại