Sản phẩm của đề tài là một hệ thống gồm hai nhóm chức năng chính là: nhóm chức năng mạng xã hội với các chức năng như chia sẻ trạng thái, thích, bình luận … và nhóm chức năng du lịch với
Trang 1TRƯỜNG ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KĨ THUẬT MÁY TÍNH
XÂY DỰNG MẠNG XÃ HỘI CHO NGƯỜI DU LỊCH BỤI
GVHD : Ths NGUYỄN THỊ ÁI THẢO Ths NGUYỄN ĐÌNH THÀNH
SVTH : LỤC MINH TUẤN (51004203) NGUYỄN VĂN TÂN (51002910) PHẠM VĂN GIANG (50900679)
TP HỒ CHÍ MINH, 12/2013
Trang 2LỜI CẢM ƠN
Chúng tôi xin chân thành cảm ơn khoa Khoa Học và Kĩ Thuật Máy Tính, trường đại học Bách Khoa Tp Hồ Chí Minh, đại học Quốc gia Tp.Hồ Chí Minh đã tạo điều kiện thuận lợi cho chúng tôi trong suốt quá trình học tập và thực hiện đề tài Chúng tôi xin chân thành cảm ơn các thầy cô trong khoa Khoa Học và Kĩ Thuật Máy Tính đã tận tình giảng dạy, trang bị cho chúng tôi những kiến thức cần thiết trong suốt những năm học qua
Chúng tôi xin gửi lời cảm ơn chân thành nhất đến cô Nguyễn Thị Ái Thảo và thầy Nguyễn Đình Thành, giảng viên hướng dẫn trực tiếp đề tài Cô và thầy là những người đã theo từng bước đi của nhóm, sửa chữa những sai sót cũng như góp ý để cho chúng tôi thực hiện được đề tài này
Chúng tôi cũng xin cảm ơn tới gia đình, bạn bè đã sát cánh bên cạnh chúng tôi, giúp đỡ để chúng tôi có điều kiện tốt nhất cả về vật chất và tinh thần trong quá trình thực hiện đề tài
Mặc dù đã có cố gắng trong phạm vi và khả năng cho phép, nhưng không thể tránh khỏi những thiếu sót, rất mong được sự góp ý, chỉ bảo thêm của quý thầy cô và các bạn
Cuối cùng xin chân thành cảm ơn thầy cô và các bạn đã giành thời gian đọc tài liệu này
Tp.Hồ Chí Minh, tháng 12 năm 2013
Trang 3TÓM TẮT NỘI DUNG ĐỀ TÀI
Thực tập tôt nghiệp là một giai đoạn đối với đề tài : Xây dựng mạng xã hội cho người du lịch bụi được thực hiện trong vòng mười hai tuần Trong quá trình thực hiện đề tài, chúng tôi đã tìm hiểu về nhu cầu du lịch tại Việt Nam, đặc biệt là nhu cầu của đối tượng thường hay đi du lịch cá nhân hoặc theo nhóm với mục đích khám phá mà không theo bất kì một tour du lịch của công ty nào Từ đó nhóm đã phân tích yêu cầu và đưa ra mô hình mạng xã hội cho người dùng thường hay
đi du lịch với hình thức kể trên Song song với đó là tìm hiểu những vấn đề về kĩ thuật như CodeIgniter Framework, các bài toán về lập kế hoạch, đặt phòng, chọn điểm đến, chọn phương tiện, đặt bàn nhà hàng để làm kiến thức bổ trợ hoàn thành đề tài Sản phẩm của đề tài là một hệ thống gồm hai nhóm chức năng chính là: nhóm chức năng mạng xã hội với các chức năng như chia sẻ trạng thái, thích, bình luận … và nhóm chức năng du lịch với các chức năng như lên kế hoạch, tìm kiếm nhà hàng, khách sạn …
Tp.Hồ Chí Minh, tháng 12 năm 2013
Trang 4MỤC LỤC
LỜI CẢM ƠN. 2
TÓM TẮT NỘI DUNG ĐỀ TÀI. 3
MỤC LỤC BẢNG 7
DANH SÁCH THUẬT NGỮ VÀ KHÁI NIỆM. 9
CHƯƠNG I GIỚI THIỆU 10
1.1 Giới thiệu đề tài. 10
1.2 Mục tiêu và phạm vi đề tài. 11
1.3 Cấu trúc bài báo cáo. 11
CHƯƠNG II CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 12
2.1 Mạng xã hội. 12
2.2 Mạng du lịch. 13
2.1 Công nghệ. 15
2.1.1 CodeIgniter Framwork 15
2.1.2 JQuery 17
2.1.3 Ajax 19
2.2 Trực quan hóa dữ liệu 20
CHƯƠNG III PHÂN TÍCH YÊU CẦU 21
3.1 Chức năng hệ thống. 21
3.2 Lược đồ Use-Case 22
3.3 Đặc tả User-Case 25
CHƯƠNG IV THIẾT KẾ HỆ THỐNG 41
4.1 Kiến trúc hệ thống. 41
4.2 Thiết kế cơ sở dữ liệu 43
4.2.1 Mô hình thực thể liên kết – ERD 43
4.2.2 Ánh xạ sang mô hình dữ liệu quan hệ 46
CHƯƠNG V HIỆN THỰC HỆ THỐNG 59
5.1 Công nghệ sử dụng 59
5.2 Xây dựng phiên bản thử nhiệm 59
5.2.1 Trang xác thực người dùng 59
5.2.2 Trang chủ của hệ thống 61
Trang 55.2.3 Trang lập kế hoạch 61
5.2.4 Chức năng quản lý của người quản trị 63
CHƯƠNG VI TỔNG KẾT 64
6.1 Kết luận 64
6.1.1 Những việc làm được 64
6.1.2 Những việc làm chưa được. 64
6.1.3 Đánh giá hệ thống 64
6.2 Hướng phát triển lên luận văn 65
DANH MỤC TÀI LIỆU THAM KHẢO. 66
Trang 6MỤC LỤC HÌNH
Hình 2.1: Cấu trúc CI 17
Hình 3.1 : Lược đồ Use-Case cho người dùng 22
Hình 3.2 : lược đồ Use case cho người quản trị hệ thống 23
Hình 3.3 : lược đồ Use case chi tiết cho Use case Manage Restaurant 23
Hình 3.4 : lược đồ Use case chi tiết cho Use case Manage Hotel 24
Hình 3.5 : Lược đồ Use case chi tiết cho Use case Manage Tranportion 24
Hình 3.6 : lược đồ Use case chi tiết cho Use case Manage Attraction 24
Hình 3.7 : lược đồ Use case chi tiết cho Use case Manage Post 25
Hình 3.8 : lược đồ Use case chi tiết cho Use case Manage User 25
Hình 4.1 : Kiến trúc hệ thống 41
Hình 4.2 : Cấu trúc mô hình HMVC 42
Hình 4.3 : mô hình dữ liệu ERD 45
Hình 5.1 : Trang login 59
Hình 5.2 : Trang đăng kí 60
Hình 5.3 : Trang tạo lại mật khẩu 60
Hình 5.4 : Trang chủ của hệ thống 61
Hình 5.5 : Trang tạo mới kế hoạch 61
Hình 5.6 : Trang chọn điểm đến 62
Hình 5.7 : Trang chọn phòng khách sạn 62
Hình 5.8 : Trang chọn phương tiện 63
Hình 5.9 : Trang của người quản trị hệ thống 63
Trang 7MỤC LỤC BẢNG
Bảng 3.1 : Đặc tả Use Case 27
Bảng 3.2 : Đặc tả Use Case Add friend 27
Bảng 3.3 : Đặc tả Use Case Edit profile 28
Bảng 3.4 : Đặc tả Use Case Comment 29
Bảng 3.5 : Đặc tả Use Case Search 29
Bảng 3.6 : Đặc tả Use Case View news 30
Bảng 3.7 : Đặc tả Use Case Show history 30
Bảng 3.8 : Đặc tả Use Case Post status 31
Bảng 3.9 : Đặc tả Use Case Manage media 32
Bảng 3.10 : Đặc tả Use Case Register 32
Bảng 3.11 : Đặc tả Use Case Send mail 33
Bảng 3.12 : Đặc tả Use Case Manage plan 34
Bảng 3.13 : Đặc tả Use Case Manage Restaurant 35
Bảng 3.14 : Đặc tả Use Case Manage Hotel 36
Bảng 3.15 : Đặc tả Use Case Manage Tranportion 37
Bảng 3.16 : Đặc tả Use Case Manage post 38
Bảng 3.17 : Đặc tả Use Case Manage User 39
Bảng 3.18 : Đặc tả Use Case Manage Attraction 40
Bảng 3.19 : Đặc tả Use Case Manage membership 40
Bảng 4.1 : Bảng Attraction 46
Bảng 4.2 : Bảng Bring 47
Bảng 4.3 : Bảng Car 47
Bảng 4.4 : Bảng City 48
Bảng 4.5 : Bảng Comment_image 48
Bảng 4.6 : Bảng Comment_status 48
Bảng 4.7 : Bảng Comment_video 49
Bảng 4.8 : Bảng Eat 49
Bảng 4.9 : Bảng Flight 50
Bảng 4.10 : Bảng Friend 50
Bảng 4.11 : Bảng Hotel_image 50
Bảng 4.12 : Bảng Hotel 51
Bảng 4.13 : Bảng Image 51
Bảng 4.13 : Bảng Moto 52
Bảng 4.14 : Bảng Move 52
Bảng 4.15 : Bảng Other 52
Bảng 4.16 : Bảng Plan 53
Bảng 4.17 : Bảng Plane 53
Bảng 4.18 : Bảng Profile 54
Bảng 4.19 : Bảng Restaurant 54
Bảng 4.20 : Bảng Ride 54
Bảng 4.21 : Bảng Room 55
Trang 8Bảng 4.22 : Bảng Status 55
Bảng 4.23 : Bảng Stay 56
Bảng 4.24 : Bảng Train 56
Bảng 4.25 : Bảng Trains 56
Bảng 4.26 : Bảng User 57
Bảng 4.27 : Bảng Video 57
Bảng 4.28 : Bảng Visit_attrac 58
Bảng 4.29 : Bảng Visit 58
Trang 9DANH SÁCH THUẬT NGỮ VÀ KHÁI NIỆM
GDP Gross Domestic Product Tổng sản phẩm của một quốc gia
HMVC Hierarchical model–view–controller Mô hình xây dựng hệ thống website
GUI Graphical User Interface Giao diện người dùng đồ họa
MVC Model view controller Mô hình xây dựng hệ thống website
CI CodeIgniter Framework Framework lập trình PHP
URL Uniform Resource Locator Dùng tham chiếu tài nguyên trên Internet
XSS Cross-site scripting
XML eXtensible Markup Language
EDP Event-Driven Programming Lập trình hướng sự kiện
HTML HyperText Markup Language Ngôn ngữ đánh giấu siêu văn bản
DOM Document Object Model Mô hình tài liệu đối tượng
Trang 10CHƯƠNG I GIỚI THIỆU
1.1 Giới thiệu đề tài
Kinh tế xã hội ngày càng phát triển thì ngành du lịch và dịch vụ đang ngày càng chiếm tỉ trọng cao trong GDP (Gross Domestic Product) Tại các nước phát triển thì tỉ lệ ngành du lịch và
mang lại cho một quốc gia
Tại Việt Nam, theo thống kê của Tổng cục Du Lịch thì số lượng khách quốc tế đến Việt Nam trong năm 2012 là 6,8 triệu, khách nội địa là 32,5 triệu lượt [12] Nhưng đó chỉ là các con số thống kê được từ các công ty lữ hành, các khách đi theo tour, ngoài hình thức kể trên còn hàng trăm ngàn lượt khách đi theo tự phát, đi theo nhóm nhỏ mà không theo bất kì tour của một công
ty nào Vậy làm sao để hỗ trợ không chỉ cho các khách đi theo tour mà còn các khách hàng muốn
đi du lịch nhưng không theo tour biết được các địa điểm du lịch hấp dẫn, phương tiện di chuyển hợp lý, nhà hàng khách sạn nổi tiếng… Từ những nhu cầu trên đòi hỏi chúng ta phải sớm cho ra đời một dịch vụ mới hỗ trợ cho những đối tượng này
Từ những lý do đã nói ở trên, nhóm đã quyết định tìm hiểu và xây dựng một hệ thống ứng dụng, dịch vụ nhằm phục vụ cho mọi người có nhu cầu đi du lịch có thể thuận tiện nhất cho việc lên lịch trình du lịch cho mình Qua đó cũng giới thiệu các thắng cảnh trên thế giới cũng như tăng cường quảng bá về hình ảnh, danh lam thắng cảnh nổi tiếng ở Việt Nam Nhằm tạo điều kiện cho ngành du lịch cũng như các dịch vụ đi kèm phát triển hơn nữa, đóng góp thêm vào sự phát triển của nước nhà
Trong nhiều năm trở lại đây, rất nhiều trang mạng xã hội ra đời và ngày càng đi sâu vào cuộc sống đã đơn giản hóa các phương thức thanh toán và kết nối con người với nhau Từ đó mở ra một hướng mới trong công tác quảng cáo Thay vì tốn nhiều chi phí bằng các hình thức trước đây, tốn chi phí và mang lại không nhiều hiệu quả thì việc lựa chọn quảng cáo qua mạng xã hội đã và đang mang lại nhiều hiệu quả Qua đó ta có thể nhận thấy được vai trò ngày càng lớn của mạng xã hội Việc quảng bá du lịch thông qua mạng xã hội chắc chắn sẽ mang lại nhiều hiệu quả hơn
Codeigniter Framewrok là một nền tảng đang được nhiều hệ thống lựa chọn bởi nó cung cấp nhiều thư viện, helper được xây dựng sẵn, cú pháp đơn giản, giúp người lập trình nhanh chóng
Trang 11phát triển được hệ thống họ mong muốn Ngoài ra, Codeigniter còn dễ dàng cho người dùng tích hợp các thư viện mình viết hoặc của các framework khác
Tìm hiểu và xây dựng mạng xã hội cho người du lịch bụi là đề tài có tính ứng dụng thực tế cao Bên cạnh với sự phát triển và thay đổi nhu cầu của người sử dụng thì hệ thống có khả năng
mở rộng và tích hợp những chức năng mới
1.2 Mục tiêu và phạm vi đề tài
Tầm vực của đề tài là nghiên cứu và xây dựng hệ thống mạng xã hội cho người đi du lịch bụi trên nền tảng Codeigniter Framework Ở giai đoạn thực tập tốt nghiệp thì đề tài sẽ tập trung vào xây dựng hệ thống với đầy đủ các chức năng cơ bản như chức năng về mạng xã hội và chức năng
về du lịch Ngoài ra, nhằm hướng khả năng áp dụng thực tế, hệ thống được xây dựng có khả năng tích hợp thêm chức năng mới và dễ dàng trong quá trình chuyển đổi các dịch vụ được cung cấp
1.3 Cấu trúc bài báo cáo
Nội dung của bài báo cáo trình bày gồm :
- Chương I : Giới thiệu chung về đề tài
- Chương II : Trình bày về kiến thức nghiệp vụ và các công nghệ cần thiết để thực hiện
đề tài
- Chương III : Phân tích yêu cầu và chức năng của hệ thống
- Chương IV : Thiết kế hệ thống dựa trên những tài liệu đã phân tích ở chương III
- Chương V : Hiện thực đề tài
- Chương VI : Trình bày một số kết luận và hướng phát triển lên luận văn của đề tài
- Danh mục tài liệu tham khảo
Trang 12CHƯƠNG II CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
2.1 Mạng xã hội
Mạng xã hội được biết đến là một hệ thống chia sẻ thông tin, cảm xúc của người dùng Hoạt động của mạng xã hội dựa trên nguyên tắc chia sẻ các thông tin được thiết lập bởi chính người dùng Từ việc chia sẻ cảm xúc, hình ảnh, video với nhau trên mạng mà mang chúng ta tới gần nhau hơn, làm phai nhạt đi khoảng cách địa lý cũng như các khoảng cách về dân tộc tôn giáo từ đó cộng đồng có thể tìm được tiếng nói chung để cùng nhau chia sẻ, giúp đỡ lẫn nhau trong những lúc khó khăn hay đơn giản là nơi bạn có thể nói ra những tâm sự mà ngoài cuộc sống thật bạn không đủ can đảm để nói lên điều đó
Xuất phát từ nhu cầu đó, đã có rất nhiều hệ thống mạng xã hội ra đời phục vụ những nhu cầu của con người Tiêu biểu có thể kể tới mạng xã hội nổi tiếng như Facebook, Twitter , Google+ Thông qua mạng xã hội thì các đơn vị tổ chức, công ty sự kiện có thể quảng cáo, truyền đạt thông tin, các hoạt động khuyến mãi nhằm thu hút khách hàng Đây có thể là hình thức quảng cáo rất hiệu quả, bởi theo tâm lý thì khi có một người khách hàng nào đó đã sử dụng và giới thiệu sản phẩm sẽ làm cho khách hàng cảm thấy tin tưởng hơn gấp nhiều lần Có thể nói mạng xã hội đã mang lại không ít lợi nhuận cho doanh nghiệp cũng như cho người dùng Vì thông qua đó người dùng có thể biết được thông tin hữu ích và đáng tin cậy do chính những người dùng khác trong hệ thống cung cấp
Hơn nữa, sự bùng nổ của công nghệ thông tin, mức sống của con người ngày càng được nâng cao, họ dành càng nhiều thời gian hơn cho việc sử dụng internet Nhờ đó mà càng nhiều dịch vụ được ra đời để thích ứng với sự thay đổi này Mạng xã hội cũng từ đó mà phát triển hơn
Chúng ta cùng tìm hiểu mạng xã hội phổ biến nhất ở Việt Nam hiện nay
“Facebook là một website mạng xã hội truy cập miễn phí do công ty Facebook, Inc điều hành Người dùng có thể tham gia các mạng lưới được tổ chức theo thành phố, nơi làm việc, trường học … để liên kết và giao tiếp với người khác Mọi người cũng có thể kết bạn, gửi tin
Trang 13Thế giới hiện có hơn 7 tỉ người và trung bình 1/7 trong số đó sử dụng Facebook, một con
số rất đáng tự hào với một dịch vụ mạng xã hội được phát triển từ năm 2003 Trước đó, Facebook đạt 100 triệu người dùng vào năm 2008 và sau đó tăng lên một cách nhanh chóng
Sự phát triển nhanh chóng của Facebook và các tính năng, dịch vụ đi kèm với nó cũng phát triển ngày một mạnh mẽ hơn Người dùng có thể cá nhân hóa nhiều tính năng trên Facebook, điều này mang lại cho họ cảm giác an toàn và thoải mái hơn so với khi Facebook mới được
Tuy nhiên, Facebook chưa đưa ra nhiều sự hỗ trợ cho những người đi du lịch Hiện nay, Facebook chưa cung cấp những tính năng cần thiết cho người đi du lịch cụ thể như tìm địa điểm du lịch, khách sạn … và lập lịch trình du lịch cho bản thân Thay vào đó nếu người dùng muốn biết các thông tin về du lịch thì họ có thể tham gia các Fanpage về du lịch trên Facebook Tuy nhiên các thông tin trên Fanpage không thật sự đầy đủ và phù hợp với nhu cầu của người có nhu cầu đi du lịch Các địa điểm du lịch hấp dẫn, nhà hàng, khách sạn trên các Fanpage chủ yếu được cung cấp dưới dạng thông báo do những người trong Fanpage cung cấp, thông qua đó những người dùng khác có thể bình luận, thích Khi có nhu cầu về thông tin thì có thể lên để tham khảo thông qua lượng like, phân tích bình luận của người dùng Tuy nhiên các thông tin này thường thiếu hệ thống, khó cho người dùng tìm kiếm và các thông tin được đưa ra bởi các người dùng khác nên có phần thiếu khách quan và tổng quát Chính vì vậy nên khi muốn đi du lịch thì đa phần người dùng Facebook sẽ tham khảo thông tin du lịch trên các hệ thống website khác chuyên biệt hơn về du lịch
2.2 Mạng du lịch
Cuộc sống đang ngày một phát triển, nhu cầu con người đang ngày càng tăng Đặc biệt do cuộc sống năng động khiến nhiều người bị stress trong công việc, hay các vấn đề trong cuộc sống nên họ có nhu cầu đi du lịch để nghỉ ngơi giải trí nhiều hơn Nếu như mạng xã hội thực hiện các chức năng đã kể trên thì mạng du lịch lại mang cho chúng ta những thông tin rất bổ ích dành cho việc du lịch, khám phá Mạng du lịch sẽ cung cấp cho ta các điểm đến du lịch tham quan, hay giới thiệu những địa danh nổi tiếng tại một khu vực mà ta lựa chọn Tốc độ phát triển của ngành du lịch là rất nhanh và đang ngày càng mang lại cho quốc gia một nguồn thu lớn Vì vậy nên những dịch vụ phục vụ cho du lịch ra đời ngày một nhiều
Trang 14Mạng du lịch không chỉ giới thiệu các điểm đến hấp dẫn tại vùng mà người dùng lựa chọn
mà nó còn cung cấp các dịch vụ tiện ích đi kèm rất hữu dụng cho người du lịch Đó là dịch vụ đặt phòng tại khách sạn, đặt vé máy bay, tàu hỏa … hay đặt bàn ăn tại một nhà hàng Điều này mang lại cho người dùng cảm giác thoải mái, tiện dụng Họ không phải mất quá nhiều công sức trong việc tìm kiếm khách sạn, nhà hàng … tại một nơi mà có thể họ chưa bao giờ tới, giúp họ không có cảm giác bỡ ngỡ khi đặt chân tới một miền đất mới
Như đã trình bày ở phần mở đầu, ở Việt Nam hiện nay thì người đi du lịch bụi ngày một nhiều Do hình thức này mang lại cho người đi du lịch sự tự do, thoải mái hay một sự riêng tư cần thiết, muốn một mình khám phá thế giới tự nhiên Hiện nay đã có những website phát triển dịch
vụ này nhằm đáp ứng nhu cầu cho người du lịch bụi Sau đây chúng ta sẽ tìm hiểu về một số website phục vụ cho những người du lịch bụi phổ biến tại Việt Nam
Dulichbui.org là một website cung cấp thông tin về các địa điểm du lịch, các khách sạn,
phương tiện di chuyển khi đi du lịch Các thông tin này rất cần thiết khi bạn muốn thực hiện một chuyến du lịch tới một miền đất mới mà bạn chưa từng tới đó trước đây
Dulichbui.org cũng như phần lớn các website về du lịch, đều chưa cung cấp cho người
dùng khả năng chia sẻ thông tin, hình ảnh mà họ muốn Hay chưa kết nối được những người dùng trong hệ thống, các thành viên hầu như không thể liên lạc trực tiếp thông qua hệ thống
mà họ phải chia sẻ với nhau thông qua một diễn đàn mạng xã hội khác Chính vì điều này
cũng làm giảm đáng kể thời gian mà họ sử dụng hệ thống của dulichbui.org, chỉ khi nào cần
về thông tin du lịch thì mới sử dụng Hơn nữa, người dùng trong dulichbui.org không được
cung cấp tính năng tạo kế hoạch du lịch cho mình Các tính năng như đặt phòng khách sạn, thuê phương tiện thì được chuyển qua một website khác chứ không được thực hiện trên
dulichbui.org Điều này làm cho người dùng khó trong việc thực hiện vì nếu muốn thực hiện
thì họ lại phải đăng kí thành viên với website mà dulichbui.org chuyển tới
“Dulichbui.vn là một website thông tin du lịch, mẹo du lịch, kỹ năng sống, thông tin lộ
trình và những câu chuyện tuyệt vời của những bạn đam mê dịch chuyển Đối tượng của chúng tôi hướng đến không chỉ là những bạn thích sự tiện nghi, yên tĩnh và thoải mái mà còn
Trang 15phục vụ cộng đồng các bạn thích khám phá, yêu phiêu lưu, muốn tự do trên đôi chân của mình khám phá các nền văn hóa trên thế giới” [3]
Dulichbui.vn cung cấp những tính năng cần thiết cho một người đi du lịch như tìm kiếm
nhà hàng, khách sạn, địa điểm du lịch hấp dẫn… dulichbui.vn cũng cung cấp cho người dùng
chức năng lập kế hoạch để người dùng lên lịch trình du lịch cho bản thân
Tuy nhiên, dulichbui.vn lại chưa hỗ trợ cho người dùng về tính năng mạng xã hội Khi người sử dụng có nhu cầu chia sẻ thông tin, hình ảnh, video thì dulichbui.vn lại chưa có khả
năng đáp ứng Thay vì đó thì người dùng lại phải chọn một trang mạng xã hội khác như Facebook, Google plus … để đăng hình ảnh, cảm xúc của mình khi đi du lịch tại một địa điểm nào đó Điều này mang lại sự thiếu tiện dụng cho người dùng
Hơn nữa, dulichbui.vn vẫn đang trong quá trình phát triển và chưa hoàn thiện hết các tính
năng có trên website nên họ chưa có được nhiều người dùng Các tính năng đã đi vào hoạt động vẫn còn nhiều lỗi cần khắc phục
2.1 Công nghệ
2.1.1 CodeIgniter Framwork
CodeIgniter (CI) được viết bởi Rick Ellis trực thuộc Expression Engine CI được ra đời năm
2006 Tuy ra đời sau một số Framework lớn như Zend Framework nhưng nhờ và tốc độ và dung lượng nhỏ nên CI đã và đang phát triển một cách nhanh chóng, mạnh mẽ, đang dần trở thành một thế lực thật sự trong số các PHP Framework hiện nay [5]
CodeIgniter (CI) là một PHP Framework theo cấu trúc MVC được viết trên PHP4 và hỗ trợ
cả PHP4 và PHP5 CI là tập hợp các thư viện viết sẵn trên PHP giúp chúng ta phát triển web bằng PHP nhanh hơn cách viết thông thường, các thư viện trong CI giúp ta thực hiện các tác vụ của một ứng dụng web như kết nối cơ sở dữ liệu, upload file, xử lý hình ảnh, phân trang… một cách dễ dàng và nhanh chóng Đồng thời CI cũng giúp cho ta quản lý code dễ dàng hơn với mô hình MVC Ngoài ra hiện nay có rất nhiều Framework nổi tiếng được xây dựng trên nền tảng PHP như: Zend (chuẩn hóa cao theo MVC, hỗ trợ nhiều phương thức nhưng kích thước lớn, khó trong việc
Trang 16Nhìn chung thì mỗi Framework đều có điểm mạnh và điểm yếu riêng, tùy thuộc vào hệ thống mà ta chọn Framework cho phù hợp Do mới làm quen với PHP và thời gian thực hiện đề tài không cho phép nên chúng tôi quyết định lựa chọn CI là Framework để xây dựng hệ thống
Ưu điểm
1 Được thiết kế theo mô hình MVC
Việc thiết kế theo mô hình MVC giúp tách phần hiển thị và phần xử lý của một phần mềm thành những phần độc lập, giúp cho việc thiết kế, xử lý và cải tạo mã nguồn một cách dễ dàng Ngoài ra CI có gói cài đặt chỉ 404KB, so với các Framework khác như CakePHP (1,3MB) , Zend (5,66MB) thì kích thước này tương đối nhỏ, giúp cho giảm thiểu đáng kể không gian lưu trữ
4 Hệ thống thư viện phong phú
CI cung cấp các thư viện sử dụng những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữ liệu, kiểm tra dữ liệu, session … đến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật …
5 Bảo mật hệ thống
Cơ chế bảo mật chặt chẽ, ngăn ngừa XSS và SQL Injection của CI giúp giảm thiểu các nguy cơ đối với hệ thống
Nhược điểm
1 Chưa hỗ trợ lập trình hướng sự kiện (Event-Driven Programming)
Event-Driven Programming (EDP) là một nguyên lý lập trình, trong đó các luồng
xử lý của hệ thống sẽ dựa vào các sự kiện như click chuột, gõ phím
Trang 172 Chưa hỗ trợ mạnh cho AJAX
AJAX (Asynchronous JavaScript and XML) đã trở thành một phần không thể thiếu trong bất kỳ ứng dụng Web 2.0 nào AJAX giúp nâng cao tính tương tác giữa người dùng và hệ thống, giúp cho người dùng có cảm giác như đang sử dụng ứng dụng desktop vì các thao tác đều diễn ra “tức thời” Hiện tại, CodeIgniter vẫn chưa có thư viện dựng sẵn nào để hỗ trợ xây dựng ứng dụng AJAX Lập trình viên phải sử dụng các thư viện bên ngoài, như jQuery, Script.aculo.us, Prototype hay Mootools
Cấu trúc của CI Framework
1 Thư mục cache: Bộ đệm của hệ thống, chứa các trang đã được xử lý trước đó
2 Thư mục helpers: Chứa các hàm hỗ trợ cho lập trình viên khi viết ứng dụng
3 Thư mục libraries: Chứa các thư viện dựng sẵn của CI
4 Thư mục config: Chứa các tập tin cấu hình hệ thống
5 Thư mục controllers: chứa các lớp controller
6 Thư mục errors: chứa các tập tin lỗi
7 Thư mục hooks: chứa các tập tin để mở rộng mã nguồn CI
8 Thư mục language: chứa các tập tin ngôn ngữ
9 Thư mục models: chứa các lớp model 10.Thư mục views: chứa các lớp view
Hình 2.1: Cấu trúc CI
2.1.2 JQuery
JQuery là một thư viện của JavaScript đa trình duyệt được thiết kế đơn giản hóa lập trình phía máy người dùng của HTML Jquery được ra đời vào tháng 1 năm 2006 tại BarCamp NYC bởi John Resig jQuery là mã nguồn mở, giúp cho việc dễ dàng di chuyển một tài liệu, chọn DOM các yếu tố, tạo ra hình và xử lý các sự kiện trên website jQuery giúp đơn giản hóa việc lập trình JavaScript, tăng tốc độ xử lý các sự kiện trên website, giúp tiết kiệm thời gian và công sức so với cách viết JavaScript thông thường [6]
Trang 18 Một số tính năng của jQuery
1 Hướng tới các thành phần trong HTML: nếu không sử dụng thư viện Javascript này, bạn phải viết rất nhiều dòng code mới có thể đạt được mục tiêu là di chuyển trong cấu trúc cây (Document Object Model) của một tài liệu HTML và chọn ra các thành phần liên quan jQuery cho phép bạn chọn bất cứ thành phần nào của tài liệu một cách dễ dàng dựa vào jQuery selector
2 Thay đổi giao diện của một trang web: CSS là công cụ rất mạnh để định dạng một trang web nhưng nó có một nhược điểm là không phải tất cả các trình duyệt đều hiển thị giống nhau Cho nên jQuery ra đời để lấp chỗ trống này, vì vậy bạn có thể sử dụng
nó để giúp trang web có thể hiển thị tốt trên hầu hết các trình duyệt Hơn nữa jQuery cũng có thể thay đổi class hoặc những định dạng CSS đã được áp dụng lên bất cứ thành phần nào của HTML ngay cả khi trang web đó đã được trình duyệt load thành công
3 Thay đổi nội dung của tài liệu: jQuery không chỉ thay đổi bề ngoài của trang web, mà còn có thể thay đổi nội dung của chính tài liệu đó Nó có thể thêm hoặc bớt nội dung trên trang, thậm chí cả cấu trúc HTML của một trang web cũng có thể được viết lại và
mở rộng
4 Tương tác với người dùng: jQuery cho bạn nhiều phương thức để tương tác với người
dùng và tối giản các mã Event trong code HTML jQuery cho phép bạn sử dụng rất nhiều hiệu ứng động như mờ dần, slideUp, slideDown()…
5 Hỗ trợ Ajax: đây chính là công nghệ ngày càng trở nên phổ biến Asynchronous
JavaScript And XML (AJAX), nó giúp người thiết kế web tạo ra những trang web tương tác cực tốt và nhiều tính năng Thư viện jQuery loại bỏ sự phức tạp của trình duyệt trong quá trình này và cho phép người phát triển web có thể tập trung vào các tính năng đầu cuối, đơn giản hoá các tác vụ javascript
Ưu điểm của jQuery
1 Hỗ trợ tốt việc xử lý các vấn đề thường gặp như cấu trúc DOM, Ajax …
2 Tương thích nhiều trình duyệt web phổ biến
3 Nhỏ gọn, dễ sử dụng, có nhiều tài liệu hướng dẫn chi tiết
Trang 194 Ít xung khắc với các thư viện JavaScript khác
5 Có nhiều plugin thuận tiện cho việc phát triển hệ thống
2.1.3 Ajax
AJAX, viết tắt từ Asynchronous JavaScript and XML (JavaScript và XML không đồng bộ),
là bộ công cụ cho phép tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ hiển thị những
gì cần thiết, thay vì tải đi tải lại toàn bộ trang web AJAX không phải một công nghệ đơn lẻ mà là
sự kết hợp một nhóm công nghệ với nhau Trong đó, HTML và CSS đóng vai hiển thị dữ liệu, mô hình DOM trình bày thông tin động, đối tượng XMLHttpRequest trao đổi dữ liệu không đồng bộ với máy chủ web, còn XML là định dạng chủ yếu cho dữ liệu truyền Đây đều là công nghệ sẵn
có nhưng Javacript đã lắp ráp chúng lại để thực hiện những "sứ mệnh" đáng khâm phục [7]
Ưu điểm
1 Trong nhiều trường hợp, các trang web chứa rất nhiều nội dung thông thường trong trang Nếu sử dụng các phương pháp truyền thống, những nội dụng đó sẽ phải nạp lại toàn bộ với từng yêu cầu Tuy nhiên, nếu sử dụng Ajax, một ứng dụng web có thể chỉ yêu cầu cho các nội dung cần thiết phải cập nhật, do đó giảm lượng lớn băng thông và thời gian nạp trang
2 Việc dùng các yêu cầu không đồng bộ (asynchronous request) cho phép giao diện người dùng của ứng dụng hiển thị trên trình duyệt giúp người dùng trải nghiệm sự tương tác cao, với nhiều phần riêng lẻ
3 Việc sử dụng Ajax có thể làm giảm các kết nối đến server, do các mã kịch bản (script)
và các style sheet chỉ phải yêu cầu một lần
Trang 202 Bên cạnh đó, mọi người không thể lưu lại địa chỉ web vào thư mục Favorite (Bookmark) để xem lại về sau Do áp dụng lớp trung gian để giao dịch, các ứng dụng AJAX không có một địa chỉ cố định cho từng nội dung Khiếm khuyết này làm cho AJAX dễ "mất điểm" trong mắt người dùng
2.2 Trực quan hóa dữ liệu
Trong thời kì bùng nổ dữ liệu, công nghệ và toàn cầu hóa như hiện nay, tình trạng khối lượng
dữ liệu lớn khiến việc sắp xếp, quản lý, truy suất dữ liệu, lựa chọn thông tin cần thiết từ nhiều nguồn cho các mục đích khác nhau và đưa ra các hoạt động hiệu quả dựa trên thông tin đó gặp khá nhiều khó khăn Vấn đề đặt ra là: có cách nào đó mà hệ thống dữ liệu thành những hình ảnh trực quan hóa, sinh động để dễ dàng tiếp cận và đánh giá một cách nhanh chóng, chính xác ?
Cách tiếp cận để biểu diễn dữ liệu thành hình ảnh hoặc mô hình trực quan là phân tích, sàng lọc và chuyển hóa dữ liệu thành thông tin cần thiết cho hệ thống sử dụng Đại diện trực quan là phần nằm giữa dữ liệu và thông tin Nó cung cấp những phương pháp, công cụ để phân tích chuyển hóa khối dữ liệu thành những thông tin có ý nghĩa, dễ quản lý và sử dụng Tiêu chuẩn cho một đại diện trực quan phụ thuộc vào bản chất của dữ liệu, các loại thông tin mà nó tìm cách để đại diện
và kinh nghiệm người tạo ra nó Để đáp ứng đủ thông tin cho người dùng suy luận và phán đoán, nhưng lại tránh dư thừa, nhầm lẫn và dễ dàng tiếp cận Đại diện trực quan hóa được thiết kế đơn giản, trong sáng và biểu diễn thông tin bằng những hình ảnh, biểu đồ, mô hình và màu sắc, hình khối đặc trưng, sử dụng hiệu ứng đồ họa cho mục đích phân biệt các nguồn thông tin khác nhau Một số ứng dụng tiêu biểu của trực quan hóa :
Phân tích thám hiểm: dùng để phân tích mối quan hệ, tính đối ngẫu, làm biểu mẫu Ví dụ các bản đồ phân tích đánh giá người dùng về điểm đến hấp dẫn
Phân tích xác nhận : trực quan phân tích xác nhận về mối quan hệ cấu trúc giữa các chuỗi
dữ liệu, chấp nhận hoặc từ chối dữ liệu Ví dụ : sử dụng so sánh xu hướng thay đổi nhu cầu của người dùng
Trực quan thông tin : Biểu diễn thông tin bằng cách hình ảnh trực quan như biểu đồ, bản
đồ
Trang 21CHƯƠNG III PHÂN TÍCH YÊU CẦU
Thành viên
Là những người đã đăng nhập vào hệ thống Những người này sẽ thực hiện được các chức năng chính sau :
Đăng trạng thái, hình ảnh, video
Bình luận cho các hình ảnh, trạng thái, video của chính bạn hay của bạn mình
Chia sẻ một thông tin nào đó thông qua chức năng share lên trang cá nhân của mình
Nhấn like để thích một bài đăng nào đó
Nói chuyện, chat với bạn bè của mình
Tìm kiếm nhà hàng, khách sạn, điểm đến
Lập kế hoạch du lịch cho bản thân
Chỉnh sửa thông tin cá nhân
Đối với người quản trị hệ thống
Quản lý người dùng
Quản lý khách sạn
Quản lý phương tiện
Quản lý điểm đến
Một số yêu cầu chức năng khác
Có khả năng mở rộng đa ngôn ngữ
Ứng dụng tương thích với tất cả các trình duyệt và hệ điều hành
Trang 223.2 Lược đồ Use-Case
Lược đồ Use case cho người dùng
Actor : User
Tổng số Use-Case : 13
Trong đó : User là người dùng của hệ thống
Hình 3.1 : Lược đồ Use-Case cho người dùng
Trang 23 Lược đồ Use case cho quản trị hệ thống
Actor : Admin
Tổng số Use case : 7
Trong đó Admin là người quản trị hệ thống
Hình 3.2 : lược đồ Use case cho người quản trị hệ thống
Trong đó lược đồ Use case chi tiết cho từng chức năng như sau :
Lược đồ Use case chi tiết cho Manage Restaurant
Hình 3.3 : lược đồ Use case chi tiết cho Use case Manage Restaurant
Trang 24 Lược đồ Use case chi tiết cho Manage Hotel
Hình 3.4 : lược đồ Use case chi tiết cho Use case Manage Hotel
Lược đồ Use case chi tiết cho Manage Tranportion
Hình 3.5 : Lược đồ Use case chi tiết cho Use case Manage Tranportion
Lược đồ Use case chi tiết cho Manage Attraction
Hình 3.6 : lược đồ Use case chi tiết cho Use case Manage Attraction
Trang 25 Lược đồ Use case chi tiết cho Manage Post
Hình 3.7 : lược đồ Use case chi tiết cho Use case Manage Post
Lược đồ Use case chi tiết cho Manage User
Hình 3.8 : lược đồ Use case chi tiết cho Use case Manage User
3.3 Đặc tả User-Case
Danh sách các Actor của hệ thống
STT Tên Actor Ý nghĩa / Ghi chú
1 User Người dùng bình thường trong hệ thống
2 Admin Người quản trị hệ thống
Danh sách các Use case của hệ thống
STT Tên Use Case Ý nghĩa / Ghi chú
1 Login/Logout Đăng nhập vào hệ thống hoặc đăng xuất khỏi hệ thống
2 Add friend Thêm bạn mới
3 Edit profile Chỉnh sửa thông tin cá nhân
Trang 266 View news Xem tin tức tại các điểm đến
7 Show history Xem lịch sử các kế hoạch đã thực hiện
8 Post status Đăng một status
9 Manage media Quản lý hình ảnh, video
10 Register Đăng kí vào hệ thống
11 Send mail Gửi mail cho người dùng
12 Manage plan Quản lý kế hoạch
13 Manage restaurant Quản lý nhà hàng
14 Manage hotel Quản lý khách sạn
15 Manage tranportion Quản lý phương tiện
16 Manage attraction Quản lý các điểm đến hấp dẫn
17 Manage post Quản lý các bài đăng của người dùng
18 Manage user Quản lý người dùng
19 Manage membership Quản lý mối quan hệ
Đặc tả Use Case “Login/Logout”
Tóm tắt Chức năng đăng nhập và đăng xuất khỏi hệ thống
Dòng sự kiện Người dùng truy cập vào hệ thống
Hệ thống yêu cầu người nhập email và password
Người dùng nhập email và pasword
Hệ thống kiểm tra thông tin mà người dùng cung cấp
Hiển thị trang chủ nếu thông tin người dùng hợp lệ
Sau khi đăng nhập thành công người dùng chọn logout
Hệ thống quay lại trang login cho người dùng đăng nhập
Chuyển tới trang chủ của hệ thống
Sau khi chọn logout thì quay lại trang login
Trang 27thực hiện Use
Case
Điểm mở rộng Không có
Bảng 3.1 : Đặc tả Use Case
Đặc tả Use Case “Add friend”
Bảng 3.2 : Đặc tả Use Case Add friend
Tóm tắt Chức năng thêm bạn mới
Dòng sự kiện Người dùng chọn “add friend” khi muốn kết bạn với một người bạn
Người dùng phải đăng nhập thành công vào hệ thống
Người bạn mới chưa có trong danh sách bạn bè của người dùng hiện tại
Trạng thái hệ
thống sau khi
thực hiện Use
Case
Người bạn mới sẽ xuất hiện trong danh sách bạn bè của người dùng
Người dùng có thể unfriend nếu không muốn kết bạn với người này
nữa
Điểm mở rộng Không có
Trang 28 Đặc tả Use Case “Edit profile”
Tóm tắt Chức năng chỉnh sửa thông tin cá nhân
Dòng sự kiện Người dùng click vào tên người dùng
Chỉnh sửa các thông tin người dùng muốn chỉnh sửa
Nhấn save để lưu lại thông tin vừa chỉnh sửa
Chọn cancel nếu muốn hủy việc chỉnh sửa
Hiển thị thông tin người dùng vừa chỉnh sửa
Thông báo lỗi nếu các thông tin nhập vào không hợp lệ
Điểm mở rộng Không có
Bảng 3.3 : Đặc tả Use Case Edit profile
Đặc tả Use Case “Comment”
Tóm tắt Chức năng bình luận bài đăng của mình hay của bạn bè của mình
Dòng sự kiện Chọn vào button comment
Người dùng nhập nội dung vào ô nhập bình luận
Người dùng phải đăng nhập thành công vào hệ thống
Bài đăng đó phải là của bạn hoặc của bạn của bạn thì mới có thể
Trang 29thực hiện Use
Case
Điểm mở rộng Không có
Bảng 3.4 : Đặc tả Use Case Comment
Đặc tả Use Case “Search”
Tóm tắt Chức năng tìm kiếm
Dòng sự kiện Người dùng nhập từ khóa muốn tìm vào form search
Nhấn Enter hoặc chọn search để bắt đầu search
Hiển thị kết quả chứa từ khóa gần giống với từ khóa vừa nhập
Chuyển sang trang mới chứa các kết quả vừa tìm được
Thống báo “No result” nếu không kết quả nào được tìm thấy
Điểm mở rộng Không có
Bảng 3.5 : Đặc tả Use Case Search
Đặc tả Use Case “View news”
Tóm tắt Chức năng xem tin tức của bạn bè
Dòng sự kiện Các hoạt động của bạn bè người dùng sẽ hiển thị
Trạng thái hệ
thống khi bắt
Người dùng phải đăng nhập thành công vào hệ thống
Trang 30Bảng 3.6 : Đặc tả Use Case View news
Đặc tả Use Case “Show history”
Tóm tắt Chức năng xem lại lịch sử hoạt động của người dùng
Dòng sự kiện Khi người dùng vào trang cá nhân và chọn tính năng show history
Hiển thị tất cả lịch sử của người dùng
Trạng thái hệ
thống khi bắt
đầu thực hiện
Use Case
Người dùng phải đăng nhập thành công vào hệ thống
Người dùng phải vào trang cá nhân của mình
Trang 31 Đặc tả Use Case “Post status”
Tóm tắt Chức năng đăng một trạng thái mới
Dòng sự kiện Người dùng nhập nội dung muốn đăng vào form
Chọn Post để đăng trạng thái
Bảng 3.8 : Đặc tả Use Case Post status
Đặc tả Use Case “Manage media”
Tóm tắt Chức năng quản lý hình ảnh, video
Dòng sự kiện Người dùng vào trang kế hoạch
Xem các hình ảnh, video mình đã thực hiện tại các điểm đến trong kế hoạch
Trạng thái hệ
thống khi bắt
đầu thực hiện
Use Case
Người dùng phải đăng nhập thành công vào hệ thống
Người dùng vào trang kế hoạch
Trạng thái hệ
thống sau khi
Hiển thị các hình ảnh, video tương ứng mà người dùng đã thực hiện tại
các điểm đến
Trang 32thực hiện Use
Case
Điểm mở rộng Người dùng có thể thêm, sửa, xóa hình ảnh vào trong kế hoạch mà
người dùng đang thực hiện
Sau khi kế hoạch đã kết thúc thì chỉ được xem chứ không được chỉnh
sửa
Bảng 3.9 : Đặc tả Use Case Manage media
Đặc tả Use Case “Register”
Tóm tắt Chức năng đăng kí thành viên mới
Dòng sự kiện Người dùng chọn “Register” ở trang đăng nhập để tạo một tài khoản
mới
Người dùng nhập các thông tin cần thiết vào form
Hệ thống kiểm tra và chuyển tới trang chủ, đồng thời gửi mail cho người dùng nếu thông tin người dùng hợp lệ
Hệ thống trả về lỗi nếu thông tin người dùng cung cấp không hợp lệ Trạng thái hệ
Người dùng sẽ có một tài khoản của hệ thống
Nhận được email chúc mừng của hệ thống nếu đăng nhập thành công
Hiển thị trang chủ của hệ thống
Điểm mở rộng Không có
Bảng 3.10 : Đặc tả Use Case Register
Trang 33 Đặc tả Use Case “Send mail”
Tóm tắt Chức năng gửi mail của hệ thống
Dòng sự kiện Hệ thống tự động gửi mail cho người dùng
Trạng thái hệ
thống khi bắt
đầu thực hiện
Use Case
Khi người dùng đăng nhập tài khoản của hệ thống thành công
Khi người dùng sử dụng tính năng quên mật khẩu
Khi người dùng hoàn tất kế hoạch
Khi người dùng tiến hành thay đổi thông tin trong kế hoạch
Bảng 3.11 : Đặc tả Use Case Send mail
Đặc tả Use Case “Manage plan”
Tóm tắt Chức năng quản lý kế hoạch của người dùng
Dòng sự kiện Khi người dùng chọn chức năng quản lý kế hoạch của hệ thống
Người dùng có thể chọn quản lý các vấn đề trong kế hoạch như quản lý việc chọn phương tiện, chọn nhà hàng, điểm đến
Trạng thái hệ
thống khi bắt
đầu thực hiện
Use Case
Người dùng phải đăng nhập thành công vào hệ thống
Hiển thị các kế hoạch đã tạo