Tải bản đầy đủ (.pdf) (110 trang)

Khóa luận tốt nghiệp phát triển ứng dụng hỗ trợ tư vấn chia sẻ thông tin du lịch cùng nhau

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (13.95 MB, 110 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN


KHOA CƠNG NGHỆ PHẦN MỀM

NGƠ ĐỨC HỊA

KHĨA LUẬN TỐT NGHIỆP

PHÁT TRIỂN ỨNG DỤNG HỖ TRỢ TƯ VẤN
& CHIA SẺ THÔNG TIN DU LỊCH CÙNG NHAU
Build advisory and sharing tourist destinations application


KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM






TP. HỒ CHÍ MINH, 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM


NGƠ ĐỨC HỊA – 16520423

KHÓA LUẬN TỐT NGHIỆP

PHÁT TRIỂN ỨNG DỤNG HỖ TRỢ TƯ VẤN
& CHIA SẺ THÔNG TIN DU LỊCH CÙNG NHAU
Build advisory and sharing tourist destinations application

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
ThS. NGUYỄN THỊ THANH TRÚC

TP. HỒ CHÍ MINH, 2021


DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………………
…… ngày ……………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1.
2.
3.
4.

…………………………………………. – Chủ tịch.
…………………………………………. – Thư ký.
…………………………………………. – Ủy viên.
…………………………………………. – Ủy viên.



ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày …… tháng …… năm ……

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
PHÁT TRIỂN ỨNG DỤNG HỖ TRỢ TƯ VẤN & CHIA SẺ THÔNG TIN
DU LỊCH CÙNG NHAU
Nhóm SV thực hiện:

Cán bộ hướng dẫn:

Ngơ Đức Hịa

ThS. Nguyễn Thị Thanh Trúc

16520423

Đánh giá Khóa luận
1. Về cuốn báo cáo:
Số trang

_______

Số chương


_______

Số bảng số liệu

_______

Số hình vẽ

_______

Số tài liệu tham khảo

_______

Sản phẩm

_______

Một số nhận xét về hình thức cuốn báo cáo:
..........................................................................................................................
..........................................................................................................................
2. Về nội dung nghiên cứu:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................


..........................................................................................................................
..........................................................................................................................

..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
3. Về chương trình ứng dụng:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
4. Về thái độ làm việc của sinh viên:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
Đánh giá chung:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................

Điểm từng sinh viên:


Ngơ Đức Hịa: ………/10

Người nhận xét
(Ký và ghi rõ họ tên)

ThS. NGUYỄN THỊ THANH TRÚC



ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày …… tháng …… năm ……

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
XÂY DỰNG ỨNG DỤNG THEO DÕI BỆNH NHÂN TIỂU ĐƯỜNG
Nhóm SV thực hiện:

Cán bộ phản biện:

Ngơ Đức Hịa

ThS. Phan Nguyệt Minh

16520423

Đánh giá Khóa luận
1. Về cuốn báo cáo:
Số trang

_______


Số chương

_______

Số bảng số liệu

_______

Số hình vẽ

_______

Số tài liệu tham khảo

_______

Sản phẩm

_______

Một số nhận xét về hình thức cuốn báo cáo:
..........................................................................................................................
..........................................................................................................................
2. Về nội dung nghiên cứu:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................



..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
3. Về chương trình ứng dụng:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
4. Về thái độ làm việc của sinh viên:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
Đánh giá chung:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................

Điểm từng sinh viên:
Ngô Đức Hòa: ………/10


Người nhận xét
(Ký và ghi rõ họ tên)

ThS. PHAN NGUYỆT MINH



LỜI CẢM ƠN
Thực tế luôn cho thấy, sự thành công nào cũng đều gắn liền với những sự hỗ
trợ, giúp đỡ của những người xung quanh dù cho sự giúp đỡ đó là ít hay nhiều, trực
tiếp hay gián tiếp. Trong suốt thời gian từ khi bắt đầu làm luận văn đến nay, chúng
em đã nhận được sự quan tâm, chỉ bảo, giúp đỡ của thầy cơ, gia đình và bạn bè xung
quanh.
Với tấm lịng biết ơn vơ cùng sâu sắc, chúng em xin gửi lời cảm ơn chân thành
nhất từ đáy lịng đến q Thầy Cơ của Trường Đại học Công Nghệ Thông Tin đã
cùng dùng những tri thức và tâm huyết của mình để có thể truyền đạt cho chúng em
trong vốn kiến thức quý báu suốt thời gian học tập tại trường.
Đặc biệt, chúng em xin chân thành cảm ơn ThS. Nguyễn Thị Thanh Trúc đã tận
tâm chỉ bảo hướng dẫn chúng em qua từng buổi học, từng buổi nói chuyện, thảo luận
về đề tài nghiên cứu. Nhờ có những lời hướng dẫn, dạy bảo đó, bài luận văn này của
chúng em đã hoàn thành một cách xuất sắc nhất. Một lần nữa, em xin gửi lời cảm ơn
chân thành đến cô.
Khi thực hiện luận văn chúng em cịn bỡ ngỡ vì vốn kiến thức của chúng em có
hạn. Do vậy, khơng tránh khỏi những thiếu sót, chúng em rất mong nhận được ý kiến
đóng góp của q Thầy Cơ để bài luận được hồn thiện hơn.

Thành phố Hồ Chí Minh,

tháng

Ngơ Đức Hịa

năm 2021



ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày….. tháng ….. năm ………

ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Phát triển ứng dụng hỗ trợ tư vấn & chia sẻ thông tin du lịch cùng
nhau
Cán bộ hướng dẫn: ThS. NGUYỄN THỊ THANH TRÚC
Thời gian thực hiện: Từ ngày 01/09/2020 đến ngày 28/12/2020
Sinh viên thực hiện:
1. NGƠ ĐỨC HỊA – 16520423
Nội dung đề tài: (Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp
thực hiện, kết quả mong đợi của đề tài)
Tổng quan đề tài:
• Việt Nam đang là một trong những nước có ngành dịch vụ đang trên
đà phát triển mạnh, đặc biệt ngành dịch vụ đang đóng góp ngày càng
cao trong tỉ trọng GPD của cả nước và được kỳ vọng là sẽ chiếm đến
43% GPD vào năm 2025. Lượng khách du lịch nội địa và quốc tế đổ
về Việt Nam là cực kì cao với con số thống kê cho năm 2018 là 15,5
triệu lượt người đối với du khách quốc tế. Song song với đó, xu hướng
du lịch ngẫu hứng, du lịch phượt đang được các bạn trẻ cực kì ưa
chuộng vì tính tự do về thời gian và địa điểm du lịch cũng như tính

linh hoạt khi có thể tự do lựa chọn phương tiện như xe máy, xe đạp
hay xe hơi, cũng như có thể tổ chức đi cá nhân hoặc đi thành các nhóm
nhỏ và lớn khác nhau. Chính vì thế mà du lịch đang là một thị trường
vô cùng tiềm năng để khai thác.


• Với nhiều loại hình du lịch khác nhau mà nhu cầu của khách du lịch
cũng càng ngày càng trở nên đa dạng hơn trước rất nhiều, đi kèm theo
đó là sự yêu cầu ngày càng cao về tính tiện dụng và sự ứng dụng của
công nghệ vào trong các sản phẩm dịch vụ cho du lịch. Minh chứng
cho điều này là ngày càng có nhiều các sản phẩm cơng nghệ đáp ứng
cho các nhu cầu khác nhau của du lịch như đặt vé xe, lên lịch trình
cho chuyến du lịch, đặt phịng, th hướng dẫn viên, review đặc sản,…
Có thể kể tên một số các ứng dụng du lịch đang rất thịnh hành trên thị
trường ngày nay như VeXeRe, Booking, Agoda, Trivago,
TripAdvisor, diadiemdulich.
• Đa số các sản phẩm kể trên đều đánh vào các nhu cầu về đặt phòng,
giới thiệu địa điểm du lịch hay đặt vé xe khách, khá ít sản phẩm phục
vụ cho vấn đề chia sẻ lịch trình và hẹn nhóm đi du lịch cùng nhau.
Mục tiêu đề tài:
• Kiến trúc microservices:
o Tìm hiểu được khái niệm về kiến trúc microservices theo hướng
một hệ thống Event Driven Architecture.
o Tìm hiểu các stack cơng nghệ tương ứng cho việc xây dựng hệ
thống microservices: NodeJS, PostgreSQL, React Native,
Redis, RabbitMQ hoặc Kafka, Docker và Kubernetes.
• Ứng dụng thực tế (ứng dụng chia sẻ thông tin du lịch cùng nhau)
o Tạo ra ứng dụng với giao diện thân thiện và dễ sử dụng.
o Tạo ra các tính năng cần thiết phục vụ cho nhu cầu tạo, quản lý
và chia sẻ thơng tin cho nhóm cùng du lịch, theo dõi realtime vị

trí của các thành viên trong đồn khi di chuyển để liên lạc và
khắc phục nhanh sự cố nếu có, tìm kiếm địa điểm cung cấp các
tiện ích trong q trình du lịch: qn ăn, tiệm sửa xe, nhà trọ,

• Tích hợp với các ứng dụng mạng xã hội tiện cho việc chia sẻ và mời
gọi bạn bè cùng tham gia du lịch.
Phương pháp thực hiện:
• Nghiên cứu cơng nghệ
o Môi trường triển khai: Docker, Kubernetes, Google Cloud
Platform
o Back-end:


§ NodeJS: sử dụng express framework để tổ chức dạng
RESTful API.
§ PostgreSQL.
§ ORM: ObjectionJS.
§ PassportJS và chuẩn OAuth 2 cho việc xác thực và cấp
quyền cho người dùng.
§ Facebook SDK, Google Map SDK.
§ Redis để cache thơng tin.
§ RabbitMQ (hoặc Kafka) làm message queue cho các
service liên lạc với nhau.
§ Google Storage cho việc lưu trữ các file media: hình
ảnh, video, …
o App:
§ React Native.
§ Redux, redux saga cho việc lưu trữ state cho tồn ứng
dụng.
§ Facebook SDK, Google Map SDK.

• Nghiên cứu nghiệp vụ:
o Tìm hiểu nhu cầu của người tham gia du lịch phượt.
o Tìm hiểu quá trình lên kế hoạch cho chuyến đi.
o Tìm hiểu quá trình mời gọi bạn bè cùng tham gia chuyến đi.
o Tìm hiểu q trình di chuyển theo nhóm khi du lịch phượt.
o Tìm hiểu quy trình chia sẻ thơng tin sau chuyến đi cho mọi
người.
Kế hoạch thực hiện:
Làm việc cá nhân, chủ yếu ứng dụng được thực hiện tại nhà và trình
bày với giảng viên hàng tuần để giảng viên theo dõi tiến độ, đánh giá, nhận xét
và lên kế hoạch cho những tuần tiếp theo.
Kết quả mong đợi:
Hoàn thiện ứng dụng di động với giao diện thân thiện và dễ sử dụng
với đầy đủ các chức năng cho việc lập kế hoạch và quản lý chuyến đi du lịch


phượt của cá nhân hoặc cả nhóm. Hệ thống xử lý phía server chạy ổn định và
dễ dàng quản lý cũng như nâng cấp khi cần thiết.
Kế hoạch thực hiện: (Mô tả kế hoạch làm việc và phân chia công việc các
thành viên tham gia)
Với thời gian thực hiện từ 01/09/2020 tới 28/12/2020, nhóm chia thành 5
giai đoạn làm việc, cụ thể:
-

Giai đoạn 1: Nghiên cứu, tìm hiểu cơng nghệ cho việc phát triển
đề tài khóa luận.

-

Giai đoạn 2: Phân tích nghiệp vụ, xây dựng mơ hình UML mơ tả

nghiệp vụ của đề tài khóa luận.

-

Giai đoạn 3: Phát triển hệ thống và ứng dụng trên thiết bị di động.

-

Giai đoạn 4: Triển khai hệ thống lên dịch vụ Google Cloud và
quản lý bằng Kubernetes.

-

Giai đoạn 5: Viết báo cáo cho đề tài khóa luận.

Giai đoạn
Giai đoạn 1 Research

Cơng Việc







Giai đoạn 2 Business
Analysis









Tìm hiểu docker
Tìm hiểu docker compose
Tìm hiểu kubernetes
Tìm hiểu NodeJS và express
framework
Tìm hiểu React Native
Tìm hiểu api facebook, api
google map, api google storage
Tìm hiểu Redis, RabbitMQ
Tìm hiểu nghiệp vụ du lịch
phượt
Tìm hiểu tính năng ứng dụng
tương tự
Chốt tính năng
Xây dựng use case
Xây dựng diagram

Thời gian
4 tuần (01/09/2020 –
01/10/2020)

2 tuần (01/10/2020 –
08/10/2020)



Giai đoạn 3 Build
Giai đoạn 4 -






Xây dựng database
Xây dựng back-end
Xây dựng app
Deploy ứng dụng lên server

Deloy

8 tuần (08/10/2020 –
08/12/2020)
1 tuần (08/12/2020 –
15/12/2020)

Giai đoạn 5 Report

• Viết báo cáo
• Review lại code

2 tuần (15/12/2020 –
28/12/2020)

Xác nhận của CBHD


TP. HCM, ngày … tháng … năm ...

(Ký tên và ghi rõ họ tên)

Sinh viên
(Ký tên và ghi rõ họ tên)

ThS. NGUYỄN THỊ THANH TRÚC

NGƠ ĐỨC HỊA


MỤC LỤC
Chương 1. TỔNG QUAN ĐỀ TÀI ...............................................................1
1.1.

Phát biểu đề tài nghiên cứu .................................................................1

1.2.

Mục tiêu và phạm vi của đề tài ...........................................................2

1.2.1. Mục tiêu ...........................................................................................2
1.2.2. Phạm vi ............................................................................................3
1.3.

Đối tượng sử dụng ...............................................................................3

1.4.


Kết quả dự kiến ...................................................................................3

1.5.

Phương pháp nghiên cứu và nguồn số liệu .........................................3

1.5.1. Phương pháp nghiên cứu .................................................................3
1.5.2. Nguồn dữ liệu ..................................................................................4
1.6.

Điểm mới của luận văn .......................................................................4

1.7.

Kết cấu luận văn ..................................................................................4

Chương 2. KIẾN THỨC NỀN TẢNG ..........................................................5
2.1.

Công nghệ ảo hóa Containerlization và Docker: ................................5

2.1.1. Định nghĩa .......................................................................................5
2.1.2. Các thành phần chính ......................................................................6
2.1.3. Một số khái niệm .............................................................................6
2.1.4. So sánh Docker với Virtual Machine ..............................................7
2.2.

Công nghệ điều phối container và Kubernetes ...................................9


2.2.1. Định nghĩa .......................................................................................9
2.2.2. Các thành phần chính: ...................................................................10
2.2.3. Một số khái niệm ...........................................................................12
2.3.

Gitlab CI/CD .....................................................................................13


2.3.1. Định nghĩa .....................................................................................13
2.3.2. Ưu điểm của việc thực hiện CI/CD trong dự án ............................14
2.3.3. Quy trình CI/CD ............................................................................14
2.3.4. Gitlab CI/CD .................................................................................15
2.3.5. Gitlab Runner ................................................................................16
2.4.

NodeJS/Express.................................................................................17

2.4.1. Công nghệ NodeJS ........................................................................17
2.4.2. Framework Express .......................................................................18
2.5.

React Native ......................................................................................19

2.5.1. Native App và Hybrid App............................................................19
2.5.2. React Native ..................................................................................20
2.6.

PostgreSQL .......................................................................................21

Chương 3. PHÂN TÍCH, THIẾT KẾ ..........................................................22

3.1.

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

3.2.

Sơ đồ kiến trúc hệ thống – Architecture diagram: ............................24

3.3.

Sơ đồ triển khai – Deployment diagram ...........................................25

3.4.

Sơ đồ Use case: .................................................................................26

3.5.

Sơ đồ lớp – Class diagram ................................................................27

3.6.

Sơ đồ tuần tự - Sequence diagrams ...................................................28

3.6.1. Sơ đồ tuần tự chức năng Đăng nhập ..............................................28
3.6.2. Sơ đồ tuần tự chức năng Đăng ký .................................................29
3.6.3. Sơ đồ tuần tự chức năng Upload hình ảnh ....................................30
3.6.4. Sơ đồ tuần tự chức năng Chỉnh sửa thông tin cá nhân ..................31
3.6.5. Sơ đồ tuần tự chức năng Đổi mật khẩu .........................................32



3.6.6. Sơ đồ hoạt động chức năng Tạo chuyến đi mới ............................33
3.6.7. Sơ đồ tuần tự chức năng Đánh dấu địa điểm .................................34
3.6.8. Sơ đồ tuần tự chức năng Cập nhật thông tin chuyến đi .................35
3.6.9. Sơ đồ hoạt động chức năng Mời bạn bè tham gia chuyến đi.........36
3.6.10. Sơ đồ tuần tự chức năng Theo dõi vị trí thành viên trong đoàn ..37
3.6.11. Sơ đồ tuần tự chức năng Cập nhật vị trí hiện tại .........................38
3.6.12. Sơ đồ tuần tự chức năng Viết review sau chuyến đi ...................39
3.7.

Thiết kế giao diện người dùng của ứng dụng ....................................40

3.7.1. Giao diện màn hình Đăng nhập .....................................................40
3.7.2. Giao diện màn hình Đăng ký .........................................................42
3.7.3. Giao diện màn hình Quản lý thơng tin cá nhân .............................44
3.7.4. Giao diện màn hình Danh sách bài viết .........................................48
3.7.5. Giao diện màn hình Tạo mới chuyến đi ........................................51
3.7.6. Giao diện màn hình Danh sách chuyến đi .....................................57
3.7.7. Giao diện màn hình Chỉnh sửa thơng tin chuyến đi ......................59
3.7.8. Giao diện màn hình Xem vị trí thành viên trong chuyến đi ..........62
3.7.9. Giao diện màn hình Viết review sau chuyến đi .............................64
Chương 4. TRIỂN KHAI VÀ PHÁT TRIỂN SẢN PHẨM .......................66
4.1.

Đăng ký tài khoản Google và khởi tạo Project cùng với Cluster ......66

4.2.

Cài đặt docker, gcloud sdk và kubectl ..............................................71


4.3.

Dựng project PackNGo Core API và triển khai lên cluster đã tạo ....72

4.4.

Tích hợp Gitlab CI/CD ......................................................................77

4.5.

Thực hiện việc trigger CI/CD khi push code ....................................82

Chương 5. TỔNG KẾT ...............................................................................85


5.1.

Đánh giá ............................................................................................85

5.1.1. Thuận lợi: ......................................................................................85
5.1.2. Khó khăn: ......................................................................................85
5.2.

Thành quả đạt được ...........................................................................85

5.3.

Những điều còn tồn tại ......................................................................85

5.4.


Hướng phát triển ...............................................................................86

TÀI LIỆU THAM KHẢO .............................................................................87


DANH MỤC HÌNH VẼ
Hình 1.1: Hình thức du lịch phượt đang trở nên ngày càng phổ biến trong giới trẻ...2
Hình 2.1: So sánh giữa kiến trúc Virtual Machine và Containerlization/Docker .......5
Hình 2.2: Mơ hình máy chủ ảo Virtual Machines ......................................................7
Hình 2.3: Mơ hình máy ảo Container .........................................................................8
Hình 2.4: Hệ thống file cắt lớp Container...................................................................9
Hình 2.5: Các thành phần chính của Kubernetes ......................................................10
Hình 2.6: Các khái niệm trong Kubernetes...............................................................12
Hình 2.7: Quy trình CI/CD trong phát triển sản phẩm CNTT ..................................13
Hình 2.8: Gitlab CI/CD .............................................................................................15
Hình 2.9: Quy trình thực hiện CI/CD trên Gitlab CI/CD .........................................16
Hình 2.10: Cơng nghệ NodeJS .................................................................................17
Hình 2.11: Framework Express ................................................................................18
Hình 2.12: Native App và Hybrid App .....................................................................19
Hình 2.13: Cơng nghệ React Native .........................................................................20
Hình 2.14: Hệ quản trị cơ sở dữ liệu PostgreSQL ....................................................21
Hình 3.1: Sơ đồ kiến trúc hệ thống ...........................................................................24
Hình 3.2: Sơ đồ triển khai của hệ thống ...................................................................25
Hình 3.3: Sơ đồ Use-case của hệ thống ....................................................................26
Hình 3.4: Sơ đồ lớp của hệ thống .............................................................................27
Hình 3.5: Sơ đồ tuần tự chức năng Đăng nhập .........................................................28
Hình 3.6: Sơ đồ tuần tự chức năng Đăng ký .............................................................29
Hình 3.7: Sơ đồ tuần tự chức năng Upload hình ảnh ................................................30
Hình 3.8: Sơ đồ tuần tự chức năng Chỉnh sửa thông tin cá nhân .............................31

Hình 3.9: Sơ đồ tuần tự chức năng Đổi mật khẩu.....................................................32
Hình 3.10: Sơ đồ tuần tự chức năng Tạo chuyến đi mới ..........................................33
Hình 3.11: Sơ đồ tuần tự chức năng Đánh dấu địa điểm ..........................................34
Hình 3.12: Sơ đồ tuần tự chức năng Cập nhật thông tin chuyến đi ..........................35
Hình 3.13: Sơ đồ tuần tự chức năng Mời bạn bè tham gia chuyến đi ......................36


Hình 3.14: Sơ đồ tuần tự chức năng Theo dõi vị trí thành viên trong đồn .............37
Hình 3.15: Sơ đồ tuần tự chức năng Cập nhật vị trí hiện tại ....................................38
Hình 3.16: Sơ đồ tuần tự chức năng Viết review sau chuyến đi...............................39
Hình 3.17: Màn hình Đăng nhập ..............................................................................40
Hình 3.18: Màn hình Đăng ký ..................................................................................42
Hình 3.19: Màn hình Quản lý thơng tin cá nhân ......................................................44
Hình 3.20: Màn hình Điều chỉnh thơng tin cá nhân..................................................45
Hình 3.21: Màn hình Thay đổi mật khẩu ..................................................................46
Hình 3.22: Màn hình Danh sách bài viết ..................................................................48
Hình 3.23: Màn hình Danh sách bài viết với action button ......................................49
Hình 3.24: Màn hình Tạo mới chuyến đi ..................................................................51
Hình 3.25: Màn hình Tìm địa điểm ..........................................................................52
Hình 3.26: Màn hình Gắn tọa độ điểm di chuyển .....................................................53
Hình 3.27: Màn hình Chọn ngày cho chuyến đi .......................................................54
Hình 3.28: Màn hình Chọn giờ cho chuyến đi..........................................................55
Hình 3.29: Màn hình Danh sách chuyến đi ..............................................................57
Hình 3.30: Màn hình Chỉnh sửa thơng tin chuyến đi ................................................59
Hình 3.31: Màn hình Chỉnh sửa chuyến đi với popup xác nhận xóa chuyến đi .......60
Hình 3.32: Màn hình Xem vị trí thành viên trong chuyến đi....................................62
Hình 3.33: Màn hình Xem vị trí thành viên trong chuyến đi....................................64
Hình 4.1: Form tạo tài khoản Google .......................................................................66
Hình 4.2: Tạo Project mới ........................................................................................67
Hình 4.3: Điền thơng tin Project mới........................................................................68

Hình 4.4: Tìm kiếm product Kubernetes Engine ......................................................68
Hình 4.5: Enable Kubernetes Engine API ................................................................69
Hình 4.6: Tạo cluster mới .........................................................................................69
Hình 4.7: Form tạo cluster mới .................................................................................70
Hình 4.8: Danh sách các cluster đã tạo .....................................................................70
Hình 4.9: Cài đặt gcloud sdk ....................................................................................71


Hình 4.10: Cài đặt docker .........................................................................................71
Hình 4.11: Google Cloud Project ID ........................................................................72
Hình 4.12: Dockerfile để build image ......................................................................73
Hình 4.13: Quá trình build docker image .................................................................74
Hình 4.14: Dựng container lên và kiểm tra tình trạng của container đã dựng ..........75
Hình 4.15: Push image lên Google Cloud Registry ..................................................75
Hình 4.16: Google Cloud Registry ...........................................................................75
Hình 4.17: File deployment.yaml .............................................................................76
Hình 4.18: Kiểm tra tình trạng của cluster bằng k9s ................................................77
Hình 4.19: Thêm Kubernetes cluster vào project gitlab ...........................................77
Hình 4.20: Chọn Thêm cluster ..................................................................................77
Hình 4.21: Form tích hợp project với Kubernetes cluster đã có sẵn ........................78
Hình 4.22: Cấu hình gitlab CI/CD ............................................................................79
Hình 4.23: Bật tính năng Auto DevOps để thực hiện CI/CD ...................................79
Hình 4.24: Cấu hình cho Gitlab Runner ...................................................................80
Hình 4.25: Cài đặt Gitlab Runner .............................................................................81
Hình 4.26: Kiểm tra tình trạng Gitlab Runner trên cluster .......................................81
Hình 4.27: File .gitlab-ci.yml....................................................................................82
Hình 4.28: File .gitlab-ci.yml....................................................................................83
Hình 4.29: Gitlab pipeline ........................................................................................83



DANH MỤC TỪ VIẾT TẮT
Từ viết tắt

Từ đầy đủ

Giải thích

CSDL

Cơ sở dữ liệu

Cơ sở dữ liệu cho ứng dụng

HTTP

HyperText Transfer Protocol

Giao thức truyền siêu văn bản

JSON

JavaScript Object Notation

Định dạng trao đổi dữ liệu

UI

User Interface

Giao diện người dùng


SDK

Software Development Kit

Bộ sưu tập các công cụ phát
triển phần mềm

API

Application Programming

Giao diện lập trình ứng dụng

Interface
CI/CD

Continuous Integration and

Quy trình tích hợp và triển khai

Continuous Delivery

liên tục

VM

Virtual Machine

Máy ảo


OS

Operating System

Hệ điều hành


Chương 1. TỔNG QUAN ĐỀ TÀI
1.1. Phát biểu đề tài nghiên cứu
Việt Nam đang là một trong những nước có ngành dịch vụ đang trên đà phát
triển mạnh, đặc biệt ngành dịch vụ đang đóng góp ngày càng cao trong tỉ trọng
GPD của cả nước và được kỳ vọng là sẽ chiếm đến 43% GPD vào năm 2025.
Lượng khách du lịch nội địa và quốc tế đổ về Việt Nam là cực kì cao với con số
thống kê cho năm 2018 là 15,5 triệu lượt người đối với du khách quốc tế. Song
song với đó, xu hướng du lịch ngẫu hứng, du lịch phượt đang được các bạn trẻ cực
kì ưa chuộng vì tính tự do về thời gian và địa điểm du lịch cũng như tính linh hoạt
khi có thể tự do lựa chọn phương tiện như xe máy, xe đạp hay xe hơi, cũng như có
thể tổ chức đi cá nhân hoặc đi thành các nhóm nhỏ và lớn khác nhau. Chính vì thế
mà du lịch đang là một thị trường vô cùng tiềm năng để khai thác.
Với nhiều loại hình du lịch khác nhau mà nhu cầu của khách du lịch cũng càng
ngày càng trở nên đa dạng hơn trước rất nhiều, đi kèm theo đó là sự yêu cầu ngày
càng cao về tính tiện dụng và sự ứng dụng của công nghệ vào trong các sản phẩm
dịch vụ cho du lịch. Minh chứng cho điều này là ngày càng có nhiều các sản phẩm
cơng nghệ đáp ứng cho các nhu cầu khác nhau của du lịch như đặt vé xe, lên lịch
trình cho chuyến du lịch, đặt phịng, th hướng dẫn viên, review đặc sản,… Có
thể kể tên một số các ứng dụng du lịch đang rất thịnh hành trên thị trường ngày
nay như VeXeRe, Booking, Agoda, Trivago, TripAdvisor, diadiemdulich.
Đa số các sản phẩm kể trên đều đánh vào các nhu cầu về đặt phòng, giới thiệu
địa điểm du lịch hay đặt vé xe khách, khá ít sản phẩm phục vụ cho vấn đề chia sẻ

lịch trình và hẹn nhóm đi du lịch cùng nhau.

1


Hình 1.1: Hình thức du lịch phượt đang trở nên ngày càng phổ biến trong giới trẻ
1.2. Mục tiêu và phạm vi của đề tài
1.2.1. Mục tiêu
-

Mục tiêu cuối cùng của đề tài: phát triển được một hệ thống hỗ trợ tư vấn
và chia sẻ thông tin du lịch cùng nhau bằng kiến trúc microservices.

-

Tạo ra ứng dụng với giao diện thân thiện và dễ sử dụng, bao gồm các tính
năng cần thiết phục vụ cho nhu cầu tạo, quản lý và chia sẻ thơng tin cho
nhóm cùng du lịch, theo dõi realtime vị trí của các thành viên trong đoàn
khi di chuyển để liên lạc và khắc phục nhanh sự cố nếu có, tìm kiếm địa
điểm cung cấp các tiện ích trong q trình du lịch: qn ăn, tiệm sửa xe,
nhà trọ, …

-

Tích hợp với các ứng dụng mạng xã hội tiện cho việc chia sẻ và mời gọi
bạn bè cùng tham gia du lịch.

2



×