ĐẠ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
MAI ANH DINH
NGUYỄN THÀNH LUÂN
KHÓA LUẬN TỐT NGHIỆP
ỨNG DỤNG GẮN KẾT CỘNG ĐỒNG BOWIE
Application for expanding community connections
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP. HỒ CHÍ MINH, 2020
ĐẠ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
MAI ANH DINH - 16521645
NGUYỄN THÀNH LUÂN – 16520703
KHÓA LUẬN TỐT NGHIỆP
ỨNG DỤNG GẮN KẾT CỘNG ĐỒNG BOWIE
Application for expanding community connections
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
TS. HUỲNH NGỌC TÍN
TP. HỒ CHÍ MINH, 2020
THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………………
ngày ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn đến các Giảng viên của Khoa Công nghệ phần mềm,
Trường Đại học Công nghệ thông tin – ĐHQG TP.HCM. Trong khoảng thời gian
học tập tại trường, nhóm em đã được trang bị các kiến thức cơ bản, các kỹ năng và
hình thành thái độ tích cực để có thể hồn thành Khóa luận tốt nghiệp của mình.
Đặc biệt gửi lời cảm ơn sâu sắc đến TS. Huỳnh Ngọc Tín, là người đã trực tiếp
hướng dẫn, góp ý và đánh giá trong suốt q trình hồn thiện Khóa luận tốt nghiệp.
Tuy nhiên, những thiếu sót trong khâu hồn tất Khóa luận tốt nghiệp là điều
khó tránh khỏi. Vì thế nhóm em mong nhận được sự góp ý của q Thầy Cơ và các
bạn để báo cáo có thể hồn thiện hơn.
Một lần nữa, nhóm em xin chân thành cảm ơn.
Thành phố Hồ Chí Minh, tháng 12 năm 2020
Sinh viên
Mai Anh Dinh
Nguyễn Thành Luân
MỤC LỤC
Chương 1.
TỔNG QUAN ĐỀ TÀI .......................................................................2
1.1. Dẫn nhập ........................................................................................................2
1.2. Mục tiêu của đề tài.........................................................................................3
1.3. Phạm vi, đối tượng thực hiện ........................................................................3
1.4. Kết quả mong đợi ..........................................................................................4
1.5. Bố cục của khóa luận .....................................................................................4
Chương 2.
XÁC ĐỊNH VÀ PHÂN TÍCH U CẦU ..........................................5
2.1. Phát biểu bài tốn ..........................................................................................5
2.2. Phân tích u cầu ...........................................................................................6
2.2.1.
Yêu cầu chức năng ..............................................................................6
2.2.1.1. Yêu cầu lưu trữ ................................................................................7
2.2.1.2. u cầu tính tốn .............................................................................8
2.2.1.3. u cầu tra cứu ................................................................................9
2.2.1.4. Yêu cầu thống kê .............................................................................9
2.2.2.
Yêu cầu phi chức năng ........................................................................9
2.3. Phương án thiết kế .......................................................................................10
2.3.1.
Các yêu cầu của hệ thống ..................................................................10
2.3.1.1. Các yêu cầu căn bản, bắt buộc .......................................................10
2.3.1.2. Các yêu cầu cần thiết .....................................................................10
2.3.1.3. Các yêu cầu mong muốn................................................................10
2.3.2.
Các ràng buộc của hệ thống ..............................................................10
Chương 3.
HIỆN THỰC ĐỀ TÀI .......................................................................11
3.1. Thiết kế ứng dụng ........................................................................................11
3.1.1.
Kiến trúc chương trình ......................................................................11
3.1.2.
Danh sách usecase .............................................................................13
3.1.3.
Mô tả usecase ....................................................................................14
3.1.3.1. Usecase Đăng nhập ........................................................................14
3.1.3.2. Usecase Đăng ký tài khoản ............................................................15
3.1.3.3. Usecase Đổi mật khẩu ...................................................................16
3.1.3.4. Usecase Chỉnh sửa thông tin tài khoản ..........................................17
3.1.3.5. Usecase Cá nhân hóa cài đặt ứng dụng .........................................18
3.1.3.6. Usecase Đăng xuất .........................................................................18
3.1.3.7. Usecase Xem danh sách events .....................................................19
3.1.3.8. Usecase Xem thơng tin event ........................................................19
3.1.3.9. Usecase Lọc events ........................................................................20
3.1.3.10. Usecase Tìm kiếm event ..............................................................20
3.1.3.11. Usecase Tạo event .......................................................................21
3.1.3.12. Usecase Tham gia event ..............................................................22
3.1.3.13. Usecase Event chatting ................................................................23
3.1.4.
Thiết kế cơ sở dữ liệu ........................................................................24
3.1.4.1. Sơ đồ lớp mức phân tích ................................................................24
3.1.4.2. Định nghĩa các lớp đối tượng ........................................................25
3.1.4.3. Định nghĩa các thuộc tính của lớp đối tượng.................................26
3.1.5.
Thiết kế màn hình ..............................................................................30
3.1.5.1. Màn hình Đăng nhập, Đăng kí.......................................................30
3.1.5.2. Màn hình Trang chủ.......................................................................33
3.1.5.3. Màn hình Tạo sự kiện ....................................................................35
3.1.5.4. Màn hình Cuộc trị chuyện ............................................................40
3.1.5.5. Màn hình Quản lý thơng báo .........................................................42
3.1.5.6. Màn hình Cài đặt, Thơng tin tài khoản ..........................................42
3.1.5.7. Thanh điều hướng ứng dụng ..........................................................47
3.2. Thông tin mã nguồn và cài đặt ....................................................................48
3.2.1.
Thông tin mã nguồn ..........................................................................48
3.2.2.
Hướng dẫn cài đặt..............................................................................48
3.3. Kiểm thử và phát hành ứng dụng ................................................................49
3.3.1.
Kiểm thử ứng dụng ............................................................................49
3.3.2.
Quy trình deploy ................................................................................49
3.3.3.
Phản hồi từ người dùng .....................................................................49
Chương 4.
KẾT LUẬN .......................................................................................50
4.1. Kết quả đạt được ..........................................................................................50
4.2. Hướng phát triển ..........................................................................................50
DANH MỤC HÌNH
Hình 3-1 Sơ đồ kiến trúc của chương trình ...............................................................11
Hình 3-2 Sơ đồ lớp mức phân tích của ứng dụng .....................................................24
Hình 3-3 Thiết kế màn hình đăng nhập.....................................................................30
Hình 3-4 Thiết kế màn hình đăng kí .........................................................................31
Hình 3-5 Thiết kế màn hình trang chủ ......................................................................33
Hình 3-6 Thiết kế màn hình Nhập thơng tin địa điểm ..............................................35
Hình 3-7 Thiết kế màn hình Nhập thơng tin thời gian ..............................................37
Hình 3-8 Thiết kế màn hình Nhập thơng tin chi tiết sự kiện ....................................38
Hình 3-9 Thiết kế màn hình danh sách cuộc trị chuyện ...........................................40
Hình 3-10 Thiết kế màn hình cài đặt.........................................................................42
Hình 3-11 Thiết kế màn hình cập nhật thơng tin tài khoản ......................................44
Hình 3-12 Thiết kế màn hình thay đổi mật khẩu ......................................................46
Hình 3-13 Thiết kế thanh điều hướng ứng dụng .......................................................47
Hình 4-1 Các ngôn ngữ được sử dụng cho từng framework ....................................57
Hình 4-2 Logo React Native Framework ..................................................................58
Hình 4-3 Logo Xamarin Framework ........................................................................58
Hình 4-4 Logo Flutter Framework ............................................................................59
Hình 4-5 Logo Typescript .........................................................................................61
Hình 4-6 Danh sách các ngơn ngữ lập trình được u thích nhất năm 2019 ............62
Hình 4-7 Logo Node.js ..............................................................................................64
Hình 4-8 Synchronous Load và Asynchronous Load ...............................................65
Hình 4-9 Mỗi API trong REST sẽ tương ứng với một endpoint khác nhau .............69
Hình 4-10 Logo MongoDB .......................................................................................71
Hình 4-11 Cấu trúc hoạt động của MongoDB database ...........................................72
Hình 4-12 Luồng xử lý căn bản của phương pháp Cookie-Based Authentication ...77
DANH MỤC BẢNG
Bảng 2-1 Ưu và nhược điểm của các ứng dụng mạng xã hội hiện tại trong việc tạo
và tìm kiếm hoạt động .................................................................................................5
Bảng 2-2 Bảng xác định yêu cầu lưu trữ của ứng dụng ..............................................7
Bảng 2-3 Bảng xác định u cầu tính tốn của ứng dụng...........................................8
Bảng 2-4 Bảng xác định yêu cầu tra cứu của ứng dụng..............................................9
Bảng 2-5 Bảng xác định yêu cầu thống kê của ứng dụng ...........................................9
Bảng 3-1 Danh sách usecases ...................................................................................14
Bảng 3-2 Bảng định nghĩa các lớp đối tượng trong cơ sở dữ liệu ............................25
Bảng 3-3 Bảng mô tả lớp đối tượng User .................................................................26
Bảng 3-4 Bảng mô tả lớp đối tượng Event ...............................................................27
Bảng 3-5 Bảng mô tả lớp đối tượng EventTag .........................................................27
Bảng 3-6 Bảng mô tả lớp đối tượng Place ................................................................28
Bảng 3-7 Bảng mô tả lớp đối tượng Coord ...............................................................28
Bảng 3-8 Bảng mô tả lớp đối tượng Information......................................................28
Bảng 3-9 Bảng mô tả lớp đối tượng Message ...........................................................29
Bảng 3-10 Bảng mô tả lớp đối tượng ImageFactory ................................................29
Bảng 3-11 Bảng mô tả lớp đối tượng Sessions .........................................................29
Bảng 3-12 Bảng mơ tả màn hình đăng nhập, đăng kí ...............................................32
Bảng 3-13 Bảng mơ tả màn hình trang chủ ..............................................................34
Bảng 3-14 Bảng mơ tả màn hình Nhập thơng tin địa điểm.......................................36
Bảng 3-15 Bảng mơ tả màn hình Nhập thơng tin thời gian ......................................37
Bảng 3-16 Bảng mơ tả màn hình Nhập thông tin chi tiết sự kiện .............................39
Bảng 3-17 Bảng mô tả màn hình danh sách cuộc trị chuyện ...................................41
Bảng 3-18 Bảng mơ tả màn hình cài đặt ...................................................................43
Bảng 3-19 Bảng mơ tả màn hình cập nhật thơng tin tài khoản .................................45
Bảng 3-20 Bảng mơ tả màn hình thay đổi mật khẩu .................................................47
Bảng 3-21 Bảng mô tả thanh điều hướng ứng dụng .................................................47
Bảng 3-22 Thông tin mã nguồn ứng dụng ................................................................48
DANH MỤC TỪ VIẾT TẮT, THUẬT NGỮ
Asynchronous Programming
Lập trình bất đồng bộ.
Client-side
Phía người dùng.
Component
Một bộ phận của chương trình, nhằm
giải quyết một chức năng cụ thể.
Cross-platform
Đa nền tảng.
Framework
Các đoạn code đã được viết sẵn và được
đóng gói, cung cấp các tính năng sẵn có
để đơn giản hóa cho việc phát triển ứng
dụng.
Handshake
Là các q trình để máy chủ và phía
người dùng xác nhận lẫn nhau để có thể
truyền dữ liệu.
Hybrid Mobile Application
Ứng dụng lai, loại ứng dụng có thể chạy
được trên nhiều nền tảng thiết bị di động
khác nhau.
Native App
Ứng dụng gốc, loại ứng dụng chỉ có thể
chạy trên một hệ điều hành nhất định.
Open-source
Mã nguồn mở, là bộ mã nguồn có thể dễ
dàng tải về, sửa đổi hay nâng cấp.
Server-side
Phía máy chủ.
Synchronous Programming
Lập trình đồng bộ.
UI
User Interface – giao diện người dùng.
TÓM TẮT KHÓA LUẬN
Ứng dụng gắn kết cộng đồng Bowie (tên tiếng Anh: Application for
expanding community connections) là sản phẩm của Khóa luận tốt nghiệp nhằm
mục đích giải quyết một phần khó khăn về mặt giao lưu và tương tác giữa những
con người sinh sống trong cùng một khu vực. Thông qua ứng dụng, những người
tham gia sẽ dễ dàng tìm thấy những hoạt động phù hợp với mối quan tâm, sở thích
của bản thân, để cùng với mọi người hội nhóm sinh hoạt và mở rộng các mối quan
hệ ngồi đời thực.
Các chức năng chính của ứng dụng gồm:
-
Tổ chức hoạt động và chia sẻ lịch trình với mọi người.
-
Xây dựng kênh kết nối mọi người tham gia hoạt động.
-
Theo dõi vị trí, thơng tin các hoạt động bằng định vị trên bản đồ.
-
Tìm kiếm, chọn lọc danh sách hoạt động hiển thị theo mối quan tâm.
-
Cá nhân hóa tài khoản ứng dụng.
Với việc tìm hiểu và áp dụng các công nghệ hỗ trợ để xây dựng, Bowie là
ứng dụng lai có thể chạy được trên cả 2 nền tảng hệ điều hành di động phổ biến là
Android và iOS. Thực hiện các qui trình triển khai, hiện thực, kiểm thử sản phẩm,
mục tiêu hiện tại của nhóm là đưa ứng dụng lên các trang cửa hàng (Appstore và
PlayStore) để ghi nhận những phản hồi của người dùng, từ đó định hướng các
phương pháp cải thiện và phát triển ứng dụng trong tương lai.
1
Chương 1. TỔNG QUAN ĐỀ TÀI
1.1. Dẫn nhập
Thời đại hiện nay khi mà Công nghệ thông tin đã ở một bước phát triển cao thì
việc kết bạn, giao lưu bốn phương hay hội nhóm cùng nhau học tập, sinh hoạt cũng
trở nên dễ dàng hơn. Tuy nhiên theo thực tế tìm hiểu được ở Làng Đại học Quốc gia
TP. Hồ Chí Minh, việc mở rộng mối quan hệ ngồi đời có thể cịn gặp nhiều trở
ngại hơn so với qua mạng Internet. Những khó khăn về mặt tiếp cận thơng tin cần
thiết, mối quan tâm và sở thích của từng cá nhân là những trở ngại ngăn cách chúng
ta làm quen và tham gia hoạt động chung với mọi người. Chẳng hạn như, muốn
tham gia một trận đá bóng giao hữu nhưng lại khơng tìm thấy ai quen thuộc trong
đó, hoặc muốn tổ chức một buổi học nhóm, trao đổi kiến thức nhưng lại không biết
cách kêu gọi những người quan tâm như thế nào...
Gắn kết cộng đồng – hay nói đơn giản hơn là gắn kết con người lại với nhau
thông qua việc tham gia, trao đổi, hợp tác trong các hoạt động là một trong những
nhân tố thiết yếu để hình thành nên các mối quan hệ xã hội. Để đạt được điều đó,
một kênh thơng tin về các hoạt động mang tính thời gian thực, đồng bộ và mở rộng
cho mọi người có thể tham gia là điều cần thiết. Ứng dụng gắn kết cộng đồng Bowie
được nhóm tạo ra với mục tiêu là cầu nối giúp người sử dụng dễ dàng tìm kiếm các
hoạt động phù hợp với bản thân để kết nối và tham gia cùng mọi người. Khóa luận
này chính là trình bày các bước thực hiện, từ khâu tìm hiểu, áp dụng và triển khai để
xây dựng nên ứng dụng Bowie. Không dừng lại ở đó, nhóm cịn mong muốn phát
hành ứng dụng trên các trang cửa hàng để có thể thu thập ý kiến đóng góp, phản hồi
từ người sử dụng, bổ sung và hoàn thiện vào kết quả báo cáo này.
2
Về cơ bản, chức năng của ứng dụng Bowie sẽ giải quyết các vấn đề sau:
-
Tổ chức sự kiện và chia sẻ lịch trình với mọi người sử dụng.
-
Xây dựng hệ thống kết nối mọi người tham gia hoạt động, sự kiện.
-
Theo dõi vị trí các hoạt động bằng định vị trên bản đồ.
-
Chọn lọc danh sách hoạt động hiển thị.
-
Cá nhân hóa tài khoản ứng dụng.
1.2. Mục tiêu của đề tài
-
Một là, nhằm tìm hiểu các kiến thức có liên quan, các công nghệ, thư viện cần
thiết để tạo nên một ứng dụng Hybrid Mobile App.
-
Hai là, vận dụng những điều đã tìm hiểu được để hiện thực Bowie, giải quyết
vấn đề đã nêu ra là giúp người dùng dễ dàng tìm kiếm hoạt động để tham gia
cùng mọi người xung quanh.
1.3. Phạm vi, đối tượng thực hiện
-
Phạm vi công nghệ: Hybrid Mobile App sử dụng các công nghệ sau:
o Frontend: React Native, Typescript
o Backend: Node.js
o Database: MongoDB, GraphQL
o Utilities: Google Map, Zustand, Apollo Client + Server.
-
Phạm vi không gian: Khu vực Làng đại học Quốc gia, Q. Thủ Đức, Tp. Hồ Chí
Minh.
-
Phạm vi thời gian: Từ ngày 01/10/2020 đến ngày 31/01/2021
-
Đối tượng hướng đến: Sinh viên hiện đang sinh sống và học tập trong phạm vi
khu vực được nói ở trên.
3
1.4. Kết quả mong đợi
-
Hiểu rõ, nắm vững và sử dụng công nghệ trong phạm vi của đề tài.
-
Xây dựng thành công các chức năng cơ bản của ứng dụng Bowie, đạt được mục
tiêu giải quyết bài toán đơn giản hóa việc gắn kết cộng đồng.
-
Phát hành, tiếp nhận phản hồi để phát triển và mở rộng ứng dụng trong tương
lai.
1.5. Bố cục của khóa luận
Khóa luận được bố cục như sau:
-
Danh mục hình.
-
Danh mục bảng.
-
Danh mục từ viết tắt, thuật ngữ.
-
Chương 1: Giới thiệu tóm tắt về lý do, mục tiêu, nội dung thực hiện và những
kết quả mong đợi sau khi thực hiện khóa luận.
-
Chương 2: Giới thiệu về các cơng nghệ được tìm hiểu và áp dụng trong khóa
luận.
-
Chương 3: Trình bày về q trình thiết kế, triển khai xây dựng, kiểm thử và
phát hành Ứng dụng gắn kết cộng đồng Bowie.
-
Chương 4: Tổng kết những thành quả đạt được và hướng phát triển trong tương
lai.
-
Tài liệu tham khảo.
4
Chương 2. XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU
2.1. Phát biểu bài tốn
Nói về vấn đề gắn kết mối quan hệ trong cộng đồng thông qua việc tham gia
các hoạt động cùng nhau, các mạng xã hội hiện tại như Facebook, Zalo hay rất
nhiều ứng dụng khác bên cạnh những ưu điểm nổi trội, thì tính năng cho phép người
dùng tạo hay tìm kiếm hoạt động phù hợp để tham gia vẫn còn nhiều hạn chế.
Facebook
Ưu điểm
Zalo
Ứng dụng khác
- Lượng người dùng
- Sự phổ biến với
- Đa dạng chức
cực kì lớn.
người dùng Việt
năng hỗ trợ tùy theo
- Tính quen thuộc và
Nam.
mục đích sử dụng.
được sử dụng rộng
- Có tính năng “Tìm
rãi.
quanh đây” hữu ích.
- Đa dạng chức
năng, tùy biến cao.
Nhược điểm
- Khó quản lý thành
- Khó kết bạn nếu
- Khơng được phổ
viên tham gia nhóm.
khơng có số điện
cập rộng rãi.
- Khó tiếp cận hoạt
thoại.
động mong muốn.
- Khó tạo và chia sẻ
hoạt động với mọi
người.
Bảng 2-1 Ưu và nhược điểm của các ứng dụng mạng xã hội hiện tại trong việc tạo
và tìm kiếm hoạt động
5
Vậy nên bài toán đặt ra là làm thế nào để người sử dụng có thể dễ dàng tìm
kiếm và tham gia vào các hoạt động dựa trên sở thích của mình, cũng như giữ được
tương tác với những người tham gia khác trước, trong và ngay cả sau thời gian diễn
ra hoạt động, tạo tiền đề gắn kết các mối quan hệ với mọi người xung quanh. Do đó
cần xây dựng một ứng dụng đáp ứng được tối thiểu 2 yêu cầu sau:
-
Cho phép người dùng tìm kiếm và đăng kí tham gia các hoạt động tùy theo mục
đích, nhu cầu của bản thân, đăng tải và chia sẻ hoạt động cá nhân với mọi người.
-
Cho phép kết nối, trao đổi và cập nhật thông tin với mọi người tham gia trong
cùng hoạt động.
2.2. Phân tích yêu cầu
2.2.1.
Yêu cầu chức năng
6
2.2.1.1. Yêu cầu lưu trữ
Yêu cầu
Người dùng
Chi tiết
Tên và mật khẩu đăng nhập, phương pháp xác thực
(email,...), thông tin cá nhân (số điện thoại, giới
tính, ảnh đại diện), danh sách các hoạt động tham
gia.
Hoạt động
Địa điểm diễn ra (điểm tọa độ, mô tả chi tiết), thời
gian (bắt đầu, kết thúc), chi tiết (tiêu đề, mơ tả hoạt
động, ảnh đính kèm), loại hoạt động (vui chơi, giải
trí, học tập...).
Loại hoạt động
Tên của loại hoạt động, số lượng sử dụng (dùng để
thống kê đề xuất)
Hình ảnh
Ảnh đại diện người dùng, ảnh mơ tả hoạt động,...
Tin nhắn
Thông tin xác định người gửi, thông tin xác định
nhóm chat, nội dung (tin nhắn, hình ảnh), thời gian
gửi.
Phiên hoạt động
Thông tin xác định người dùng, thời gian bắt đầu,
thời gian kết thúc.
Bảng 2-2 Bảng xác định yêu cầu lưu trữ của ứng dụng
7
2.2.1.2. u cầu tính tốn
u cầu
Phiên hoạt động
Chi tiết
Dựa vào thời gian bắt đầu và kết thúc để chấm dứt
phiên hoạt động của người dùng trên ứng dụng,
yêu cầu người dùng phải đăng nhập lại.
Số lượt sử dụng loại hoạt động Thống kê số lượt sử dụng của loại hoạt động, từ đó
đề xuất hoạt động dựa vào tần suất của loại hoạt
động đó.
Vùng hoạt động hiển thị
Tính tại điểm tọa độ của thiết bị, chỉ cho phép hiển
thị các hoạt động trong vùng có bán kính tối đa là
x (km) (thơng số có thể tùy chỉnh).
Thời gian khả dụng của hoạt
Dựa vào thời gian bắt đầu và kết thúc của hoạt
động
động, căn cứ vào thời điểm hiện tại để xác định
hoạt động cịn khả dụng hay khơng (chưa diễn ra
hoặc đang diễn ra), từ đó xác định cách hiển thị
hoạt động trên ứng dụng.
Bảng 2-3 Bảng xác định yêu cầu tính tốn của ứng dụng
8
2.2.1.3. Yêu cầu tra cứu
Yêu cầu
Tra cứu hoạt động
Chi tiết
Cho phép người dùng tra cứu hoạt động dựa vào từ
khóa ở ơ nhập liệu, hoặc tìm kiếm dựa trên loại
hoạt động. Kết quả tìm kiếm hiển thị danh sách các
hoạt động khả dụng trên bản đồ.
Tra cứu nhóm chat
Cho phép người dùng tìm kiếm nhóm chat đã tham
gia thơng qua từ khóa tiêu đề.
Bảng 2-4 Bảng xác định yêu cầu tra cứu của ứng dụng
2.2.1.4. Yêu cầu thống kê
Yêu cầu
Chi tiết
Thống kê số lượt sử dụng của
Đếm số lượt sử dụng của loại hoạt động, từ đó đề
loại hoạt động
xuất hoạt động dựa vào tần suất của loại hoạt động.
Bảng 2-5 Bảng xác định yêu cầu thống kê của ứng dụng
2.2.2.
u cầu phi chức năng
• Tính tiện dụng: Ứng dụng có thể chạy trên 2 nền tảng hệ điều hành di động là
iOS và Android, có giao diện trực quan và dễ sử dụng.
• Tính linh động: Tồn bộ cơ sở dữ liệu sẽ được sao lưu ở phía máy chủ, sử dụng
cloud database, có khả năng truy xuất cao, sao lưu và phục hồi dễ dàng.
• Tính bảo mật: Việc sử dụng các chức năng yêu cầu người dùng cần đăng nhập
vào ứng dụng.
9
2.3. Phương án thiết kế
2.3.1.
Các yêu cầu của hệ thống
2.3.1.1. Các yêu cầu căn bản, bắt buộc
-
Ứng dụng chạy được trên 2 nền tảng iOS và Android, cho phép người dùng tải
về qua trang cửa hàng ứng dụng hoặc file cài đặt.
-
Lưu trữ và quản lý tất cả các dữ liệu của ứng dụng.
-
Tìm kiếm, tra cứu thơng tin một cách tức thời (online và offline).
-
Có cơ chế bảo mật tài khoản người dùng.
-
Thông báo trạng thái (thành công, lỗi) của tiến trình xử lí u cầu người dùng.
2.3.1.2. Các yêu cầu cần thiết
-
Xin cấp phép quyền truy cập tọa độ thiết bị.
-
Tự động đăng nhập khi người dùng chưa kết thúc phiên đăng nhập hoặc chưa
đăng xuất khỏi ứng dụng.
2.3.1.3. Các yêu cầu mong muốn
-
Ứng dụng tương thích và hoạt động ổn định trên thiết bị người dùng.
-
Dễ dàng nâng cấp, bổ sung tính năng.
-
Đồng bộ với Facebook (authentication, social sharing, list friends...)
2.3.2.
Các ràng buộc của hệ thống
-
Tổng chi phí deploy ứng dụng phù hợp.
-
Thời gian hiện thực ứng dụng trong khoảng đã đề ra.
10
Chương 3. HIỆN THỰC ĐỀ TÀI
3.1. Thiết kế ứng dụng
3.1.1.
Kiến trúc chương trình
Hình 3-1 Sơ đồ kiến trúc của chương trình
11
Giải thích luồng chương trình:
-
Ứng dụng được viết bằng ngơn ngữ chính là Typescript, cung cấp khả năng lập
trình hướng đối tượng OOP với class-based programming, dễ phát triển và mở
rộng ứng dụng về sau.
-
GraphQL là một trong những cách hiện đại nhất để xây dựng và truy vấn các
APIs. Nó đơn giản là cú pháp để mơ tả các cách mà chúng ta truy vấn tới data,
thường là dùng để load data từ server tới client.
-
Frontend ở phía thiết bị người dùng sử dụng React Native với các components
cho khả năng xây dựng ứng dụng hybrid có thể chạy được trên 2 nền tảng iOS
và Android. Redux Store là một store lưu trữ toàn bộ state (trạng thái) của ứng
dụng. Mỗi component có thể truy cập trực tiếp đến state được lưu trữ thay vì
phải gửi props (thơng số, thuộc tính) từ component này đến component khác như
cách thơng thường.
-
Khi có request, GraphQL Apollo Client sẽ sử dụng bộ nhớ đệm Apollo Store để
tối ưu hóa hiệu suất, tránh việc phải thực hiện request khi mà kết quả đã có sẵn
rồi. Nếu khơng được tìm thấy, GraphQL Apollo Client sẽ gửi request đi dưới
dạng HTTP POST, và lưu kết quả trả về vào bộ nhớ đệm.
-
Ở phía server, Queries và Mutations được triển khai thông qua một API
Gateway và thực hiện các chức năng như Security (bảo mật), Throttling (điều
tiết băng thông), Caching (lưu trữ đệm)...
-
Các API sẽ gọi đến GraphQL server, hiện thực bằng NodeJS Express và
GraphQL Apollo Server. Server sẽ căn cứ vào schema (có chức năng xác định
API và định nghĩa cách client có thể yêu cầu dữ liệu), gọi tới Resolvers (các
function hiện thực chức năng của API đó).
-
Server sẽ truy xuất database MongoDB thơng qua thư viện MikroORM để lấy dữ
liệu cần thiết và gửi về kết quả.
12
3.1.2.
STT
Danh sách usecase
Ý nghĩa
Tên usecase
1 Đăng nhập
User đăng nhập với thông tin xác thực tài
khoản (username, password) để sử dụng
ứng dụng
2 Đăng ký tài khoản
User đăng ký tài khoản với các thông tin
(username, password, email) để sử dụng
ứng dụng
3 Đổi mật khẩu
User đổi mật khẩu xác thực tài khoản
4 Chỉnh sửa thông tin tài khoản
User xem và chỉnh sửa các trường thông tin
cho phép của tài khoản (ảnh đại diện, số
điện thoại, giới tính)
5 Cá nhân hóa cài đặt ứng dụng
User tùy chỉnh các thuộc tính của ứng dụng
như darkmode, language.
6 Đăng xuất
User đăng xuất tài khoản khỏi ứng dụng
7 Xem danh sách events
User xem danh sách các events đang và sắp
diễn ra bằng định vị trên bản đồ trong khu
vực tùy chỉnh
8 Xem thông tin của event
User xem các thông tin như tên, thời gian
diễn ra, người tham gia event
9 Lọc event
User sử dụng các tag tùy chỉnh để lọc ra
event có liên quan
10 Tìm kiếm event
User tìm kiếm event theo từ khóa trong
phạm vi 3km tại điểm định vị
11 Tạo event
User tạo một event với các thông tin về địa
điểm, giờ diễn ra, tags, ảnh bìa...
12 Tham gia event
User tham gia vào event sắp diễn ra
13 Event chatting
Những user tham gia vào chung một event
13
trao đổi, trò chuyện với nhau trong một box
chat
14
15
Bảng 3-1 Danh sách usecases
3.1.3.
Mơ tả usecase
3.1.3.1. Usecase Đăng nhập
o Tóm tắt: User đăng nhập để sử dụng ứng dụng với username và password.
o Dịng sự kiện chính:
1) Ứng dụng hiển thị màn hình đăng nhập.
2) User nhập thơng tin xác thực tài khoản gồm username và password và
ấn nút Đăng nhập.
3) Ứng dụng gửi yêu cầu đăng nhập đến server, server kiểm tra và trả về
kết quả xác thực.
4) Ứng dụng thông báo đăng nhập thành công và hiển thị màn hình trang
chủ.
o Dịng sự kiện phụ:
1) Nhập thiếu thơng tin: Ứng dụng kiểm tra các trường bắt buộc và yêu
cầu user nhập lại đầy đủ thông tin.
2) Thông tin xác thực không đúng: Ứng dụng thông báo thông tin đăng
nhập không đúng và yêu cầu người dùng nhập lại.
3) Đăng nhập thất bại (lỗi hệ thống): Ứng dụng thông báo lỗi hệ thống.
o Tiền điều kiện: Người dùng đã có tài khoản đăng nhập vào ứng dụng.
o Hậu điều kiện: Server lưu thông tin phiên đăng nhập của user (session) vào
database.
14