1. Trang chủ
  2. » Cao đẳng - Đại học

Đồ á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

110 57 0

Đ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

Định dạng
Số trang 110
Dung lượng 9,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu đề tàiVớ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ảikhô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ữn

Trang 1

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:

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

Trang 2

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

Trang 3

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 quá trình làm đồ án, nhóm đã vậndụng được rất nhiều trong việc hoà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 đượcnhững kiến thức quan trọng cùng những góp ý chân thành để có thể hoàn thành báo cáo vàlàm được một chương trình hoà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ê Hoàng Minh Sơn, Phạm Liên Sanh

Trang 4

1.3.1 Nhóm ứng dụng theo dõi thói quen (Habit tracker) 9

2.1.4 Thư viện React-native-maps và expo location (xử lý đường đi, map) 24 2.1.5 Thư viện expo-pedometer (xử lý đếm bước chạy) 26 2.1.6 Recommendation system (hệ thống khuyến nghị) 27

Trang 5

3.3 Đặc tả Use Case 39

3.3.2.5 Use case UC08 - Get recommended habits by themes 48

3.3.2.7 Use case UC10 - Get notifications for habits 50 3.3.2.8 Use case UC11 - Check progress for habits 51 3.3.2.9 Use case UC12 - Filter habit by status 52

3.3.3.4 Use case UC17 - Set Timer & Distance 58

3.3.5.1 Use case UC28 - Get statistic my personal Habits 71 3.3.5.2 Use case UC29 - Get statistics compared with others for events 72

3.3.5.4 Use case UC31 - Get statistic for Pedometer 74 3.3.5.5 Use case UC32 - Get statistic for Running 75

Trang 6

3.4.2 Module Habit tracker 78

1 Đánh giá tiến độ thực hiện đề tài (bảng tóm tắt quá trình các giai đoạn thực hiện cột thời gian và

Trang 7

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

Trang 8

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ảikhô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ữngthó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óiquen, 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 chosứ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 chongườ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ếtnố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 Ngoài ra, ứng dụng sẽ gợi ý cho người dùng những thói quen phù hợp dựa theonhu cầu, xu hướng hiện tại cũng như quá 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ánhquá 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ácbiể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

Trang 9

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 quá trình triển khai đồ

án Đó là xây dựng được một chương trình hoà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óiquen 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ầnmề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ầnmề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êucự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

Trang 10

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ạiPhò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 quá trình hình thànhthó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ạolậ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ụctiê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 đó

Trang 11

● 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ụctiêu chúng ta đề ra khi vào app Trong mỗi lộ trình, Fabulous sẽ đưa ra các thóiquen 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ó luôn 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 chochú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 hoàn thành một thói quen, Fabulous cũng sẽ chúc mừng và gửi nhữnglờ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

Trang 12

Habitica là một trong những ứng dụng theo dõi thói quen đầu tiên với concept “gamehoá” thói quen Mỗi khi hoà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 caotrê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ộtmắ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

Trang 13

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 ưathí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ộtchecklist (giống concept của Todo list), để có thể vào và hoà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óiquen 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ếptheo, Habitify đã được Apple nhiều lần liên hệ để lựa chọn làm ứng dụng cài đặt mặc địnhtrê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ànthành (bấm nút complete) ở Habitify, dữ liệu sẽ được tự động cập nhật vềApple Health

Trang 14

+ 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ó ảnhhưởng đến thói quen còn lại như thế nào (co-relation) hay lĩnh vực nào trongcuộ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ì dothó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)

Trang 15

● 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ộtchủ đề nào đó Nếu là người mới bắt đầu tạo thói quen thì các template thóiquen được tạo sẵn này sẽ là một khởi điểm tốt

● Một số hạn chế:

+ Tính phí hơi cao

Trang 16

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à tachụ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ínhnăng cao cấp, chuyên 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 độ, quãng đườ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)

Trang 17

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ịptim 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ổilớ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ó Tuynhiê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ó hoàn toà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 toá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

Trang 18

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 Runkeepernhiề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ếuStrava 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ơncá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ứcnă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, yêu cầu nhiều quyền truy cập

Trang 19

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

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

Trang 20

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 toá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 toá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)

Ưu điểm – Thiên về development/hotfix nhanh (hot

reload, bundle injection)

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

developer) và có thể share business logiccodebase với frontend

– Mạnh về animation, performance app rất cao.

– Giao tiếp gần như trực tiếp với native– Static language nhưng với syntax hiệnđại, compiler linh động giữa AOT (for

Trang 21

– Hỗ trợ bởi Facebook, họ dùng cho productcủa họ hàng ngày nên developer hưởng lợikhá nhiều từ đây.

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

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

archive, build prod) và JIT (fordevelopment, hot reload)– Có thể chạy được giả lập mobile ngay

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

metric measure performance được hỗ trợsẵn giúp developer kiểm soát tốt

performance của app.

– Có thể dùng để build cácbundle/framework gắn vào app native đểtăng performance

Nhược

điểm

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

dễ bị bottleneck nếu không kiểm soát tốt

– Dùng JS nên mang theo các đặc điểm củaJS: rất dễ làm nhưng cũng dễ sai

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

– Không thích hợp cho các app cần khả năngtính toán cao (hash, crypto)

– Bộ render UI được team author gần nhưviết lại, không liên quan tới UI có sẵn của

Framework native, dẫn đến memory sử dụng khá nhiều.

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

pattern, DART Streaming– Dù đã release 2.2 chính thức, tuy nhiêncò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.

Trang 22

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ịchthự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ínhnă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ácphươ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ênphươ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)

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,

Trang 23

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

hoàn hảo - đó là một giải pháp nhẹ khônggây quá tải cho máy chủ của bạn

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

Công cụ WebStorm, Visual Studio Code, bất kỳ text

editor nào Visual Studio, ReSharper, WebEssentials

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

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,

Trang 24

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: 1master (primary) và 2 slaves (secondary)

So sánh với các công nghệ khác (Firebase)

app có traffic lớn Firebase có performancethấp hơn MongoDB

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

Applications MongoDB phù hợp nhất cho

ứng dụng cần sự phát triểnrộng sau này

Firebase thích hợp cho ứngdụng cần tạo bản mẫu nhanhchó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.

Trang 25

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:https://github.com/react-native-maps/react-native-maps

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 toá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).

Trang 26

Vì vấn đề Google Map API, đặc biệt là tính năng direction không còn nhận sự hỗ

trợ từ phía Google (từ tháng 05/2021), nếu đăng kí sẽ phải qua một số công đoạn thanh toanphức tạp, nên nhóm đã quyết định tự xử lý phần vẽ đường đi, tính toán độ dài đường đi bằng

thuật toán tự handle khi kết hợp thêm expo-location.

Link tham khảo:https://docs.expo.io/versions/latest/sdk/location/

Ngoài ra, nhóm có tìm hiểu thêm 1 số API hỗ trợ khác như Goong (hàng Việt Namchất lượng cao), Leaflet (mạnh về web hơn mobile)

So sánh với các công nghệ đã nghiên cứu react-native-mapbox-gl/maps

Tính chất React-native-maps @react-native-mapbox-gl/ma

ps

Chất lượng hình ảnh Lấy từ Google map Ảnh vệ tinh nhiều nguồn

được tổng hợp và xử lí với Mapbox

Performance Không xử lý tốt trong quá

trình load nhiều componentMarkers, Shapes, Polylines

Xử lý tốt trong quá trình loadnhiều component Markers,Shapes, Polylines

Clustering Không được hỗ trợ đang còn

nằm trong chức năng đangđược yêu cầu từ cộng đồngReact Native

Đã có

Maintenance và update Được bảo trì trong cộng đồng

sử dụng thường xuyên hơn (80k lượt tải/tuần)

Ít được update (6k lượt tải/tuần)

Tương thích Thích nghi tốt (cả expo) Nhiều lỗi tương thích cài đặt.

Trang 27

2.1.5 Thư viện expo-pedometer (xử lý đếm bước chạy)

Pedometer từ cảm biến expo-sensors sử dụng Core Motion của iOS và hệ thốnghardware.Sensor của Android để lấy số bước chân, và cho phép subscribe để cập nhật

Thư viện cần yêu cầu quyền truy cập : Pedometer.requestPermissionsAsync()

Thư viện cho phép bạn theo dõi data bước chân:

- Ngay cả khi không sử dụng app (background app)

- Có thể đo đạt được số bước chân trong 2 ngày bất kỳ hợp lệ:

Pedometer.getStepCountAsync(start, end)

● Vì vấn đề đa nền tảng, nhóm quyết định chọn expo-pedometer thay vì các phải kết

hợp cả 2 API google-fit cho Android, health-app cho iOS Và expo-pedometer chạy

được ngay cả ở background

Trang 28

2.1.6 Recommendation system (hệ thống khuyến nghị)

Hệ thống gợi ý (Recommendation systems) là một dạng của hệ hỗ trợ ra quyết định,

cung cấp giải pháp mang tính cá nhân hóa mà không phải trải qua quá trình tìm kiếm phứctạp Nó học từ những gì liên quan tới người dùng và gợi ý các đối tượng tốt nhất cho họ ởmột ngữ cảnh nào đó

Hệ khuyến nghị sẽ chủ động hướng người dùng đến những đối tượng mà họ quan tâm,yêu thích Điều này đặc biệt có ý nghĩa khi ngày nay, lượng thông tin được tạo ra quá lớn,dẫn đến tình trạng người dùng bị quá tải thông tin

Hệ khuyến nghị đã chứng tỏ được giá trị của mình khi được áp dụng vào các hệ thốngcủa các hệ thống của các công ty lớn, có thể kể đến Google, Amazon, Netflix, LinkedIn

Trang 29

Hệ thống gợi ý dựa theo nội dung

Trong ứng dụng này, nhóm em đề xuất áp dụng hệ thống khuyến nghị vào việc đưa radanh sách các thói quen phù hợp để người dùng thực hiện:

- Nếu là người dùng mới, đơn giản là dựa theo bộ dữ liệu hiện tại của hệ thống để đưa

ra những thói quen được nhiều người khác đang thực hiện và hoàn thành đầy đủ

- Nếu là người dùng đã có lịch sử hoạt động thói quen, áp dụng content-based filtering

để đưa ra các thói quen có liên quan đến những thói quen thường được người dùngthực hiện (trong quá khứ và hiện tại)

- Nếu có hệ thống bạn bè, áp dụng lọc collaborative filtering để đưa ra các thói quen

có liên quan đến những thói quen thường được bạn của người dùng thực hiện (trongquá khứ và hiện tại)

→ Ý tưởng:

+ Xây dựng hồ sơ người dùng từ lịch sử theo dõi các thói quen (hành vi, sởthích) → hoàn toàn có thể từ chức năng habit tracker

+ Tổng hợp xu hướng theo từng khoảng thời gian → phân tích hành vi ngắn hạn

và dài hạn, các mục tiêu mà người dùng đặt ra thay đổi như thế nào+ Từ đó đưa ra các đối tượng thói quen phù hợp, đồng thời dự đoán tương laingười dùng có xu hướng thực hiện những nhóm thói quen nào

Nhóm hướng đến triển khai một hệ thống các chủ đề để phân loại các thói quen, nhằmphục vụ phát triển recommendation system sau này

Trang 30

2.1.7 FCM Notifications

Firebase Cloud Messaging (FCM) là một dịch vụ gửi nhận tin nhắn đa nền tảng của

Google Thông qua FCM, nhà phát triển ứng dụng có thể gửi thông điệp một cách nhanhchóng, an toàn tới các thiết bị cài đặt ứng dụng của họ

Quy trình gửi message bằng FCM từ nhà phát triển tới người dùng

Ưu điểm của FCM là gì:

● Thời gian triển khai nhanh, config server ko nhiều

● Tiết kiệm chi phí mua server

Vì nhóm thực hiện không muốn phát sinh chi phí nhiều cho server cùng với thời gian triển khai dự án có hạn nên nhóm đã chọn FCM.

Trang 31

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

Habit tracker giúp con người rèn luyện bản thân, tăng thói quen tích cực và giảm thói

quen tiêu cực Nó là phương tiện dẫn ta đến việc phát triển bản thân Để hiểu đúng về ứng

dụng theo dõi thói quen, đây là vòng lặp thói quen phổ biến:

Để bắt đầu một thói quen, chúng ta luôn luôn cần một tín hiệu (cue) Ví dụ, khi chúng

ta nghe thấy tiếng chuông báo thức, chúng ta lập tức lấy điện thoại và bấm tắt (response) Về

bản chất, những ứng dụng theo dõi thói quen được sinh ra để tạo ra các thông báo (cue), đểkhiến chúng ta nhận ra là đã đến thời điểm làm một việc gì đó Ngoài ra, ứng dụng thói quencòn tạo động lực để chúng ta yêu thích việc thực hiện thói quen thông qua các thử thách, sự

kiện với người khác (craving), để nhận về những phần thưởng về tinh thần (reward) Áp

dụng vòng lặp này, nhóm em đã xác định những tính năng cần phải có trong ứng dụng

Tuy nhiên để thực sự hiểu đúng bản chất của ứng dụng về thói quen, cần phân tích rõhai yếu tố này:

Trang 32

1 Ứng dụng thói quen không thể thay thế hành động

Không có một ứng dụng thói quen nào có thể giúp chúng ta hoàn thành việc gì đó nếu

ta không thực hiện Nếu chúng ta nghĩ rằng việc tải một ứng dụng tạo thói quen về là giảipháp để dậy sớm hoặc tập thể dục thì điều này là hoàn toàn sai lầm Ứng dụng thói quen chỉgiúp cho việc dậy sớm dễ dàng hơn bằng việc nhắc nhở cũng như tạo phần nào động lực khiđưa ra các thử thách, chúng cũng hoàn toàn không loại bỏ những yếu tố khách quan hay chủquan khác Một thói quen thực sự hình thành đều bằng ý chí của chúng ta

2 Đa số các ứng dụng thói quen yêu cầu một sự cam kết từ người dùng

Các ứng dụng thói quen ngày nay đều hướng đến việc nhắc nhở người sử dụng làmmột hành động tốt hoặc loại bỏ một hành động xấu Phần thưởng dễ thấy nhất mà các ứng

dụng này đem lại là những biểu đồ sinh động cho thấy sự tiến bộ của chúng ta theo thời

gian Tuy nhiên, có một nghịch lý là các ứng dụng thói quen đang mặc định rằng chúng ta sẽ

có đủ động lực để thực hiện được thói quen trong một khoảng thời gian liên tục từ 7-14 ngày,bởi chỉ khi đó, các ứng dụng đó mới có thể biểu diễn sự tiến bộ của chúng ta bằng nhữngbiểu đồ hấp dẫn như hình trên

Tuy nhiên, với những chúng ta mới tạo thói quen thì điều này không hề đơn giản,thậm chí là cực kì khó, bởi chúng ta chưa quen với việc thực hiện một điều gì đó liên tục.Chưa kể chúng ta có thể sẽ đặt những thói quen quá lớn, bản thân chưa kịp quen với sự thayđổi đột ngột, thành ra chỉ 1-2 ngày sau là mọi thứ lại trở về như xưa

Theo các nghiên cứu khoa học, mỗi thói quen để đạt được thì phải duy trì hành động

đó trong liên tục ít nhất 21 ngày Đây là khoảng thời gian tối thiểu để một người nhận thức

về sự quan trọng của thói quen

→ Với những tìm hiểu trên, nhóm em đã đưa ra các chức năng phù hợp, nhằm tối ưu trải nghiệm người dùng một cách khoa học và thân thiện.

Trang 33

2.2.2 Phân tích cơ sở hoạt động chạy bộ

Có nhiều hình thức chạy nhưng tốc độ chạy vẫn được duy trì ổn định trong suốt quá

Trang 34

#5k, 10k, 21k hay 42k

Các chỉ số này hàm ý là chỉ khoảng cách của một cuộc thi chạy bộ nào đó

5k còn gọi là 5k Run, đường chạy 5km, phù hợp cho người mới bắt đầu

10k hay được viết dưới tên 10k Run, dĩ nhiên là 10km rồi và cự ly chạy này có kỹthuật nâng cao hơn so với 5k

21k là 21km hay có tên gọi phổ biến là Half-Marathon, cự ly đường trường này dànhcho những vận động viên chuyên nghiệp và người chạy bộ có nhiều năm kinh nghiệm

42k hay Marathon, tương đương với 42.2 km mà các vận động viên chuyên nghiệpphải trải qua khi thi đấu

● Nhịp thở khi chạy bộ:

- Nếu chạy ở cường độ thấp - 3:2 (3 nhịp hít vào, 2 nhịp thở ra)

- Nếu chạy ở cường độ trung bình - 2:1 (2 nhịp hít vào, 1 nhịp thở ra)

- Nếu chạy ở cường độ cao - 2:1:1:1 (2 nhịp hít vào, 1 ra, 1 vào, 1 ra)

● Tốc độ chạy trung bình là bao nhiêu?

- Tốc độ tối ưu nhất là khoảng 13,3 km/h (khoảng 4:30 phút mỗi km) đời vớinam

- Tốc độ tối ưu nhất là khoảng 10,5 km/h (khoảng 5:42 phút mỗi km) đối với nữ

● Cách chạy bộ khoa học là khi bắt đầu chạy hãy thật chậm để tìm nhịp chạy của mình,tăng dần đến khi đạt được nhịp tim hợp lí Người tập cần làm chủ tốc độ của mình vàchạy với những người cùng tốc độ thay vì cố chạy theo nhóm đầu Nếu kiểm soát tốt

có thể chạy một mạch 400m mà không thấy mệt

● Luyện tập sẽ giúp khả năng đường chạy tăng thêm:

● Ước Tính Lượng Calo Đốt Khi Chạy

Calo là nhiên liệu giúp cơ thể chúng ta hoạt động — một calo bằng một đơn vị

Trang 35

tất nhiên đến từ thức ăn: Có 9 calo trong mỗi gam chất béo và bốn calo trong mỗi gamprotein hoặc carbohydrate Lượng calo mà cơ thể chúng ta không sử dụng hết đượclưu trữ trong các tế bào mỡ, đó là cách chúng ta bảo tồn năng lượng khi cần Nếu tiêuthụ nhiều năng lượng hơn mức đốt cháy, đó là khi ta bắt đầu tăng cân — nếu lật lạiphương trình và đốt cháy nhiều hơn mức tiêu thụ (thông qua tập thể dục), ta có thể sẽgiảm cân.

Ước tính chung là một người trung bình đốt cháy 100 calo mỗi dặm (1.6km)

chạy Nhưng đôi khi, chúng ta không muốn chỉ dựa trên ước tính chung chung Chắcchắn, bạn có thể đeo một chiếc

→ Với những tìm hiểu trên, nhóm em đã đưa ra các chức năng chạy bộ hợp lí, nhằm tối ưu trải nghiệm người dùng một cách khoa học và thân thiện.

Trang 36

CHƯƠNG 3 - PHÂN TÍCH HỆ THỐNG

3.1 Sơ đồ Use case tổng quát

Sơ đồ Use case tổng quát Super Self App

Trang 37

3.2 Danh sách Use case:

8 Get recommended habits by themes Habit tracker User

10 Get notifications for habit Habit tracker User

Trang 38

11 Check progress for habits Habit tracker User

17 Set timer and distance Running tracker User

Trang 39

23 Reach other’s profile Community User

28 Get statistic my personal Habits Statistic and Profile User

29 Get statistics compared with others

for events

Statistic and Profile User

30 Get overall history Statistic and Profile User

31 Get statistic for Pedometer Statistic and Profile User

32 Get statistic for Running Statistic and Profile User

Trang 40

3.3 Đặc tả Use Case

3.3.1 Module Auth

Sơ đồ Use-case Module Auth

3.3.1.1 Use case UC01 - Sign in:

Short Description Cho phép người dùng đăng nhập vào hệ thống

Pre-Conditions Người dùng phải có tài khoản

Post-Conditions Người dùng đăng nhập thành công

Ngày đăng: 05/09/2021, 20:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w