1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Mạng máy tính và truyền thông: Phát triển ứng dụng đa nền tảng dành cho du lịch nhóm

107 0 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát triển ứng dụng đa nền tảng hỗ trợ du lịch nhóm
Tác giả Thuy Ngoc Ha, Nguyen Minh Trung
Người hướng dẫn ThS. Do Thi Huong Lan
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Mạng máy tính và Truyền thông
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2020
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 107
Dung lượng 57,07 MB

Nội dung

Với dé tài trên nhóm sẽ tập trung vào khía cạnh du lich,xây dựng một ứng dụng đa nền tảng hỗ trợ các nhóm đi du lịch có phạm vi trong nước với các chức năng như: Tìm kiếm địa điểm, gợi ý

Trang 1

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG

MAY TÍNH VÀ TRUYEN THONG

THUY NGỌC HA

NGUYEN MINH TRUNG

KHOA LUAN TOT NGHIEP

PHAT TRIEN UNG DUNG DA NEN TANG HO

TRO DU LICH NHOM

Developing a cross-platform application to support

group traveling.

KỸ SƯ NGANH TRUYEN THONG VA MẠNG MAY TÍNH

TP HO CHi MINH, 2020

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HỌC CÔNG NGHỆ THONG TIN KHOA MẠNG MAY

TINH VA TRUYEN THONG

THUY NGỌC HA - 16520322

NGUYEN MINH TRUNG - 16521316

KHOA LUAN TOT NGHIEP

PHAT TRIEN UNG DUNG DA NEN TANG HO

TRO DU LICH NHOM

Developing a cross-platform application to support

group traveling.

KỸ SU NGANH TRUYEN THONG VA MẠNG MAY TÍNH

GIANG VIEN HUONG DAN

ThS Dé Thi Huong Lan

TP HO CHi MINH, 2020

Trang 3

LỜI CẢM ƠN

Đầu tiên, Chúng em xin gửi lời cảm ơn chân thành đến Quý thầy cô trong khoa

Mạng máy tính và Truyền thông, cũng như Trường Đại học Công Nghệ Thông Tin vì đã tận tình dạy bảo và tạo điều kiện, giúp đỡ chúng em trong suốt quá trình học tập và

nghiên cứu tại trường hoàn thành được đề tài này.

Đặc biệt, chúng em xin gửi lời tri ân sâu sắc đến người Cô đáng kính, người đã

trực tiếp tận tình hướng dẫn, truyền đạt kinh nghiệm, đi cùng chúng em trong thời gian

nghiên cứu và hoàn thành khóa luận chuyên ngành: ThS Đỗ Thị Hương Lan.

Kính chúc Quý Thầy Cô được nhiều sức khỏe, niềm vui và thành công trong công

việc, cũng như trong cuộc sống Mong Thầy Cô luôn có được một sức khỏe tốt và một

tinh thần kiên cường, dé có thể tiếp tục truyền day lại những tri thức cũng như kinh

nghiệm cho các học trò thân yêu của trường ĐH CNTT.

Xin gửi lời cảm ơn đến các anh chị, bạn bè đã giúp đỡ và chia sẻ kiến thức trong

suốt quá trình học tập cũng như thực hiện khóa luận.

Trong quá trình thực hiện đề tài nhóm đã có gắng vận dụng hết kiến thức đã được

giảng dạy ở trường đề bồ trợ cho việc hoàn thành tốt khóa luận.

Tuy nhiên, tổng quá trình thực hiện nhóm không tránh khỏi những sai sót Vì vậy nhóm rất mong nhận được sự đóng góp ý kiến từ quý thầy cô để nhóm hoàn thiện kĩ

năng của mình.

Xin chân thành cảm ơn quý Thầy/Cô.

Nhóm tác giả

Trang 4

CHƯƠNG 1 MỞ ĐÀU

1.1 Tổng quan đề tài.

1.2 Tên để tài -222c 222 2222222112221122112211221112211211 211cc xe 2

1.4 Đối tượng và phạm vi nghiên cứu 2 ++2+++22+++2Ex++£Exztrxxczrxrcrrrcee 3

1.5 _ Nội dung và phương pháp nghiên UU - c5 5+ s+svEsvxeeevesrsxex 3

CHƯƠNG 2 KHẢO SÁT THUC TE VÀ KIÊN THỨC NEN TẢNG 7 2.1 Khảo sát thực tẾ - 5c St 12 211211211211211211211211211211211212112121211 11 1e 7

2.2 _ Kiến thức nền tảng

2.2.1 Các phần mềm phục vụ đồ at ccseccccsseesssessssessseessseessseesssesssesssessasesssees 8

2.2.1.1 Android Studio

2.2.1.2 Xcode 7 0 »Ẳ / 9 2.2.1.3 Genymotion.

2.2.1.4 Navicat Premium cece cee +5 1kg 9 2.2.1.5 Git.

2.2.1.6 GitHub à cv tt tre 9 2.2.1.7 Github Desktop

2.2.2 Web Application ác re 10 2.2.3 Framework React — ÌNatÏVe cà tên 10 2.2.4 — NodeJS SH HH HH HH HH Hy 11

2.2.5 MongolDB St HH Hy 11

Trang 5

2.2.6 Cloud Server — Virtual Machine Unbutu 18.04 + ++ 11

2.2.7 Docker — Công nghệ triển khai Server c.cscccssssssssessseessseesssessseessesesees 12

2.2.8 FrameworkK SCTADY ch T HT HH rưy 12

3.2 Mô hình thiết kế cơ sở dữ liệu -c cccctEEtirrrtrtirirrriiirirrre 7

3.2.1 Mô hình quan hệ các bảng trong cơ sở dữ liệu -¿-+ + -<++ 7 3.2.2 Mô tả các bảng trong co sở dữ liéu 8

3.2.2.1 Bảng quản lý thông tin và hoạt động người dùng - 8

3.2.2.2 Bảng quan lý thông tin địa điểm va lịch trình người dùng 8

3.2.2.3 Bảng quan ly thông tin nhóm du lich của người dùng 9

3.2.2.4 Bảng mô tả model cơ sở dữ liệu - -¿- ¿5+2 S+x£*x+£+cvxsvxsxe 20

CHƯƠNG 4 MÔ HÌNH CHỨC NANG VA HIỆN THỰC UNG DUNG 30

4.1 Nhóm chức năng “Quản lý tài khoản”

4.1.1 Mô hình phân rã chức nang 0 eee eeeeeeseeeeeeeseeeeeeseeeeeeeseneeeeeeeeeeeeeeees 30

4.12 — Sơ đồ UseCase

4.1.3 Biểu đỗ sequence diagram cccccssesssseessseessseesssessssessseessseersseesssessseeees 32

4.1.4 Hiện thực các chức nang ứng dung

ii

Trang 6

4.1.4.1 Đăng ky tài khoản -scSHSnHHHnHHHHey 41 4.1.4.2 Chứng thực c2 thờ 4

4.1.4.3 Đăng nhập Ăn TH TH HH TH Hy 44

4.1.4.4 Quên mật khẩu 2-22 222+222E222E1221127111111 2211221 crek 46

4.1.4.5 Quản lý và chỉnh sửa thông tin -.- 5c se S+cSxsvxsereeeexseeee 48 4.2 Nhóm chức năng “Quan lý lịch trình'” 5+5 s+x+x+svkekekerrrrereree 49

4.2.1 Mô hình phân rã chức năng - - 6StS+S*v+srkrerekerrerree 49

4.2.2 Sơ đồ UseCase Hee 50

4.2.3 Biểu đỗ sequence diagram csccscssessseessseessseessseessseessiesssecssseessseessseess 51

4.2.4 Hiện thực các chức năng ứng dụng

4.2.4.1 Tham khảo, tìm kiếm và gợi ý các địa điêm du lịch

4.2.4.2 Gợi ý lịch trình và tạo lịch trình cho chuyến đI àà c2 cv 55

4.3 Quản lý nhóm du lich wo eee eee ee cee 111k Hi 57

4.3.1 Mô hình phân rã chức nang oe eee cee eceneeeeeeeeeeeeeeeseeneeeees 57

4.3.2 Sơ đồ UseCase ccccesssscccsssssrseessestecsessssssmeieeseeeessnsssnnmmneeeseeeeesnssen 59 4.3.3 Biểu đỗ sequence diagram c.csccccssssessseessseessseesssessssessseessseesssecssseesseeees 61

4.3.4 Hiện thực chức năng ứng dụng - ¿5< sc+st++xsvsvxseeeesveees 65

“ăn Tao nhom aa 65 4.3.4.2 Tạo mới sự kiỆN - c2 1201211121111 1 1511211181111 1181 181181 51 x32 68

4.3.4.3 Chia sẻ hình ảnh lên các trang mạng xã hội ©5552 T7

4.3.4.4 Nhắn tin nhóm 22vccttEEtrhnnr de 79

iii

Trang 7

5.2

CHUONG 5 KET LUẬN VA HUONG PHAT

TRIÉN -. s-Kết Wa cc eccceccscessssessseessseessseesssessseeessessssessssessssessseesasessasessssessseessseesaseessseees Hướng phát trig ccccccscscessssessssesssessseessseesssessssessseesssessssessssessseesssesasessaseses

1V

Trang 8

DANH MỤC HÌNH VE

Hình 1.1 Thuật toán quản lý thanh toán chi phí của ứng dụng 4

Hình 2.1 Màn hình khảo sát những ứng dụng cần thiết khi di du lịch từ “CH Play” 7

Hinh 4.1 Man hinh o1 41

Hình 4.2 Màn hình thông báo lỗi chức năng đăng ký tài khoản . : 42

Hình 4.3 Man hình chứng thu eeceeseeceeeseeeeeeeneeeeeeeneeeeeesneeeeeesieeeeeeseseseeeaeeee 43 Hình 4.4 Man hình đăng nhap oo eee eceeeeseeeeeeeeeeeeeeceeeceeseeeeeeseeeseesieneeeeseeeee 44

Hình 4.5 Màn hình thông báo lỗi chức năng đăng nhập - ¿- 552552 45

Hình 4.6 Màn hình quên mật khâu.

Hình 4.7 Màn hình thông báo lỗi chức năng quên mật khâu - 47

Hình 4.8 Màn hình quản ly và chỉnh sửa thông tin -¿- 5555 5+++c<+x+vc+zxee 48

Hình 4.9 Màn hình tham khảo, tìm kiếm và gợi ý các địa điểm du lịch 33 Hình 4.10 Màn hình các địa điểm và chỉ tiết về địa điểm . -c5c¿ 54 Hình 4.11 Màn hình gợi ý lịch trình và tạo lịch trình chuyến (<n 55

Hình 4.12 Màn hình hiền thị lịch trình trên bản đồ và chon địa điểm 56

Hình 4.13 Màn hình tạo nhóm mới.

Hình 4.14 Màn hình thêm thành viên vào nhóm ¿+ 5+ +£+<+++*£eEexexexexr+ 66

Hình 4.15 Màn hình báo lỗi khi thêm thành viên 2 2 222z+2£2£+2£zzzzzzxzz+2 67

Hình 4.16 Màn hình giao địCH - 6 c1 911v 1 1v vn nh Tnhh Hàn rưến 68 Hình 4.17 Màn hình chọn một thành viên trong nhóm thanh toán chi phí 69

Hình 4.18 Màn hình chọn nhiều thành viên trong nhóm thanh toán chi phí 70

Trang 9

hình trường hợp kiểm tra bị lỗi khi nhập sé tiền thanh toán chi phi 71

ình chia đều thanh toán chỉ phí đầu ra 72 Hình 4.21 Man hình chia không đều thanh toán chi phí đầu ra - 73

hình tùy chọn chia không đều thanh toán chi phí dau ra 74 hình thêm địa điểm cccccccccccrrrrtttrtrtrrrrrrrrrrrrrrrrriir 75

inh thêm hình ảnh có thé phóng to/ thu nhỏ 76

hình chia sẻ hình ảnh lên mạng xã hội . eects 77 inh chia sẻ sự kiện lên mang xã hội facebook . 78 hình trò chuyện trong nhóm - ¿+ +52 ++x+£+£vxvxseeeeeexeeeee 79

hình chia sẻ vi trí hin {ại - ¿5c 3232 *++vs+evexeexerereexse 80

hình chỉ đường và điều hướng giữa các thành viên trong nhóm 81

hình email thông báo chi phí .-.- -¿- - ¿5+ + ++x++x+xsexxsexserex 88

hình web hiền thị chỉ tiết chi phí của các thành viên trong nhóm 89

hình chỉ tiết hình ảnh được chia sẻ hiển thị trên trang wcb 90

v2

Trang 10

DANH MỤC BANG

Bảng 1.1 Thống kê chức năng ứng dụng - 22: ©2222222222+22EE2zttEEEEveerrrvrrrrrrk 7

Bảng 3.1 Bảng quản lý thông tin và hoạt động người dùng - 18

Bảng 3.2 quản ly thông tin địa điểm và lịch trình người dùng - 18

Bang 3.3 quản lý thông tin nhóm du lịch của người dùng - ¿s5 ++<<<+ 19 Bảng 3.4 Bang mô ta model user

Bang 3.5 Bang mô tả model tTID ¿+ 5 S3 *91E1EEEESE 1E 111011111101, 21 Bang 3.6 Bảng mô tả model fFiD_ uS€T - 2-2 +55 *+£*E+Eexevrererereeekrre 21 Bảng 3.7 Bảng mô ta model transaC(IOH - c5 5+ £vE+vEseeeeeevserserreserree 2 Bảng 3.8 Bảng mô ta model transaction US€T .-.- 6 65+ +vx+eeseeeesereee 23 Bang 3.9 Bảng mô tả model us€r_aC(IVI óc SE sv‡+£eeevsereerrrserree 24 Bang 3.10 Bảng mô tả model pÏanSeT - - 6+5 ***S£*£+E+xzvreketeeeererrx 24 Bảng 3.11 Bảng mô tả model planLocation

Bang 3.12 Bang mô tả model placeLOCafiOT «c5 5+ S+++£+svseeevxseesee 26 Bảng 3.13 Bang mô tả model maInLOCafiOI - «+5 +£+£+evxseeeeexseesee 26 Bảng 3.14 Bang mô ta model detailLocafiO ¿-¿- + + 25+ S+++£+x+zvrvxeeexerrrrre 27 Bảng 3.15 Bảng mô tả model locationSeT ¿<5 25+ S‡E+x+e‡keexetsxerrrree 28 Bang 3.16 Bảng mô tả model image TTÍp - - - 55+ + ***£vxvE+teevrerekekrkrrree 28 Bảng 3.17 Bảng mô tả model chat 5c t3 SE 32E£vE+EEekEkksrkskreksrrkrerskrree 29

Mi

Trang 11

DANH MỤC MÔ HÌNH - SƠ DO - BIÊU DO

Mô hình 3.1 Triển khai hệ thống sử dụng mô hình MVC -: 2-22 13

Mô hình 3.2 Mô hình thiết kế cơ sở dữ liệu - -: ¿22222++2222S2c+stEExrrerrrsrree 15

Mô hình 4.1 Mô hình phân rã chức năng - Quản lý tài khoản

Sơ đồ UseCase 4.2 Sơ đồ UseCase - Quản lý tài khoản ccccceeeerrre 31

Biểu đô 4.3 Biểu đồ sequence diagram - Dang ký tài khoản . - 32 Biéu đỗ 4.4 Biểu đồ sequence diagram - Đăng nhập ¿-©¿+c2+z+c5ce2 33

Biểu đỗ 4.5 Biểu đồ sequence diagram - Dữ liệu ứng dụng cá nhân . 35 Biéu đỗ 4.6 Biểu đồ sequence diagram - Quên mật khẩu ¿cz+c5+¿ 36

Biểu đỗ 4.7 Biểu đồ sequence diagram - Xem thông tin cá nhân -. 37 Biéu đỗ 4.8 Biểu đồ sequence diagram - Chỉnh sửa thông tin cá nhân 38 Biéu đồ 4.9 Biểu đồ sequence diagram - Đăng xuất -2:-22©2s++ccxcscsce2 39

Mô hình 4.10 Mô hình phân rã chức năng - Quản lý lịch trình - 49

Sơ đồ UseCase 4.11 Sơ đồ UseCase - Quan lý lịch trình - zcsc+c5sc2 50

Biéu đồ 4.12 Biểu đồ sequence diagram - Tìm kiếm địa điểm và tạo lịch trình 51

Mô hình 4.13 Mô hình phân rã chức nang - Quan lý nhóm du lịch - 58

Sơ đồ UseCase 4.14 Sơ đồ UseCase - Quan lý nhóm du lịch - c2 59 Biểu đỗ 4.15 Biểu đồ sequence diagram - Tạo mới nhóm du lịch.

Biều dé 4.16 Biểu đồ sequence diagram - Tạo mới sự kiỆn - - + «+ 62

Biéu đô 4.17 Biểu đồ sequence diagram - Thống kê và hién thị -. - 63

vai

Trang 12

Internetwork Operating System

Application Programming Interface

Application

User Experience

User Interface

Structured Query Language

Model - View - Controller

Secure Socket Shell

Internet Protocol

Virtual Private Server

Gross Domestic Produc

United States dollar

DIEN GIAI

Hệ điều hành IOS Giao tiếp lập trình ứng dụng

Ứng dụng

Trải nghiệm người dùng

Giao diện người dùng

Ngôn ngữ truy vấn cấu trúc

Mô hình kiến trúc hệ thống

Giao thức kết nối bảo mật

Giao thức internet

Máy chủ riêng ảo

Giá trị thị trường hàng hóa

Tiền tệ Hoa Kì (tiền D6)

Trang 13

phan trong cuộc sông hằng ngày Với dé tài trên nhóm sẽ tập trung vào khía cạnh du lich,

xây dựng một ứng dụng đa nền tảng hỗ trợ các nhóm đi du lịch có phạm vi trong nước với các chức năng như: Tìm kiếm địa điểm, gợi ý lịch trình, cho phép tạo lịch trình, quản

lý chỉ tiêu, chỉ đường và điều hướng vị trí giữa các thành viên trong nhóm Song song với những vấn đề trên nhóm cũng sẽ tiễn hành thu thập dữ liệu liên quan đến du lịch

thông qua trang web “Travel - Google” từ Google, xây dựng được thuật toán tính toán

chi phí cho hệ thống bao gồm tat cả các trường hợp có thé xảy ra, sử dụng được các API

tối ưu hóa chỉ đường, điều hướng vị trí giữa các thành viên với nhau được cung cấp bởi

“Rapidapi” thị trường cung cấp API cho người dùng được xem lớn nhất hiện nay, nhằm

hỗ trợ quá trình phát triển ứng dụng.

Trang 14

nhóm (bạn bè, gia đình, cơ quan, tour ) đang là một trong những cách mà con người

trong xã hội hiện đại ngày nay lựa chọn để tận hưởng, trải nghiệm va nâng cao tinh thần.

Thông qua mỗi chuyến đi, mỗi người trong chúng ta sẽ có những bức ảnh đẹp cho riêng

mình, được trải nghiệm những vẻ đẹp, tận mắt thấy những khung cảnh thiên nhiên, hùng

vĩ Những trò chơi sẽ làm cho mọi người gắn kết với nhau, hiểu nhau hơn làm tiền đề

phát triển mối quan hệ, làm việc một cách hiệu quả [1] [2] [3] Theo số liệu thống kê, khảo sát của bộ Văn Hóa, Thể Thao và Du Lịch, Tổng Cục Du Lịch Việt Nam “Năm

2019, trong bối cảnh du lịch thế giới tăng trưởng chậm lại, du lịch Việt Nam đã vượt qua nhiều khó khăn, đón trên 18 triệu lượt khách quốc tế, 85 triệu khách du lịch nội dia, 755

nghìn tỷ đồng(tương đương 32,8 ty USD) tổng thu từ khách du lịch trong đó: Tổng thu

từ đu lịch quốc tế là 421 nghìn tỷ đồng, chiếm 55,7%, tương đương 18,3 tỷ USD giá trị xuất khẩu từ du lịch và tổng thu từ du lịch nội địa là 334 nghìn ty đồng, chiếm 44,3%,

tương đương 14,5 tỷ USD Đóng góp trực tiếp của du lịch: 9,2% GDP”.

Cùng với sự phát triển mạnh mẽ của Internet, Công nghệ thông tin, việc đi du lịch

càng dé dàng hơn với sự hỗ trợ của những hệ thống về du lịch bao gồm các website va

các ứng dụng trên điện thoại Tuy nhiên những ứng dụng này thường chỉ tập trung vào

một khía cạnh cụ thể (ví dụ: các ứng dụng hỗ trợ di chuyển — Grab, Goviet, Vexere ;

các ứng dụng hỗ trợ đặt phòng: Traveloka, Agoda, ; các ứng dụng tim kiếm tour du lịch: TripHunter, ) và người dùng thường phải cài đặt nhiều ứng dụng đề được hỗ trợ đầy

đủ Từ đó nhóm đã có ý tưởng phát triển một ứng dụng đa nền tảng hỗ trợ cho một nhóm

du lịch với các chức năng: Gợi ý lịch trình, tạo lịch trình, tạo nhóm, quản ly chi tiêu của

Trang 15

nhóm, nhắn tin nhóm, chia sẻ vị trí trực tiếp, điều hướng tìm đường cho giữa các thành

viên trong nhóm

12 Tên đề tai

- _ Tên tiếng Việt: Phát triển ứng dụng đa nền tảng hỗ trợ du lịch nhóm.

- Tên tiếng Anh: Developing a cross-platform application to support group

traveling.

1.3 Mục tiêu của đề tài

Với đề tài trên nhóm sẽ phát triển ứng dụng phục vụ cho du lịch nhóm gồm các

chức năng:

Bảng 1.1 Thống kê chức năng ứng dụng

Nhóm chức năng Chức năng

Chức năng tìm - Tìm kiêm, xem thông tin các địa điêm nôi tiêng.

- Gợi ý lịch trình, cho phép người dùng tạo, chỉnh sửa, lưu

lịch trình trước khi đi du lịch.

kiếm địa điểm, tạo

lịch trình

- Quan lý chi tiêu

- Chia sẻ vi trí trực tiếp, điều hướng tìm đường cho giữa Chức năng nỗi bật các thành viên trong nhóm.

- Chia sẻ hình ảnh lên các trang mạng xã hội (facebook,

Instagram )

- Tạo nhóm, thêm lịch trình, thêm thành viên vào nhóm.

- _ Tương tác với các thành viên trong nhóm thông qua nhắn

tin nhóm, chia sẻ vị thông tin, hình ảnh cho nhau.

Chức năng hỗ tro | _ Tụ trự nhật ký ( thông tin giao dịch, hình ảnh, vị trí địa

ứng dụng điểm chuyến đi

- Hiển thị các hoạt động của người dùng: thêm, xoá, sửa

nhóm và giao dịch.

Trang 16

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

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

Du lịch nhóm, quản lý chi tiêu, định vi, điều hướng vị trí.

Nghiên cứu UX/UI phù hợp với đối tượng người dùng.

Tìm hiểu về framework React Native của facebook, thông qua đó xây dựng ứng dụng đa nền tảng Android va iOS.

Tìm hiểu về framework NodeJS đề xây dựng server.

Tìm hiểu về “Rapidapi” thị trường cung cấp API cho người dùng được xem là lớn nhất hiện nay trên thê giới.

Tìm hiểu về “Scrapy” thư viện của python dùng dé thu thập dif liệu từ các

trang web (Crawl data) Mạng xã hội du lịch trong nước.

Pham vi nghiên cứu:

Trong giới hạn một khóa luận tốt nghiệp kỹ sư, đề tài hướng đến phát triển

hệ thống phục vụ phạm vi trong nước trên toàn lãnh thổ Việt Nam với ứng dụng

hỗ trợ đa nền tảng.

1.5 Nội dung và phương pháp nghiên cứu

Nôi dung 1 Khảo sát nhu cầu, cách thức hoạt động của ứng dụng.

Mục đích: Nắm rõ nhu cầu của người sử dụng về vấn đề chỉ tiêu, cách quản lý, chia tiền hợp lý trong mỗi chuyến đi và điều đáng nhớ nhất sau mỗi chuyến đi là kỉ niệm

với những bức ảnh đẹp có thé chia sẻ cho nhau, vị trí mà nhóm đã đặt chân tới Tiến

hành lên kế hoạch xây dựng các chức năng phù hợp, cần thiết và thuận tiện nhất cho

Trang 17

Kết quả thực hiện:

- Khảo sát được số liệu thống kê du dịch, mức độ cần thiết của ứng dụng.

- Nắm được những chức năng chính của ứng dụng can phát triển.

- Lên kế hoạch xây dựng và phát triển ứng dụng.

Nôi dung 2: Phân tích, thiết kế hệ thống và thuật toán thanh toán chỉ phí.

Mục đích: phân tích - thiết kế hệ thống, thuật toán thanh toán chỉ phí và cơ sơ dữ

liệu phù hợp với từng chức năng.

Phương pháp thực hiện: [5] Tham khảo những tài liệu về phân tích chức năng ứng dụng, xây dựng thuật toán Tiến hành xây dựng thuật toán chỉ phí cho ứng dụng.

Kết quả thực hiện: Xây dựng được Thuật toán thanh toán chi phí cho ứng dụng.

Bắt đầu

‘Chon X thành viên thank

toán giao địch đầu vào

THỊ: Chia không đều [Chọn X thanh vida wong THỊ; Chia đều

nhóm chịu số tiền đầu ra

Ì 201852 eres sees EEEEEE Số tiên mà X thành viên trong,

shia cài cote itor He

Trang 18

Chú Thích:

n: Tổng số thành viên trong nhóm của chuyến đi

a: Số tiền đầu vào của giao dịch

X: Số thành viên trong nhóm được chọn dé giao dịch.(1<=X<= n)

y: Số tiền đầu vào của mỗi thành viên được chọn trả cho chi phí

giao dịch.

y1: Tổng số tiền đầu vào của X thành viên trong nhóm được chọn

dé trả cho chi phí giao dịch

z: Số tiền đầu ra của mỗi thành viên được chọn phải chịu cho chỉ

phí giao dịch.

Zl: Tổng số tiền đầu ra của X thành viên trong nhóm được chọn

dé chịu cho chi phí giao dịch

Nôi dung 3: Xây dung chức năng gợi ý lên lịch trình

Mục đích: Thông qua dữ liệu đã được thu thập (crawl) về người dùng có thé xemgợi ý lịch trình cho phép lên lịch trình giúp người dùng có thể chọn một lịch trình tối

ưu tại một địa điểm cụ thể từ gợi ý của ứng dụng hoặc có thê sửa lại lịch trình từ lịchtrình gợi ý dé phù hợp với chuyến đi của nhóm

Phương pháp thực hiện: [4] Thực hiện khảo sát và thu thập dữ liệu từ nhiều

nguon, cac trang web chuyén về du lịch, từ đó thu thập dữ liệu phù hợp, cần thiết ở

mỗi địa điểm Tiếp đến xử lý dữ liệu dé có các lịch trình gợi ý tối ưu ở mỗi địa điểm

Kết quả thực hiện: Hoàn thành một ứng dụng đa nền tảng (IOS, Android, web

application) cung cấp cho người dùng với những chức năng:

- Hién thị nhiều địa điểm du lịch phổ biến

- Gợi ý lịch trình tối ưu tại một địa điểm du lịch cụ thé

- Cho phép người dùng sửa lịch trình để phù hợp với mỗi nhóm

Nôi dung 4: Xây dựng các chức năng chia sẻ vi trí giữa các thành viên trong nhóm.

Mục đích: Tạo ra chức năng chia sẻ vi trí trực tiêp giữa các thành viên của nhóm

Trang 19

trong quá trình của chuyến đi Thông qua chức năng trên các thành viên sẽ biết được vịtrí hiện tại của nhau hiển thị trên ban đồ, điều hướng tìm đường đi một cách chính xácnhất tránh cho việc lạc đường, mất nhiều thời gian tìm nhau.

Phương pháp thực hiện: [6] [7] Tham khảo công nghệ, ứng dụng (Google API,

Facebook, Google maps ) có liên về chia sẻ vị trí hiện tại, điều hướng đường đi Từ đó

sử dụng công nghệ thích hợp với chức năng của ứng dụng.

Kết quả thực hiện: Hoàn thành một ứng dụng đa nền tảng (IOS, Android, webapplication) cung cấp cho người dùng với những chức năng:

- Chia sẻ vị trí hiện tại của nhau trên ban đồ.

- _ Điều hướng, tìm đường di giữa các thành viên

Nôi dung 5: Xây dựng các chức năng hỗ trợ ứng dụng.

Mục đích: Tạo ra và phát triển ứng dụng có các chức năng hỗ trợ: chat nhóm,chia sẻ hình ảnh, vị trí những địa điểm mà nhóm đã đi trên bản đồ, đồng thời nhóm cũng

sẽ tạo ra chức năng cho phép người dùng chia hình ảnh, vị trí địa điểm đã được lưu trữlên mạng xã hội dé nhiều người dùng biết đến (facebook, instagram )

Phương pháp thực hiện: Bắt tay vào code các chức năng của ứng dụng Sau khi

đã tạo ra các chức năng đã được hiện thực hoá trên ứng dụng tiễn hành kiểm tra nếu hợp

lý chức năng sẽ được giữ nguyên, nếu không hợp lý chức năng sẽ được sửa cho đến khi

phù hợp.

Kết quả thực hiện: Hoàn thành một ứng dụng đa nền tảng (IOS, Android, webapplication) cung cấp cho người dùng với những chức năng:

-_ Nhắn tin nhóm nhóm ( văn bản, audio, hình anh )

- Luu trữ thông tin, hình ảnh, vị trí địa điểm của chuyến đi

- Chia sẻ hình ảnh, vị trí những địa điểm mà nhóm đã đi trên bản đồ đã được

lưu trữ, đồ ng thời có thể chia sẻ lên các trang mạng xã hội (Facebook,

Instagram ) để nhiều người dùng biết đến

Trang 20

CHƯƠNG 2 KHAO SÁT THUC TE VÀ KIÊN THỨC NEN TANG

2.1 Khảo sát thực tế

Với một đề tài — ý tưởng, một điều khá quan trọng đó chính là xem xét xem ý

tưởng đó làm được gi, phục vụ cho ai, cũng như xác định xem ý tưởng đó có từng được

phát triển chưa; nếu có, những điều làm được và chưa được là gì, dé từ đó người tác giả

có thé tham khảo cũng như rút kinh nghiệm cho chính mình

Ngoài ra, lý thuyết phải đi đôi với thực tế, đó cũng là một điều quan trọng Vì thé,

việc thu thập dit liệu, khảo sát từ thực tế giúp một ý tưởng — đề tài có tính ứng dụng cao,

chứ không chỉ còn là lý thuyết suông Ở mục này, nhóm tác giả sẽ đề cập đến những điều

đã tìm hiểu được trong quá trình khảo sát từ thực tế:

13:24 | 0,0KB/s ©

€ dulch Q Ứ

3 “S4 Í

x 4 trở lên Lựa chọn của biên tập viên

Traveloka: Đặt chỗ ở, vé bay, tour & trải

¥ Quảng cáo - Traveloka - Du lịch và Dia phương

48w 37MB []10 Tr+

Agoda

sosse Quảng cáo - agoda.com

45% 63MB @ Lựa chọn của biên tập viên

TripHunter: Lịch trình du lich tự túc & đ

TripHunter JSC - Du lịch và Địa phương

43* 24MB 10 N+

Ờ - Cộng đồng du lịch phượt

( ) Ờ Phượt - Du lịch và Địa phương

50% 14MB ]5N+

AO Hướng dan Du lịch Việt Nam

TONG CỤC DU LỊCH - Du lịch và Địa phương

43% 21MB [#3 500+

Triptour - Chợ tour trực tuyến

TEKGURU CO LTD - Du lịch và Địa phương

47* 49MB @1N+

Du lịch Việt Nam inVietnam

inVietnam - Du lịch và Địa phương

40% 33MB []10N+

Traveloka: Đặt chỗ ở, vé bay, tour & trải

Traveloka + Du lịch và Địa phương

Traveloka: Đặt chỗ ở, vé bay, tour & trai

Traveloka - Du lịch và Địa phương

48% 37MB E]10Tr+

Travel Buddy: Find a Local & Plan Your

Terrainspotter + Du lịch và Dia phương

44% 17MB [100 N+

EiEibEI

Baidu Map + Du lịch và Địa phương

35* 103MB f1 Tr+

Funliday - Travel planner, collaborative

Funliday Inc - Du lịch va Địa phương

45% 8,9MB © 100N+

Lich Van Nién - Lich Am Duong

astudio + Năng suất

43% 2,3MB E]500N+

Bản đồ đường di - Định vi GPS & Tim đ

App Devz Team + Du lịch và Địa phương

44* 31MB E]1Tr+

HOTSGO PLAN Lịch trình du lịch và ghi

HOTSGO - Du lịch và Địa phương

40% 31MB 100 N+

Hình 1.1 Màn hình khảo sát những ứng dụng cần thiết khi di du lịch từ “CH Play”

Trang 21

Hiện nay trên thị trường có nhiều ứng dụng hỗ trợ du lịch như:

- Cac ứng dụng hỗ trợ đặt xe và di chuyển : Grab, Goviet, Vexere, MyGo

- Các ứng dung đặt phòng — Khách san, Nha nghỉ, Hostel, Villa, Homestay:

HotelsCombined, Booking, Agoda, Traveloka, Trivago

- Các ứng dụng quản lý chi tiêu: Splitwise, Misa, Money lover, PocketGuard,

HomeBudget

- Cac ứng dụng hỗ trợ tìm kiếm tour, lên lich trình đi du lich: TripHunter, Travel

Smart, Klook, Mytourn.vn, Viettravel

- Cac ứng dụng lưu lại kỉ niệm khi đi du lịch (hình ảnh, địa điểm những nơi đã đi

qua ) : Instagram, EverNote, Google Keep,

Đa số những ứng dụng trên chỉ tập trung vào một khía cạnh cụ thê nên khi người dùngmuốn hỗ trợ đầy đủ các chức năng bắt buộc phải cài đặt nhiều ứng dụng Vì thế pháttriển và xây dựng những ứng dụng tích hợp nhiều tính năng với nhau trên cùng một ứng

dụng là điều rat cần thiết cho người dùng phù hợp với xu thé công nghệ hiện nay

2.2 Kiến thức nền tảng

Trong phần này nhóm sẽ tiến hành tìm hiểu, Nắm rõ nhu cầu của người sử dụng

về vấn đề liên quan đến các chức năng của ứng dụng, lên kế hoạch xây dựng các chức

năng phù hợp, cần thiết và thuận tiện nhất cho người dùng

2.2.1 Cac phần mềm phục vụ đồ án

2.2.1.1 Android Studio

Một phầm mềm bao gồm các bộ công cụ khác nhau dùng dé phát triển ứng dụngchạy trên thiết bị sử dụng hệ điều hành Android như các loại điện thoại smartphone, các

tablet Android Studio được đóng gói với một bộ code editor, debugger, các công cụ

performance tool và một hệ thống build/deploy (trong đó có trình giả lập simulator đểgiả lập môi trường của thiết bị điện thoại hoặc trên máy tính) cho phép các lập trình viên

có thê nhanh chóng phát triển các ứng dụng từ đơn giản tới phức tạp

Trang 22

2.2.1.3 Genymotion

Một trình giả lập dành cho Android (x86 với khả năng tăng tốc phần cứng

OpenGL) giống Andoroid Studio và có sẵn các phiên bản Android được cấu hình sẵn

Đây là máy ảo rất tuyệt vời dùng dé dành cho việc thử nghiệm ứng dụng Theo đánh giácủa giới lập trình viên thì đây là máy ảo chạy nhanh rất nhiều lần so với AndroidEmulator và giúp tiết kiệm thời gian khi test ứng dụng.

2.2.1.4 Navicat Premium

Công cu quản ly co sở đữ liệu, tích hop day du các chức năng hiện đại, kết ni

các cơ sở dữ liệu lại với nhau trên một giao diện thân thiện, dễ phân tích, thiết kế các

cơ sở dữ liệu phù hợp với chức năng trong hệ thống, tiện lợi hơn so với thông thường.

Không chỉ dừng lại ở đó, Navicat còn tương thích tốt với các dịch vụ đám mây đang rấtphô biến hiện nay như Google Cloud, SQL Azure, Amazon,

2.2.1.5 Git

Công cu giúp quản ly source code tô chức theo dang dit liệu phan tán , giúp đồng

bộ source code của team lên một server, hỗ trợ các thao tác kiểm tra source code trong

quá trình làm việc Một số câu lệnh của Git thường dùng như: git add , git commit, git

push, git rebase

2.2.1.6 GitHub

Một hệ thống quản lý dự án và phiên ban code, hoạt động giống như một mạng

xã hội cho lập trình viên Các lập trình viên có thể clone lại mã nguồn từ một reposItory,

một dịch vụ máy chu repository công cộng, mỗi người có thé tạo tài khoản trên đó dé tạo

Trang 23

ra các kho chứa của riêng mình dé có thé làm việc GitHub còn là một dịch vụ nồi tiếng

cung cấp kho lưu trữ mã nguồn “Git” cho các dy án phần mềm “Github có đầy đủ những

tính năng của Git”, ngoài ra nó còn bé sung những tính năng về social dé các developer

tương tác với nhau.

2.2.1.7 Github Desktop

Công cụ trực quan cho phép quản ly “Local Repository” trên máy tinh Cấu hình

dé có thể đồng bộ hóa dữ liệu lên Repository server, giao diện thân thiên, dễ sử dụng, rất

phù hợp cho lập trình viên hiện nay.

2.2.2 Web Application

Web — Application: sử dung ngôn ngử lập trình đơn giản HTML, CSS dưới dang

file chấm “pug”, giúp tách mã HTML thành các phần nhỏ hơn mà có thể sử dụng lại trênnhiều tập tin HTML, vì đặc điểm trên nhóm tác giả đã chọn định dang file trên dé pháttriển Web Application

2.2.3 Framework React — Native

React Native là một framework ứng dung di động mã nguồn mở, được phát triển

bởi Facebook Bản phát hành bản đầu tiên của nó là vào ngày 26 tháng 3 năm 2015, tại

Hội nghị Configuration React JavaScript.

React Native được thiết kế dé tao các ứng dung di động cho iOS va Android bangcách cung cấp cho các developer một công cụ dé sử dung React cùng với nền tang di

động gốc

Cho phép xây dựng các ứng dụng trên Android và iOS chỉ với một ngôn ngữ

thống nhất là Javascript nhưng mang lai trải nghiệm native app thực sự Không như cácframework hybrid khác (viết một lần triển khai nhiều noi), React native tập trung vàoviệc một lập trình viên làm việc hiệu quả trên môi trường đa nền tảng như thế nào

Điều tuyệt vời là đã được tích hợp tính năng Live Reload — tương tự tính tính

nang Reload, trong khi Live Reload chỉ tải lại chức năng/tập tin nào thay đối, thi Reload

sẽ tai lại toàn bộ mã nguồn.

10

Trang 24

Ngoài ra, cũng dễ dàng debug Javascript trong Chrome và Safari Đối với những

lỗi thuộc Native thì phải cần đến XCode cho iOS hoặc Android Studio cho Android

Thấy được những ưu điểm của ngôn ngữ lập trình trên có nhiều ưu điểm so vớicác ngôn ngữ lập trình khác, đặc biệt là hỗ trợ đa nền tảng nên nhóm tác giả đã quyết

Do tốc độ xử lý nhanh, nhờ cơ chế xử lý bất đồng độ (non-blocking), NodeJS

có thê xử lý hàng ngàn kết nối cùng lúc mà không gặp bất cứ khó khăn nào, dé dàng

mở rộng tính năng nên vì thế nhóm tác giả đã sử dụng ngôn ngữ lập trình trên dé thiết

lập và chạy server.

2.2.5 MongoDB

Một chương trình cơ sở dữ liệu mã nguồn mở được thiết kế theo kiêu hướng đốitượng trong đó các bảng được cấu trúc một cách linh hoạt cho phép các đữ liệu lưu trênbảng không cần phải tuân theo một dạng cấu trúc nhất định nào Chính do cấu trúc linhhoạt này nên MongoDB có thé được dùng dé lưu trữ các dữ liệu có cấu trúc phức tạp và

đa dạng và không có định (hay còn gọi là Big Data)

Trong đề tài này do nhóm tác giả hướng đến phát triển ứng dụng mạng xã hội dữliệu khá lớn nên sử dụng cơ sở dữ liệu MongDB để lưu trữ dit liệu tương tac.

2.2.6 Cloud Server — Virtual Machine Unbutu 18.04

Sử dung Virtual Machine Unbutu 18.04 tai dia chi https://portal.azure.com.

Thông tin cơ ban về host này là host có cung cấp dịch vu Virtual Machine hay còn gọi

là Virtual Private Server(VPS) giống như một con máy vật lý nhưng có thể tự chọn cấu

hình(Rom, Ram) lớn nhỏ phụ thuộc vào mục đích của người sử dụng Có 2 cách truy cập

II

Trang 25

vào VPS là sử dụng Remote Desktop hoặc SSH thông qua dia chi IP public mà azure

cung cap

2.2.7 Docker — Công nghệ triển khai Server

Docker: Công nghệ mới hiện nay được rất nhiều người sử dụng do đễ dàng triểnkhai, tính tiện lợi nhanh chóng, tiết kiệm resource, hệ thong có mức độ tự động mở rộngcao hon,dé dang automate (tự động hóa) việc quản lý các docker container Thấy đượcnhững điểm mạnh trên của Docker nhóm tác giả đã quyết định dùng công nghệ trên détriển khai Server

Sử dụng một sô công nghệ docker đê triên khai trên server :

- Docker: dùng dé build docker container với Dockerfile cấu hình tương ứng

với server ở may local, khi build xong sử dụng lệnh “push” container “Docker Hub”

với image tương ứng Sau đó SSH và dia chỉ IP cua Virtual Machine Unbutu 18.04 trên cloud dung lệnh “pull” docker image tương ứng.

- Docker Hub là một “github for docker images” Trên “Docker Hub” có hang

ngàn public images được tao bởi cộng đồng cho phép dé dang tim thay những image bạn

cần hoặc có thé sử dụng image của bạn

- Docker-compose: file cau hình dùng dé định nghĩa, kết nối các services, đồngthời chạy nhiều container trên ứng dụng Nó cũng có thể giúp tự động tải các image chưa

có trong file cau hình “doeker-compose.yml”

2.2.8 Framework Scrapy

Scrapy là một web framework rất mạnh mẽ của Python trong việc trích xuất dirliệu Scrapy có kiến trúc sự kiện, cho phép thực hiện các công việc như dọn đẹp, tạo, lưu

trữ, thu thập dữ liệu từ các trang web.

Một số tính năng của scrapy như:

- (C6 thể làm việc với các đoạn code HTML “xấu”

- Cộng đồng lớn

12

Trang 26

- _ Mã nguồn ồn định.

- _ Tốc độ xử lí nhanh theo dạng bat đồng bộ

- _ Có thé lưu dữ liệu theo nhiều định dag như JSON, CSV, XML

- Có thé trích xuất dir liệu bằng cách sử dụng các biéu thức XPath hay CSS

2.2.9 Rapidapi

Thị trường bên thứ ba cung cấp hàng ngàn API cho người dùng sử dụng giốngnhư “Google API”, không trả phí nhưng bị giới hạn số lượng request người của trongmột ngày Khi đăng ký tài khoản “Rapidapi” sẽ cung cấp một key cho người dùng Một

số API nhóm sẽ sử dụng như: TrueWay Directions API, TrueWay MaTrix API

2.2.10 Mô hình triển khai hệ thống MVC (Model - View - Controller)

Các thành phần trong MVC:

- Model: được giao nhiệm vụ cung cấp dir liệu cho cơ sở dir liệu và lưu dữ liệuvào các kho chứa đữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model Dữ liệu vào

từ người dùng sẽ thông qua View đến Controller và được kiểm tra ở Model trước khi lưu

vào cơ sở dữ liệu Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của Model

- View: hién thị các thông tin cho người dùng của ứng dụng và được giao nhiệm

vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi các yêu cầu đến controller, sau

đó là nhận lại các phản hồi từ controller và hiền thị kết quả cho người dùng

- Controller: đảm nhiệm việc cập nhật bộ phận hiền thị (View) khi cần thiết Bộđiều khién này nhận dữ liệu nhập từ người dùng, truy xuất các thông tin cần thiết từ môhình trong (Model), và cập nhật thích hợp phần hiển thị (View) Giao điện với người sửdụng phần mềm được thiết lập nhờ sự tương tác qua lại giữa View và Controller: hai bộphận này chính là phan trình bày bên ngoài của đối tượng biểu diễn bên trong

Ưu điêm và nhược điêm của mô hình MVC:

- Ưuđiểm:

13

Trang 27

e Trình tự xử lý rất rõ ràng.

e© Mô hình MVC quy hoạch các class/function vào các thành phần riêng

biệt Model View Controller , việc đó làm cho qua trình phat triển

-quản lý - vận hành - bảo trì web diễn ra thuận lợi hơn, tạo ra được các chức

năng chuyên biệt hoá đồng thời kiêm soát được luồng xử lý

e Tạo mô hình chuẩn cho dự án, khi người có chuyên môn ngoài dự án tiếp

cận với dự án dễ dàng hơn.

e_ Mô hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản, va dé dang

triển khai với các dự án nhỏ

- Nhược điểm:

Đối với dự án nhỏ việc áp dụng mô hình MC gây công kénh, tốn thời gian

trong quá trình phát triển Tốn thời gian trung chuyên dữ liệu của cácthành phần

2.3 Kết chương

Qua quá trình tìm hiểu cũng như khảo sát thực tế, nhóm tác giả phần nào đã hiểuđược những kiến thức cơ bản, nhóm đã lên được ý tưởng, những chức năng cần thiết choứng dụng của mình Đồng thời áp dụng những công nghệ, ngôn ngữ lập trình phù hợp,cũng như các công cụ hỗ trợ cho quá trình xây dựng hệ thông

Trong chương tiếp theo, Nhóm tác giả sẽ trình bày về mô hình kiến trúc, cáchthức hoạt động của hệ thống

14

Trang 28

CHUONG3 PHAN TÍCH VÀ THIET KE HE THONG

1OS Android Browser - Web Application

Mô hình 3.1 Triển khai hệ thống sử dụng mô hình MVC

Kiến trúc hệ thống sử dung mô hình MVC bao gồm các thành phan:

- Docker Hub: Kho lưu trữ “docker images” cung cấp images cho ngươi sử dung

- Server: Nơi tiếp nhận các request từ phía Client thong qua API đã được xây dung,

tiến hành xử lý và trả kết quả về cho Client

- API: Giao thức kết nối giữa Client và Server, phương thức trao đôi dữ liệu giữa

các hệ thống

15

Trang 29

Client (iOS, Android, Browser - Web Application): Tương tác trực tiếp với ứng

dụng gửi request và nhận kết quả từ Server thông qua API

MongoDB: Cơ sở đữ liệu dùng dé lưu trữ các dữ liệu của hệ thống.

Mô tả hoạt động các module trong hệ thốngDocker Hub: Sau khi build các images cần sử dụng tiến hành dùng lệnh push dé

đưa các images lên Docker Hub.

Server:

e Trên Server tiên hành “pull docker image” muôn sử dung từ “Docker

Hub”.

Tạo một file “docker-compose.yml” nhằm mục đích cấu hình những

“docker image” muốn chạy Trong file “docker-compose.yml” cấu hình

các trường cơ bản như: container-name (tên container), image (docker

image), port (công của docker image), links (cấu hình kết nối với các imagevới nhau ma bạn muốn)

Sau khi hoàn tất quá trình cấu hình file “docker-compose.yml”, dùng lệnh

“docker-compose up -d” dé chạy file “docker-compose.yml” (với “-đ” là

chế độ tách biệt, trong chế độ này các conatiner sẽ chạy riêng biệt với hệthống có thể tuỳ ý gõ các lệnh khác đề kiểm tra) Gõ lệnh “docker ps” kiểmtra các container đang chạy, nếu đúng với các image đã cấu hình trong file

“docker-compose.yml” quá trình triển khai Server hoàn tat (Chú ý khi

chạy file “docker-compose.yml” những image nao chưa có trên Server nó

sẽ tiền hành lên “Docker Hub” pull về.)

Client: Phía người dùng (Client - iOS/Android/Browser-Web Application gửi

request đến Server, thông qua API với phương thức tương ứng (GET, POST,

PUT, DELETE ) bộ phan Controller sẽ có nhiệm vụ chấp nhận yêu cầu và xử

lý yêu cầu đó Nếu cần thiết nó sẽ gọi đến phần Model (bộ phận tương tác và làm

việc với Database) dự liệu trả về được phía Client tiếp nhận

16

Trang 30

- API: Có nhiệm vụ nhận request từ người dùng gửi lên Server và tiếp nhận toàn

bộ kết quả từ Server trả về cho người dùng

MongoDB: Tương tác trực tiếp với Server dùng dé lưu trữ dữ liệu của hệ thống

người dùng Khi có sự tương tác của người dùng với ứng dụng những dữ liệu cân

thiết như: thông tin tài khoản người dùng, hoạt động người dùng trong hệ thống

sẽ được lưu lại.

3.2 Mô hình thiết kế cơ sở dữ liệu

3.2.1 Mô hình quan hệ các bang trong cơ sở dữ liệu

[Ho wesouser_activity J@veootransaeionuser Ïj© wesotranselion {Jo weootipuser Jo weoop

® id : int(10) @ id: int(10) ° 71 @ id : int(10) @ id : int(10) @ id:int(10)

# user_id : int(10) PN # transaction_id : int(10)

# transaction_id : int(10) cael user_id : int(10)

# trip_id : int(10) > 4 trip_id : int(10)

© list_user : varchar(255) # amount_user : double

» type : varchar(255) # type : int(10)

¡ added_ date : datetime # total : double redued_date : datetime ® create_date : datetime

© create_date : datetime ø update_date : datetime

© update_date : datetime @ delete_date : datetime

9 id: int(10) a @ id: int(10) |

# type : int(1) for t— \ vationUs h GZ 5 name : varchar(255)

© message : varchar(255) | 0 id : int(10) # email : varchar(255) | @ id : int(10)

location : longtext _@ password : varchar(255) I

# latitude : float 5 location : longtext

# longitude : float name : varchar(255)

# isDelete : tinyint(1) # code : int(10)

© create_date : datetime © create_date : datetime update_date : datetime © update_date : datetime

ím delete_date : datetime ¡ delete_date : datetime

avatar : varchar(255)

_@ secretToken : varchar(255)

# active : tinyint(1) pinCode : varchar(255)

0 desc : varchar(255)

1 ạ code : int(10)

# latitude : float

# longitude : float ) noAccent : varchar(255)

description : varchar(255) ) images : longtext

ñ create_date : datetime

ø update_date : datetime

© delete_date : datetime

Trang 31

Mô hình co sở dữ liệu trên gôm có 14 bang: user, trip, trIp user, transaction,

transaction user, user_activity, locationUser, planUser, placeLocation, planLocation,

detailLocation, mainLocation, imageTrip, chat Biểu thi những dữ liệu trong các bảng

có mối quan hệ với nhau, đồng thời thể hiện chi tiết những chức năng người dùng tươngtác với hệ thống, ví dụ người dùng tạo trip thêm thành viên vào trip thì các bảng user,

trip, trip_user sẽ có môi quan hệ với nhau.

3.2.2 Mô tả các bảng trong cơ sở dữ liệu

3.2.2.1 Bảng quan lý thông tin và hoạt động người dùng

Bảng 3.1 Bảng quản lý thông tin và hoạt động người dùng.

user

Luu trữ thong tin người dùng của ứng dụng, ví dụ như: tên người

dùng, tài khoản email, mật khẩu.

user_activity

Luu trữ hoạt động cua người dùng trong ứng dụng như thêm, xóa, sửa

3.2.2.2 Bảng quan lý thông tin địa điểm và lịch trình người dùng

Bảng 3.2 quản lý thông tin địa điểm và lịch trình người dùng

Trang 32

những địa điểm du lịch nhỏ: Hồ Xuân Hương, hồ Tuyển Lâm,

đên Trúc Lâm

Lưu trữ gợi ý lịch trình của những địa điểm lớn trong nước,

những lịch trình này được tạo ra dựa trên những địa điểm nhỏ có

planLocation

trong địa điêm lớn Dựa trên khoảng cách của những địa điêm,

những lịch trình tối ưu về di chuyển sẽ được tạo ra

Lưu trữ lịch trình do người dùng tạo ra dựa trên lịch trình mẫu

planUser

hoặc lịch trình hoàn toàn mới theo ý người dùng.

3.2.2.3 Bang quản lý thông tin nhóm du lịch của người dùng

Bảng 3.3 quản lý thông tin nhóm du lịch của người dùng

Bảng cơ sở sữ liệu Chức năng

Lưu trữ các thông tin nhóm du lịch Ví dụ như tên nhóm, ngày

trip ; ñ , ị

bat đâu, ngày ket thúc, sô thành viên tham gia.

trip_user Luu trữ thong tin người dùng tham gia vào các nhóm du lich.

Luu trữ thông tin giao dịch của người dùng Ví dụ như tên giao

transaction

dịch, số tiền giao dịch

Lưu trữ thông tin người dùng tham gia giao dich Vi dụ như số

Transaction_user tién thanh vién tra giao dich, s6 tién thanh vién phai chiu cho

giao dich

Lưu trữ vi trí các thành viên trong nhóm du lich, cho phép chia

location_user ¬ ¬

sẻ vi trí của nhau trên ban đô.

placeLocation Lưu trữ thông tin địa điểm mà nhóm đã di qua

19

Trang 33

Lưu trữ hình ảnh của chuyến đi, được sắp xếp theo thời gian cuthể theo quá trình lưu lại của người dùng

chat

Lưu trữ dữ liệu hoạt động của các thành viên trong nhóm thông

qua nhăn tin văn bản, ghi âm giọng nói, chia sẻ hình ảnh

3.2.2.4 Bảng mô tả model cơ sở dữ liệu

Mô tả các bang dữ liệu: Mỗi bảng trong cơ sở dữ liệu thé hiện chi tiết dữ liệu mà người

dùng tương tác với hệ thống bao gồm tên trường thuộc tính, kiểu dữ liệu phù hợp tương

ứng với thuộc tính.

Bảng 3.4 Bảng mô tả model user.

Thuộc tính Kiểu dữ liệu Mô tả

1d integer(10) Mã người dùng

name varchar(255) Tên người dùng

email varchar(255) Email người dùng

password varchar(255) Mật khâu

avatar varchar(255) Ảnh đại diện người dùng

secretToken varchar(255) Mã xác nhận người dùng

active tinyint (1) Trang thai

pinCode varchar(255) Mã xác nhận email

totalBalanceTrip double Tổng tiên chuyến đi người

dùng create-date datetime Ngày tạo

20

Trang 34

update_ date datetime Ngày sửa

Bảng 3.5 Bảng mô tả model trip.

Thuộc tính Kiểu dữ liệu Mô tả

id integer(10) Mã chuyến đi

name varchar(255) Tên chuyến đi

author integer(10) Nguoi tao

oweUser double Số tiền người dùng trong

trip

avatarGroup varchar(255) Anh dai dién chuyén di

membersTrip integer(10) Tổng số thành viên của

chuyến đi

begin date datetime Ngay bat dau

end_ date datetime Ngày kết thúc

1sDelete tinyint(1) Trạng thai tồn tai

create_date datetime Ngày tao

update date datetime Ngày sửa

delete_date datetime Ngày xóa

21

Bảng 3.6 Bang mô ta model trip_user.

Trang 35

Thuộc tính Kiểu dữ liệu Mô tả

1d integer(10) Mã chuyến đi người dùng

user_id integer(10) Mã người dùng

trip_id integer(10) Ma chuyén di

isCustom tinyint(1) Quyên chỉnh sửa

1sDelete tinyint(1) Trạng thái tồn tai

create_date datetime Ngày tao

update date datetime Ngay stra

delete_date datetime Ngày xóa

Bảng 3.7 Bảng mô tả model transaction.

Thuộc tính Kiểu dữ liệu Mô tả

id integer(10) Mã giao dịch

name varchar(255) Tên giao dịch

author integer(10) Người tao

avatar varchar(255) Anh dai dién giao dich

amount double Tién giao dich

imageURL longtext Hinh anh diad iém giao

dich

trip_id integer(10) Mã chuyên đi

22

Trang 36

list_user longtext Danh sách thành viên tham

gia giao dịch

isDelete tinyint(1) Trạng thái tồn tai

create date datetime Ngày tạo

update_ date datetime Ngày sửa

delete date datetime Ngày xóa

Bang 3.8 Bang mô tả model transaction_ user.

1d integer(10) Mã giao dịch người dung

transaction_id integer(10) Mã giao dich

user-id integer(10) Mã người dùng

trip 1d integer(10) Mã chuyên đi

amount_user double Tiền giao dich người dùng

type integer(10) Loại giao dich người dùng

total double Số dư giao dịch ngời dùng

create date datetime Ngày tao

update date datetime Ngày sửa

delete date datetime Ngày xóa

23

Trang 37

Bảng 3.9 Bang mô ta model user_activity.

Thuộc tính Kiểu dữ liệu Mô tả

1d integer(10) Mã hoạt động người dùng

user 1d integer(10) Mã người dùng

trip 1d integer(10) Mã chuyên đi

transction_ 1d integer(10) Ma giao dich

list_user longtext Mang thanh vién (thém

hoặc xóa bớt thành viên

trong chuyến đi)

type varchar(255) Loại hoạt động

create_date datetime Ngay tao

added_date datetime Ngày thêm thành viên

reduce_ date datetime Ngày giảm thành viên

update_ dafe datetime Ngày sửa

detele_date datetime Ngày xóa

Bang 3.10 Bảng mô tả model planUser.

Thuộc tính Kiểu dữ liệu Mô tả

1d integer(10) Mã kế hoạch người dùng

đã tạo

user 1d integer(10) Mã người dung

trip 1d integer(10) Mã chuyến đi

24

Trang 38

location longtext Tọa độ các địa điểm hành

trình chuyến điname varchar(255) Tên plan của chuyến đi

code integer(10) Mã code chuyến đi

create date datetime Ngày tao

update date datetime Ngày sửa

detele date datetime Ngày xóa

Bảng 3.11 Bảng mô tả model planLocation.

Thuộc tính Kiểu dữ liệu Mô tả

1d integer(10) Mã toa độ kế hoạch

url varchar(255) Hinh anh dia diém

title varchar(255) Tiéu dé dia diém

desc varchar(255) Mô ta địa điểm

code integer(10) Mã code chuyến đi

latitude float Vĩ độ địa điểm

longitude float Kinh độ địa điểm

noAccent varchar(255) Tên địa điểm không dau

create date datetime Ngày tao

update date datetime Ngày sửa

detele_date datetime Ngày xóa

25

Trang 39

Bảng 3.12 Bảng mô tả model placeLocation.

Thuộc tính Kiểu dữ liệu Mô tả

id integer(10) Mã tọa độ kế hoạch

trip id integer(10) Mã chuyên đi

author integer(10) Thanh vién ghi lai thong

tin

imageURL longtext Hinh anh dia diém

nameTransaction varchar(255) Tén giao dich

amountTransaction double Tién giao dich

address varchar(255) Dia chi dia diém

latitude float Vi độ địa điểm

longitude float Kinh độ địa điểm

create date datetime Ngày tao

update date datetime Ngày sửa

detele_ date datetime Ngày xóa

Bảng 3.13 Bảng mô tả model mainLocation.

Thuộc tính Kiểu dữ liệu Mô tả

id integer(10) Mã địa dién chính

url varchar(255) Hinh anh dia diém

title varchar(255) Tiéu dé dia diém

26

Trang 40

desc varchar(255) Mô ta dia điểm

code integer(10) Mã code chuyến đi

create_date datetime Ngày tao

update date datetime Ngày sửa

detele_date datetime Ngày xóa

Bảng 3.14 Bang mô ta model detailLocation.

Thuộc tinh Kiểu dữ liệu Mô tả

id integer(10) Mã dia điểm chỉ tiết

url varchar(255) Hinh anh dia diém

title varchar(255) Tiéu dé dia diém

desc varchar(255) Mô tả dia điểm

code integer(10) Mã code chuyến đi

latitude double Vĩ độ địa điểm

longitude double Kinh độ địa điểm

noAccent varchar(255) Tên địa điểm không dấu

description varchar(255) Mô tả chỉ tiết dia điểm

images longtext Hinh anh chi tiét dia diém

create date datetime Ngày tao

update date datetime Ngày sửa

detele date datetime Ngày xóa

27

Ngày đăng: 02/10/2024, 04:25

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN