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

Đồ án ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

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 (9.97 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

BÁO CÁO ĐỒ ÁN 1 - SE121.L21
ĐỀ TÀI SỐ 50

ỨNG DỤNG THEO DÕI THÓI QUEN NGƯỜI DÙNG
KẾT HỢP HOẠT ĐỘNG CHẠY BỘ ĐA NỀN TẢNG
Cross-platform habit tracking integrated with running tracking application

Giảng viên hướng dẫn: ThS. Nguyễn Thị Thanh Trúc
Nhóm sinh viên thực hiện đề tài:
1.

Lê Hồng Minh Sơn

18520350

2.

Phạm Liên Sanh

18520146

TP. Hồ Chí Minh, tháng 06 năm 2021


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

NHẬN XÉT CỦA GIẢNG VIÊN


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


1


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

LỜI CẢM ƠN
Nhóm chúng em trân trọng gửi lời cảm ơn đến cô Nguyễn Thị Thanh Trúc đã tạo
điều kiện cho chúng em có cơ hội được thực hiện đồ án.
Với những kiến thức cơ gợi ý và phân tích trong q trình làm đồ án, nhóm đã vận
dụng được rất nhiều trong việc hồn thành đề tài.
Trong vịng 15 tuần, nhờ sự chỉ dẫn nhiệt tình của cơ, chúng em đã tiếp thu được
những kiến thức quan trọng cùng những góp ý chân thành để có thể hồn thành báo cáo và
làm được một chương trình hồn chỉnh.
Cũng xin cảm ơn thầy cô và bạn bè trong khoa Công nghệ phần mềm đã nhiệt tình hỗ
trợ, tạo điều kiện cho nhóm em làm bài báo cáo này.
Mặc dù đã cố gắng hoàn thành báo cáo với tất cả nỗ lực song kết quả của nhóm chúng
em chắc chắn khơng tránh khỏi những thiếu sót, chúng em rất mong nhận được sự thơng cảm
và góp ý chân thành từ các thầy cơ. Nhóm em xin chân thành cảm ơn ạ.
Thành phố Hồ Chí Minh, ngày 15 tháng 06 năm 2021
Đồ án 1 - SE121.L21
Nhóm gồm Lê Hồng Minh Sơn, Phạm Liên Sanh

2


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

MỤC LỤC


NHẬN XÉT CỦA GIẢNG VIÊN

1

LỜI CẢM ƠN

2

MỤC LỤC

3

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

6

CHƯƠNG 1 - TỔNG QUAN
1.1. Giới thiệu đề tài
1.2. Mục tiêu và phạm vi đề tài
1.3. Khảo sát và đánh giá các ứng dụng hiện có
1.3.1. Nhóm ứng dụng theo dõi thói quen (Habit tracker)
1.3.1.1. Fabulous
1.2.1.2. Habitica
1.2.1.3. Habitify
1.2.1.4. Productive
1.2.1.5. Coach.me
1.3.2. Nhóm ứng dụng đo lường chạy bộ (Running tracker)
1.3.2.1. Strava
1.3.2.2 Google Fit
1.3.2.3 Runkeeper

1.4. Các chức năng chính

7
7
8
9
9
9
10
12
13
14
15
15
16
17
18

CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT
2.1. Về mặt kỹ thuật
2.1.1. React Native (Cơng nghệ phía Frontend)
2.1.2. NodeJS (Cơng nghệ phía Backend)
2.1.3. MongoDB (Cơng nghệ phía Database)
2.1.4. Thư viện React-native-maps và expo location (xử lý đường đi, map)
2.1.5. Thư viện expo-pedometer (xử lý đếm bước chạy)
2.1.6. Recommendation system (hệ thống khuyến nghị)
2.1.7. FCM Notifications
2.2. Về mặt cơ sở khoa học phía tính năng
2.2.1. Phân tích hành vi thực hiện thói quen
2.2.2. Phân tích cơ sở hoạt động chạy bộ


19
19
19
21
23
24
26
27
29
30
30
32

CHƯƠNG 3 - PHÂN TÍCH HỆ THỐNG
3.1 Sơ đồ Use case tổng quát
3.2. Danh sách Use case:

35
35
36
3


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
3.3. Đặc tả Use Case
3.3.1. Module Auth
3.3.1.1. Use case UC01 - Sign in:
3.3.1.2. Use case UC02 - Sign up:
3.3.1.3. Use case UC03 - Forget password:

3.3.2. Module Habit tracker
3.3.2.1. Use case UC04 - Add Habit:
3.3.2.2. Use case UC05 - Edit habit:
3.3.2.3. Use case UC06 - Delete habit:
3.3.2.4. Use case UC07 - Get habits by days
3.3.2.5. Use case UC08 - Get recommended habits by themes
3.3.2.6. Use case UC09 - Schedule
3.3.2.7. Use case UC10 - Get notifications for habits
3.3.2.8. Use case UC11 - Check progress for habits
3.3.2.9. Use case UC12 - Filter habit by status
3.3.2.10. Use case UC13 - Create event
3.3.3. Module Running tracker
3.3.3.1. Use case UC14 - Get Map
3.3.3.2. Use case UC15 - Setup running plan
3.3.3.3. Use case UC16 - Connect Habit
3.3.3.4. Use case UC17 - Set Timer & Distance
3.3.3.5. Use case UC18 - Run
3.3.3.6. Use case UC19 - Get run path
3.3.3.7. Use case UC20 - Get running results
3.3.2.8. Use case UC21 - Stop run
3.3.4. Module Community
3.3.4.1. Use case UC22 - Share items
3.3.4.2. Use case UC23 - Reach other’s profile
3.3.4.4. Use case UC24 - Get events
3.3.4.5. Use case UC25 - See event details
3.3.4.6. Use case UC26 - Join events
3.3.4.7. Use case UC27 - See ranking
3.3.5. Module Statistics and Profile
3.3.5.1. Use case UC28 - Get statistic my personal Habits
3.3.5.2. Use case UC29 - Get statistics compared with others for events.

3.3.5.3. Use case UC30 - Get overall history
3.3.5.4. Use case UC31 - Get statistic for Pedometer
3.3.5.5. Use case UC32 - Get statistic for Running
3.3.5.6. Use case UC33 - Update profile
3.4. Mơ hình hóa u cầu:
3.4.1. Module Auth

39
39
39
40
41
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
77
4


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
3.4.2. Module Habit tracker
3.4.3. Module Running tracker
3.4.4. Module Community
3.4.5. Module Statistics and Profile

78
79
80

81

CHƯƠNG 4 – THIẾT KẾ VÀ PHÁT TRIỂN HỆ THỐNG
4.1. Kiến trúc hệ thống:
4.2. Thiết kế dữ liệu:
4.2.1. Sơ đồ CSDL tổng quát:
4.2.2. Danh sách các bảng dữ liệu trong sơ đồ
4.3. Sơ đồ lớp
4.4. Thiết kế giao diện
4.4.1. Sơ đồ liên kết các màn hình
4.4.2 Danh sách các màn hình
4.4.3. Mơ tả các màn hình
4.4.3.1 Nhóm màn hình Habit tracker
4.4.3.2 Nhóm màn hình Running tracker
4.4.3.3 Nhóm màn hình Community
4.4.3.4 Nhóm màn hình Statistics
4.4.3.5 Nhóm màn hình Khác:

82
82
84
84
85
86
87
87
88
89
89
90

91
92
93

CHƯƠNG 5 - CÀI ĐẶT VÀ THỬ NGHIỆM
5.1. Môi trường cài đặt:
5.2 Danh sách các lớp, đối tượng chính
5.2.1 Các lớp điều hướng
5.2.2. Các nhóm thư viện khác
5.2 Kiểm thử:
5.3. Các phương tiện, công cụ hỗ trợ

94
94
95
95
95
97
98

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
6.1. Các kết quả đạt được
6.2. Những ưu điểm và hạn chế
6.2.1. Ưu điểm
6.2.2. Hạn chế
6.3 Hướng phát triển

99
99
100

100
101
102

TÀI LIỆU THAM KHẢO

103

BẢNG PHÂN CÔNG CÔNG VIỆC
106
1. Đánh giá tiến độ thực hiện đề tài (bảng tóm tắt q trình các giai đoạn thực hiện cột thời gian và
hoạt động)
106
2. Bảng phân cơng nhiệm vụ chính
108

5


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

[1] CSDL: cơ sở dữ liệu
[2] MERN: tập hợp các công nghệ MongoDB, Express, ReactJS, NodeJS
[3] SĐ: sơ đồ
[4] UI (User Interface): giao diện người dùng
[5] UX (User Experience): trải nghiệm người dùng

6



Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
CHƯƠNG 1 - TỔNG QUAN
1.1. Giới thiệu đề tài
Với nhịp độ phát triển nhanh chóng của xã hội ngày nay thì con người càng cần phải
khơng ngừng phát triển chính bản thân ở nhiều khía cạnh trong cuộc sống, rèn luyện những
thói quen tích cực và thay đổi những thói quen tiêu cực, nhất là với sự hỗ trợ của công nghệ.
Nhiều ứng dụng ra đời giúp chúng ta quản lý, theo dõi được những điều này. Tuy nhiên, đây
là một lĩnh vực mới có nhiều điểm có thể khai thác và phát triển thêm nên nhóm em quyết
định chọn đối tượng để nghiên cứu thực hiện là loại hình ứng dụng xây dựng, theo dõi thói
quen, kết hợp hoạt động chạy bộ - một thói quen được đánh giá là mang lại nhiều lợi ích cho
sức khỏe, cụ thể mang tên SuperSelf, được sử dụng trên nhiều nền tảng di động khác nhau.
Sản phẩm kế thừa những điểm mạnh của các ứng dụng đi trước, đồng thời kết hợp thêm một
số tính năng phù hợp nhằm hướng tới việc phát triển tối đa bản thân của người dùng.
Không chỉ là một ứng dụng quản lý thói quen thơng thường, SuperSelf đem tới cho
người dùng cảm giác thú vị, mới mẻ khi tham gia vào một thế giới riêng và thực hiện các thử
thách, tích lũy điểm số, tham gia sự kiện để xây dựng trang cá nhân của mình. Ứng dụng có
hệ thống phân loại các chủ đề liên quan đến nhiều thói quen để phát triển bản thân (sự kết
nối con người, mối quan hệ, tạo động lực, sức khỏe, quản lý chi tiêu, hoạch định mục tiêu,
kiến thức, sức mạnh nội tâm…), chia sẻ các mục tiêu đang theo đuổi và thành tích đã đạt
được, đồng thời người dùng có thể theo dõi và cập nhật tiến độ một cách dễ dàng qua các hỗ
trợ tiện ích. Ngồi ra, ứng dụng sẽ gợi ý cho người dùng những thói quen phù hợp dựa theo
nhu cầu, xu hướng hiện tại cũng như q trình rèn luyện thói quen của người dùng.
Đối với hoạt động chạy bộ/đi bộ, ứng dụng có thể đo lường số bước đi mỗi ngày của
cá nhân người dùng, đồng thời cho phép người dùng kích hoạt việc đo khoảng cách và số
bước chạy trong một khoảng thời gian nhất định, đưa ra các chỉ số thu thập được, so sánh
quá trình luyện tập. Tất cả các số liệu đều thống kê và biểu diễn trực quan dưới dạng các
biểu đồ, lịch trình sinh động. Có nhiều hướng phát triển lâu dài như tổ chức các sự kiện để
người dùng tham gia vào nhằm rèn luyện lối sống tích cực trong cộng đồng.


7


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
1.2. Mục tiêu và phạm vi đề tài
● Mục đích cơ bản là hiện thực hóa những kiến thức đã học trong q trình triển khai đồ
án. Đó là xây dựng được một chương trình hồn thiện cả về mặt UI và UX và xử lí dữ
liệu, phục vụ cho phạm vi đối tượng người dùng rộng rãi (người muốn theo dõi thói
quen của bản thân, người thích chạy bộ thể dục).
● Ứng dụng những kiến thức lý thuyết và thực hành vào quy trình phát triển một phần
mềm đa nền tảng, hoàn thiện phần mềm một cách tốt nhất
● Ý nghĩa thực tiễn là tạo ra một sản phẩm có thể giải quyết vấn đề trong cuộc sống phục
vụ cho nhu cầu thiết yếu mỗi cá nhân trong nhóm cũng như cộng đồng, tạo ra một phần
mềm dễ sử dụng và có kết quả tốt để xây dựng thói quen tích cực, hạn chế thói quen tiêu
cực và phát triển bản thân, nâng cao thể chất thông qua hoạt động chạy bộ.
● Đối tượng nghiên cứu:
-

Quy trình phát triển phần mềm di động mang tính thương mại

-

Cơng nghệ:
+ React Native (cross-platform)
+ NodeJS
+ MongoDB
+ Các thư viện xử lý bản đồ
+ Các thư viện xử lý đo bước chân
+ Hệ thống khuyến nghị cơ bản

+ Các thư viện xử lí tính năng thông báo

-

Cơ sở khoa học:
+ Hành vi thực hiện thói quen
+ Hoạt động chạy bộ

● Kết quả dự tính đạt được là hoàn thành báo cáo gồm những cơ sở lý thuyết tìm hiểu
được, q trình phân tích đặc tả, thiết kế hệ thống, cài đặt và kiểm thử, qua đó xây dựng
được một ứng dụng hồn chỉnh đáp ứng tất cả những mục tiêu trên.
8


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
1.3. Khảo sát và đánh giá các ứng dụng hiện có
1.3.1. Nhóm ứng dụng theo dõi thói quen (Habit tracker)
1.3.1.1. Fabulous

Fabulous là một trong những ứng dụng được nghiên cứu bài bản và khoa học tại
Phịng Thí Nghiệm Hành Vi ở trường Đại Học Duke, được dẫn dắt bởi tiến sĩ tâm lý học và
kinh tế học hành vi Dan Ariely (tác giả của các cuốn sách kinh điển như Phi Lý Trí hay Lẽ
Phải Của Phi Lý Trí) (nguồn theo tìm hiểu)
Fabulous vừa giải thích về lợi ích của thói quen, vừa hướng dẫn q trình hình thành
thói quen hợp lý. Fabulous được thiết kế như một người bạn đồng hành trên con đường tạo
lập thói quen. Khi mới vào app, Fabulous sẽ hỏi một bộ những câu hỏi liên quan đến mục
tiêu và các vấn đề trong cuộc sống, sau đó sẽ thiết kế những thói quen để giúp chúng ta đạt
được mục đích đó.

9



Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
● Một số điểm nổi bật:
+ Chia rõ lộ trình rõ ràng. Mỗi lộ trình sẽ có một tác dụng nhất định đối với mục
tiêu chúng ta đề ra khi vào app. Trong mỗi lộ trình, Fabulous sẽ đưa ra các thói
quen chúng ta nên tạo và giải thích cụ thể vì sao chúng ta nên tạo chúng.
+ Những thói quen gợi ý lúc đầu rất dễ thực hiện (uống nước 3 lần 1 ngày,...),
nhưng nó ln dựa trên nghiên cứu khoa học và sẽ khó dần theo thời gian →
khơng bị quá tải mục tiêu
+ Thiết kế dưới dạng tương tác và trò chuyện. Mỗi ngày, Fabulous sẽ gửi cho
chúng ta những bức thư để chia sẻ về lợi ích của những thói quen đang làm.
Mỗi khi hồn thành một thói quen, Fabulous cũng sẽ chúc mừng và gửi những
lời động viên.
+ Font chữ, màu sắc, hình vẽ, chuyển động, và âm thanh đều được trau chuốt tỉ
mỉ và thiết kế rất tinh tế, nhẹ nhàng, giúp thư thái mỗi khi sử dụng.
+ Fabulous For Work hướng đến đối tượng người đi làm ở các doanh nghiệp
● Một số hạn chế:
+ Có thể hơi rườm rà và màu mè
+ Tính phí với nhiều tính năng

1.2.1.2. Habitica

10


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

Habitica là một trong những ứng dụng theo dõi thói quen đầu tiên với concept “game
hố” thói quen. Mỗi khi hồn thành một thói quen, sẽ tích lũy kinh nghiệm và mana để mở

khóa vật phẩm hoặc nhân vật mới. Với cộng đồng người chơi đông đảo, Habitica đứng cao
trên các bảng xếp hạng của App Store và Google Play Store, thậm chí Habitica cịn có cả
blog để các người chơi chia sẻ kinh nghiệm với nhau.
● Một số điểm nổi bật:
+ Hệ thống điểm tích điểm và phần thưởng giải quyết xuất sắc phần Reward, một
mắt xích quan trọng trong vịng lặp thói quen
● Một số hạn chế:
+ Dễ làm mình tốn thời gian vào việc chơi game thay vì tạo thói quen
+ Thiết kế game-based khiến mất rất lâu để tạo được một thói quen mới trong
ứng dụng và hiểu hết các tính năng của nó trong một lần mở app
+ Hệ thống game phức tạp đến mức nhà phát triển phải lập một trang Wiki để
hướng dẫn cách chơi

11


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
1.2.1.3. Habitify

Habitify khơng có thiết kế cầu kì, cũng khơng có quá nhiều tính năng và màu sắc như
Fabulous. Nhưng chính triết lý thiết kế tối giản này đã giúp Habitify được rất nhiều người ưa
thích chọn lựa và sử dụng.
Về mặt tính năng, Habitify sẽ liệt kê danh sách thói quen muốn duy trì dưới dạng một
checklist (giống concept của Todo list), để có thể vào và hồn thành (check in) mỗi ngày.
Nếu mình chưa thể quyết định được thói quen muốn tạo là gì, Habitify sẽ gợi ý rất nhiều thói
quen theo các chủ đề khác nhau
Chỉ trong vịng 1 năm từ khi mới phát triển (2016), Habitify đã được Apple để mắt tới
và được giới thiệu trên App Store ở chuyên mục App of The Day. Trong vòng 2 năm tiếp
theo, Habitify đã được Apple nhiều lần liên hệ để lựa chọn làm ứng dụng cài đặt mặc định
trên các mẫu điện thoại mới

● Một số điểm nổi bật:
+ Đặt nhiều mục tiêu khác nhau dựa vào loại thói quen chúng ta lựa chọn
+ Hỗ trợ kết nối với Apple Health. Khi thực hiện xong một thói quen, và hoàn
thành (bấm nút complete) ở Habitify, dữ liệu sẽ được tự động cập nhật về
Apple Health
12


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
+ Một số thói quen như chạy bộ, thiền, có thể sử dụng Apple Watch để đo đạc tự
động
+ Lưu lại dữ liệu thói quen và biểu diễn dưới dạng các biểu đồ đường, cột, biểu
đồ nhiệt để có thể theo dõi sự tiến bộ của mình
+ Sự tối giản nhất có thể để giảm thiểu sự mất tập trung của người dùng
● Một số hạn chế:
+ Liệt kê dữ liệu dưới dạng đếm đơn thuần
+ Những câu hỏi phức tạp hơn như: Việc mình thực hiện một thói quen có ảnh
hưởng đến thói quen cịn lại như thế nào (co-relation) hay lĩnh vực nào trong
cuộc sống của mình đang tốt lên, lĩnh vực nào đang kém đi, nếu kém đi thì do
thói quen nào gây ra,... chưa được trả lời

1.2.1.4. Productive

Productive có cơ chế hoạt động gần giống Habitify, từ cách tạo thói quen, các nhắc nhở,
phần biểu diễn số liệu…, chỉ khác là họ đầu tư rất nhiều vào quảng cáo để chiếm thị phần
(user acquisition).

13



Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
● Một số điểm nổi bật:
+ Hệ thống Challenges tổng hợp một bộ những thói quen có liên quan đến một
chủ đề nào đó. Nếu là người mới bắt đầu tạo thói quen thì các template thói
quen được tạo sẵn này sẽ là một khởi điểm tốt
+ Màu sắc bắt mắt và các hình vẽ sinh động
● Một số hạn chế:
+ Chưa có trên macOS và nền tảng Web

1.2.1.5. Coach.me

Coach.me về bản chất là một ứng dụng theo dõi thói quen, nhưng cho phép người dùng thuê
một người hướng dẫn và thi thoảng chia sẻ tiến độ với họ và nhận tư vấn.
● Một số điểm nổi bật:
+ Tính năng cộng đồng của ứng dụng
+ Khi tham gia vào nhóm tạo thói quen đó thì sẽ nhìn thấy thành tích của mọi
người, chúc mừng họ bằng like và comment, và đặt các câu hỏi liên quan đến
thói quen
● Một số hạn chế:
+ Tính phí hơi cao
14


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
1.3.2. Nhóm ứng dụng đo lường chạy bộ (Running tracker)
1.3.2.1. Strava

Đây là một trong những ứng dụng phổ biến nhất trong số các app chạy bộ. Phần mềm chạy
bộ này như một mạng xã hội facebook thu nhỏ của những người yêu chạy bộ nói riêng và thể
thao nói chung, cho phép đăng, sửa workout kèm ảnh ghi lại cảnh dọc đường chạy mà ta

chụp. Strava đều có trên iOS và Android với 2 phiên bản miễn phí và thu phí (có nhiều tính
năng cao cấp, chun sâu hơn, theo dõi thời gian thực, phân tích kết quả chạy bộ…).
● Những điểm nổi bật:
- Cộng đồng người sử dụng lớn, đông đảo.
- Khơng chỉ chạy bộ mà cịn kết hợp nhiều mơn thể thao khác.
- Có đầy đủ tính năng đo đạc: tốc độ, qng đường.
- Có đánh giá thành tích, xây dựng cộng đồng chạy bộ.
● Những điểm hạn chế :
- Khá nhiều lỗi tính điểm, quy chế xác định chạy bộ khá phức tạp.
- Một số tính năng cần trả phí (Chức năng Analysis)

15


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
1.3.2.2 Google Fit

Google Fit là một trong những ứng dụng chạy bộ miễn phí tốt nhất trên thiết bị di
động. Nó theo dõi nhiều thứ diễn ra trong quá luyện tập như lượng calo được đốt cháy , nhịp
tim và nhiều thứ khác. Nó cũng hỗ trợ hầu hết các máy theo dõi tập thể dục. Một số tên tuổi
lớn mà Apps hỗ trợ như Wear OS, Nike+, Runkeeper, Strava, MyFitnessPal, Lifesum và
thậm chí là Sleep as Android để theo dõi giấc ngủ. App vẫn có những hạn chế của nó. Tuy
nhiên nó vẫn khá tốt với những gì nó mang lại cho người tập dù là một app miễn phí.
● Những điểm nổi bật:
- Nó hồn tồn miễn phí ngay cả Analysis.
- Nó tương tác hầu hết các máy theo dõi tập thể dục (đặc biệt thiết bị đồng hồ
thông minh).
- Giao diện UI đẹp, được đánh giá tốt.
- Có thể tính tốn chạy bộ khơng cần GPS/3G/4G.
- Là base data của rất nhiều App hiện nay (MoMo)

- Có thưởng cho phần chạy bộ, đi xe máy.
● Những điểm hạn chế :
- Khá nhiều lỗi tính bước chân khi khơng dùng 3G (một số lỗi gây trừ khi càng
chạy bộ, hoặc chưa đúng với thực tế).
- Phần cài đặt gây crash App.
16


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
1.3.2.3 Runkeeper

Trước khi Strava phổ biến ở Việt Nam thì cộng đồng chạy bộ biết đến Runkeeper
nhiều hơn. Về mạng xã hội, Runkeeper không hỗ trợ kết nối tốt như Strava. Tuy nhiên, nếu
Strava chỉ ghi lại lúc bạn di chuyển (moving time) và bỏ qua thời gian bạn nghỉ (nên kết quả
chạy thường “đẹp” hơn) thì Runkeeper lưu lại đủ quá trình chạy thực tế.
● Những điểm nổi bật:
- Lưu cả quá trình chạy trong các lần chạy (Dữ liệu người dùng lưu trữ lớn hơn
các App khác)
- Có thể tạo ra Group chạy bộ chung, mời bạn bè, thi đấu.
- Ứng dụng được sử dụng khá đơn giản, dễ sử dụng.
● Những điểm hạn chế :
- Một số tính năng cần trả phí (RUNKEEPER GO PREMIUM) những các chức
năng này lại miễn phí bên các app chạy bộ khác.
- Phiên bản mới nặng về GPS, nặng gây treo máy.
- Tạo tài khoản địi hỏi nhiều thơng tin, u cầu nhiều quyền truy cập.

17


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

1.4. Các chức năng chính
STT

Tên yêu cầu

Chức năng mở rộng

1

Quản lý theo dõi thói quen (Habit tracker)

Tìm kiếm, đặt lịch thơng báo,
phân loại, theo topic, cập nhật
tiến độ, các tiện ích (đồng hồ
đo thời gian, kho tài liệu,...),
gợi ý thói quen phù hợp

2

Quản lý hoạt động chạy bộ (Running tracker)

Setup bài chạy, hiển thị bản
đồ, vẽ đường, đo chỉ số (bước
chân, calories, pace,...) trong
lúc chạy.

3

Xây dựng cộng đồng phát triển bản thân thông
qua các sự kiện (Community)


Tổ chức, tham gia sự kiện,
ranking,chia sẻ

4

Xây dựng trang cá nhân, thống kê và phân tích
lịch sử hoạt động (Profile, Statistics)

Tích điểm, danh hiệu, xử lý số
liệu theo khoảng thời gian và
đưa ra đánh giá

Bảng danh sách yêu cầu chính

18


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT

2.1. Về mặt kỹ thuật
Sử dụng các cơng nghệ thích hợp với yếu tố đa nền tảng
2.1.1. React Native (Cơng nghệ phía Frontend)

React Native là một framework do công ty công nghệ nổi tiếng Facebook phát triển,
ra đời năm 2015, nhằm mục đích giải quyết bài tốn hiệu năng của Hybrid (Hybrid app
cần có thêm một lớp trung gian giữa mã nguồn và nền tảng đích. Điều này chắc chắn sẽ ảnh
hưởng nhiều tới hiệu suất của ứng dụng), và bài tốn chi phí (phải viết nhiều loại ngôn ngữ
native cho từng nền tảng di động Android và iOS). Chúng ta sẽ build được ứng dụng Native,

và chúng ta cũng có thể build ứng dụng đó một cách đa nền tảng (cross-platform). Phiên
bản hiện tại là 0.64.
So sánh với các cơng nghệ khác (Flutter)
Tính chất
Ưu điểm

React Native

Flutter

– Thiên về development/hotfix nhanh (hot

– Mạnh về animation, performance app

reload, bundle injection)

rất cao.

– Sử dụng JS (quen thuộc với nhiều

– Giao tiếp gần như trực tiếp với native

developer) và có thể share business logic

– Static language nhưng với syntax hiện

codebase với frontend.

đại, compiler linh động giữa AOT (for
19



Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
– Hỗ trợ bởi Facebook, họ dùng cho product

archive, build prod) và JIT (for

của họ hàng ngày nên developer hưởng lợi

development, hot reload)

khá nhiều từ đây.

– Có thể chạy được giả lập mobile ngay

– Hiện tại đã rất nhiều thư viện, gần như đã

trên web, tiện cho development. Các

rất đầy đủ cho các nhu cầu app thông dụng.

metric measure performance được hỗ trợ
sẵn giúp developer kiểm sốt tốt
performance của app.
– Có thể dùng để build các
bundle/framework gắn vào app native để
tăng performance.

Nhược


– Giao tiếp với native thông qua các bridge,

– Bộ render UI được team author gần như

điểm

dễ bị bottleneck nếu khơng kiểm sốt tốt.

viết lại, khơng liên quan tới UI có sẵn của

– Dùng JS nên mang theo các đặc điểm của

Framework native, dẫn đến memory sử

JS: rất dễ làm nhưng cũng dễ sai

dụng khá nhiều.

– Hiệu năng animation là điểm yếu.

– Phải học thêm ngôn ngữ DART, BLoC

– Không thích hợp cho các app cần khả năng

pattern, DART Streaming

tính tốn cao (hash, crypto).

– Dù đã release 2.2 chính thức, tuy nhiên
còn khá mới. Một số plugin rất quan trọng

như Google Map vẫn cịn đang phát
triển, chưa stable.

Nhóm em đã chọn React Native là vì:
-

Tận dụng sự hỗ trợ từ cộng đồng mạnh mẽ và phổ biến hơn.

-

Sự phổ biến của JavaScript trong việc phát triển các cross-platform app.

-

Chức năng chạy bộ cần Google Map ổn định mà Flutter chưa sẵn sàng.

20


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
2.1.2. NodeJS (Cơng nghệ phía Backend)

NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trình thơng dịch
thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở
rộng. Ra đời năm 2009, phiên bản hiện tại là 16.4, có nhiều framework từ Node JS, trong đó
có ExpressJS.
Express là một framework dành cho NodeJS. Nó cung cấp cho chúng ta rất nhiều tính
năng mạnh mẽ trên nền tảng web cũng như trên các ứng dụng di động. Express hỗ trợ các
phương thức HTTP và middleware tạo ra môt API vô cùng mạnh mẽ và dễ sử dụng. Có thể
tổng hợp một số chức năng chính của express như sau:

● Thiết lập các lớp trung gian để trả về các HTTP request
● Định nghĩa router cho phép sử dụng với các hành động khác nhau dựa trên
phương thức HTTP và URL
● Cho phép trả về các trang HTML dựa vào các tham số.
So sánh với các cơng nghệ khác (ASP NET)
Tính chất

Node.js

ASP.NET

Định nghĩa

Node.js là nền tảng dịch mã nguồn của
JavaScript thành mã máy.

Một nền tảng quản lý đa ngôn ngữ để
phát triển ứng dụng web.

Libralies

ml.js, Brain.js, Synaptic, Limdu.js,
ConvNetJS, Stdlib, and others.

Swagger, Unity.WebAPI, Serilog,
IdentityServer04AspNetIdentity,
Nswag, and others.

Framework


VulcanJS, Total.js, AdonisJs, Feathers.js,
Sailsjs...

ASP.NET

21


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
Sử dụng

API web, ứng dụng web, trình dịch, tạo tài
liệu, tập lệnh...

Ứng dụng dành cho thiết bị di động,
web desktop, Microservice cho Docker
container, game, machine learning và
các dịch vụ Cloud

Performance

Nền tảng này xử lý đa nhiệm một cách
hồn hảo - đó là một giải pháp nhẹ không
gây quá tải cho máy chủ của bạn.

Hiệu suất của ASP.NET khá cao và nền
tảng này liên tục phát triển. Phiên bản
mới nhất nhanh hơn 15% so với phiên
bản đầu tiên.


Công cụ

WebStorm, Visual Studio Code, bất kỳ text
editor nào

Visual Studio, ReSharper, Web
Essentials

Hỗ trợ nền
tảng

Linux, OS X, Windows,...

Có phiên bản đa nền tảng .NET Core
cho Windows, Linux, macOS.

Ngơn ngữ

JavaScript

C#, F# và Visual Basic

Nhóm em đã chọn Node.js vì quy mơ App cỡ vừa, cần sự gọn nhẹ, ngôn ngữ quen thuộc
JavaScript, và điểm cộng lớn là cần thời gian hoàn thành nhanh và dễ mở rộng do sử
dụng ngơn ngữ Javascript tương thích nhiều cơng nghệ khác,...

22


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng

2.1.3. MongoDB (Cơng nghệ phía Database)

Với mơ hình database là NoSQL thì MongoDB là một sự lựa chọn hợp lý. Hơn nữa,
MongoDB Atlas là cloud database của MongoDB được ra mắt vào năm 2016 chạy trên
AWS, Microsoft Azure và Google Cloud Platform, rất dễ sử dụng
Dữ liệu trong mỗi Cluster ở Atlas được lưu trữ theo cơ chế Replication, với 3 nodes: 1
master (primary) và 2 slaves (secondary).
So sánh với các cơng nghệ khác (Firebase)
Tính chất

MongoDB

Firebase

Performance

MongoDB thích hợp cho
app có traffic lớn

Firebase có performance
thấp hơn MongoDB

Nhà phát triển

MongoDB

Google

Ngơn ngữ hỗ trợ


MongoDB tương thích với
Java, JavaScript, PHP,
NodeJS, C, C#, Perl, Python

Tương thích Java,
Objective-C, PHP, NodeJS,
JavaScript, Swift, C++, etc.

Security

Cao hơn.

Thấp hơn.

Applications

MongoDB phù hợp nhất cho Firebase thích hợp cho ứng
ứng dụng cần sự phát triển
dụng cần tạo bản mẫu nhanh
rộng sau này.
chóng.

Nhóm em chọn MongoDB vì tính bảo mật dữ liệu người dùng tốt hơn, chi phí
phát triển sau này thấp hơn, tính mở rộng cơ sở dữ liệu thuận tiện hơn.

23


Đồ án 50: Ứng dụng theo dõi thói quen người dùng kết hợp hoạt động chạy bộ đa nền tảng
2.1.4. Thư viện React-native-maps và expo location (xử lý đường đi, map)


Với thư viện react-native-maps này thì trên thiết bị Android sẽ sử dụng Google
Maps, cịn trên thiết bị iOS có thể sử dụng Google Maps hoặc Apple Map.
Github: />Thư viện hỗ trợ các tính năng:
-

Xem bản đồ thế giới, tra cứu vị trí.

-

Theo dõi vị trí người dùng.

-

Marker địa điểm, vẽ polygon, vẽ đường đi.

-

Tính tốn và vẽ direction cho các điểm trên bản đồ (Cần Google API key, tuy
nhiên nó khơng miễn phí, và phí khá tốn kém).

24


×