Usecase quản lý album gia đình

Một phần của tài liệu Xây dựng ứng dụng sổ tay gia đình hỗ trợ tương tác (Trang 57)

Mơ tả Xem và thêm album, chỉnh sửa, xem và thêm ảnh mới vào album.

Người thực hiện Host, Member

Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng.

Dịng sự kiện chính Tại màn hình danh sách album, chọn chức năng “Thêm”, click nút “Hiện chức

32

năng với album” để chọn “Sửa” hoặc “Xoá” album.

Tại màn hiển thị chi tiết album, người dùng có thể chọn chức năng “Thêm ảnh vào album” hoặc “Chọn ảnh cần xoá”. Hậu điều kiện Cập nhật dữ liệu danh sách album và ảnh

của mỗi album.

33

3.3.2.7. Quản lý các công việc nhà

Hình 3.8: Use case quản lý cơng việc nhà Tên use case Quản lý công việc nhà

Mô tả Xem, thêm, tìm kiếm bằng từ khố, sắp xếp, chỉnh sửa, xố cơng việc.

Người thực hiện Host, Member

Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng.

Dịng sự kiện chính Tại màn hình danh sách cơng việc, người dùng có thể chọn các chức năng “Thêm”, “Tìm kiếm bằng từ khố”, “Sửa”, “Xố”,

34

“Xem chi tiết”, “Sắp xếp”, “Lọc” cơng việc.

Hậu điều kiện Cập nhật dữ liệu danh sách công việc. Bảng 3.9: Đặc tả use case quản lý công việc nhà

3.3.2.8. Quản lý sự kiện trong gia đình

35

Tên use case Quản lý sự kiện trong gia đình

Mơ tả Xem, thêm, tìm kiếm bằng từ khố, sắp xếp, chỉnh sửa, xố sự kiện.

Người thực hiện Host, Member

Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng.

Dịng sự kiện chính Tại màn hình thống kê các ngày có tổ diễn ra sự kiện, người dùng có thể chọn chức năng “Thêm” sự kiện.

Tại màn hình danh sách cơng việc, người dùng có thể chọn các chức năng “Tìm kiếm bằng từ khố”, “Sửa”, “Xố”, “Xem chi tiết”, “Sắp xếp”, “Lọc” sự kiện.

Hậu điều kiện Cập nhật dữ liệu danh sách sự kiện. Bảng 3.10: Đặc tả use case quản lý sự kiện trong gia đình

36

3.3.2.9. Quản lý thu chi hằng tháng

Hình 3.10: Use case quản lý thu chi hằng tháng Tên use case Quản lý thu chi hằng tháng Tên use case Quản lý thu chi hằng tháng

Mô tả Xem tổng thu và chi hằng tháng, thêm, xố, sửa, xem thơng tin chi tiết mục thu hoặc chi.

37

Người thực hiện Host, Member

Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng.

Dịng sự kiện chính Tại màn hình thống kê các mục thu chi theo từng tháng người dùng có thể “Thêm”, “Xố”, “Sửa”, “Xem chi tiết” mục thu chi. Và người dùng cũng có thể chọn chức năng “Thống kê thu chi theo từng danh mục”.

Hậu điều kiện Cập nhật dữ liệu danh sách các mục thu và chi.

38

3.3.2.10. Định vị các thành viên

Hình 3.11: Use case định vị các thành viên

Tên use case Định vị các thành viên trong gia đình

Tóm tắt Người dùng định vị được nhau một cách trực quan trên bản đồ điện tử

Actor Member, Host

Dịng sự kiện chính 1. Tại màn hình hiển thị thơng tin gia đình, người dùng chọn chức năng định vị các thành viên trong gia đình

39

2. Màn hình hiển thị bản đồ điện tử và đánh dấu vị trí của các thành viên trong gia đình.

Dịng sự kiện phụ 1. Thao tác thất bại(lỗi hệ thống), ứng dụng thông báo lỗi hệ thống. Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng.

Người dùng phải cấp quyền cho phép ứng dụng truy cập vị trí.

Hậu điều kiện Khơng.

40

3.3.2.11. Hỗ trợ tương tác

Hình 3.12: Use case hỗ trợ tương tác Tên use case Hỗ trợ tương tác Tên use case Hỗ trợ tương tác

Tóm tắt Người dùng có thể tương tác qua hình thức nhắn tin hoặc gọi video call

41

Dịng sự kiện chính Tại màn hình tương tác, người dùng có thể “Gửi tin nhắn” hoặc “Thực hiện cuộc gọi video”.

Dòng sự kiện phụ Không.

Tiền điều kiện Người dùng đã đăng nhập vào ứng dụng. Người dùng phải cấp quyền truy cập camera và microphone cho ứng dụng.

Hậu điều kiện Không.

42

3.3.2.12. Quản lý các bài viết ẩm thực

Hình 3.13: Use case quản lý các bài viết ẩm thực

Tên use case Quản lý các bài viết về ẩm thực

Mô tả Xem, thêm, tìm kiếm bằng từ khố, chỉnh sửa, xố, bình luận, đánh giá, lưu các bài viết ẩm thực

Người thực hiện Host, Member

43

Dịng sự kiện chính Tại màn hình hiển thị danh sách các bài viết, người dùng có thể chọn chức năng “Thêm” bài viết.

Tại màn hình danh sách cơng việc, người dùng có thể chọn các chức năng “Thêm”, “Tìm kiếm bằng từ khố”, “Sửa”, “Xố”, “Xem chi tiết”, “Bình luận”, “Đánh giá bài viết” sự kiện.

Hậu điều kiện Cập nhật dữ liệu danh sách sự kiện. Bảng 3.14: Đặc tả use case quản lý các bài viết ẩm thực

44

3.4. Thiết kế cơ sở dữ liệu

45

3.4.1. Bảng Users

Users

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã người dùng email Varchar(100) Null Địa chỉ email birthday Date Null Ngày sinh người

dùng isDeleted Boolean Not null Dữ liệu khả dụng

name Nvarchar(100) Not null Họ tên người dùng password Varchar Not null Mật khẩu username Varchar(100) Not null Tên tài khoản lastSentVerification DateTime Null Lần gửi mã xác

nhận gần nhất oneTimePassword Varchar(4) Null Mã otp

resetPwOtp Varchar(4) Null Mã otp reset mật khẩu resetPwOtpIssuedAt DateTime Null Thời điểm khởi

tạo mã otp gần nhất socialAccountType Integer Foreign key Loại tài khoản

avatar Varchar(250) Null Đường dẫn ảnh avatar Bảng 3.15: Users

46

3.4.2. Bảng Families

Families

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Not null Mã gia đình

thumbnail Varchar(250) Null Đường dẫn ảnh thumbnail gia đình name Nvarchar(100) Not null Tên gia đình defaultAlbum Long Foreign key Album mặc định

của gia đình isDeleted Boolean Not null Gia đình khả dụng

Bảng 3.16: Families

3.4.3. Bảng Albums

Albums

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Not null Mã album

familyId Long Foreign key Mã gia đình title Nvarchar(100) Not null Tên album createdAt DateTime Not null Thời điểm khởi

tạo

updatedAt DateTime Not null Thời điểm chỉnh sửa

description Nvarchar(100) Null Mô tả album isDeleted Boolean Not null Album khả dụng

47

3.4.4. Bảng Photos

Photos

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã ảnh

url Varchar(250) Not null Đường dẫn ảnh name Nvarchar(100) Not null Tên ảnh createdAt DateTime Not null Thời điểm khởi

tạo

updatedAt DateTime Not null Thời điểm chỉnh sửa

description Nvarchar(100) Null Mô tả album isDeleted Boolean Not null Album khả dụng

Bảng 3.18: Photos

3.4.5. Bảng PhotosInAlbums

PhotosInAlbums

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

albumId Long Primary key Mã album photoId Long Primary key,

Foreign key

Mã ảnh

isDeleted Boolean Not null Album khả dụng Bảng 3.19: PhotosInAlbums

48

3.4.6. Bảng UserFirebaseToken

UserFirebaseToken

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

userId Long Primary key, Foreign key

Mã người dùng

token Varchar(250) Not null Firebase token isDeleted Boolean Not null Album khả dụng longitude BigDecimal Null Kinh độ

latitude BigDecimal Null Vĩ độ Bảng 3.20: UserFirebaseToken

3.4.7. Bảng Chores

Chores

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã công việc familyId Long Foreign key Mã gia đình

title Nvarchar(100) Not null Tiêu đề công việc

descripition Text Null Mô tả

deadline DateTime Not null Thời hạn công việc repeatType Integer Foreign key Kiểu lặp lại

49

3.4.8. Bảng ChoreAlbums

ChoreAlbums

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã chore album choreId Long Foreign key Mã công việc nhà isDeleted Boolean Not null Album khả dụng

Bảng 3.22: ChoreAlbums

3.4.9. Bảng PhotosInChoreAlbums

PhotosInChoreAlbums

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

photoId Long Primary key, Foreign key

Mã ảnh

choreAlbumId Long Primary key, Foreign key

Mã album việc nhà isDeleted Boolean Not null Ảnh khả dụng

Bảng 3.23: PhotosInChoreAlbums

3.4.10. Bảng Events

Events

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã sự kiện familyId Long Foreign key Mã gia đình

title Nvarchar(100) Not null Tiêu đề công việc

50

from DateTime Not null Thời gian bắt đầu to DateTime Not null Thời gian kết thúc notified Boolean Not null Đã được thông

báo hay chưa repeatType Integer Foreign key Kiểu lặp lại repeatType Integer Foreign key Kiểu lặp lại repeatOccurences Integer Integer Số lần lặp

isDeleted Boolean Not null Sự kiện khả dụng Bảng 3.24: Events

3.4.11. Bảng GroupEvents

GroupEvents

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

headEventId Long Foreign key, Primary key

Mã sự kiện đầu

subEventId Long Foreign key, Primary key

Mã sự kiện con

isDeleted Boolean Not null Sự kiện khả dụng Bảng 3.25: GroupEvents

51

3.4.12. Bảng EventAlbums

EventAlbums

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã album sự kiện eventId Long Foreign key Mã sự kiện isDeleted Boolean Not null Album sự kiện

khả dụng Bảng 3.26: EventAlbums

3.4.13. Bảng PhotosInEvents

PhotosInEvents

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

photoId Long Primary key, Foreign key

Mã ảnh

eventAlbumId Long Foreign key, Primary key

Mã album ảnh

isDeleted Boolean Not null Album sự kiện khả dụng Bảng 3.27: PhotosInEvents

52

3.4.14. Bảng UsersInCallRooms

UsersInCallRooms

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

userId Long Primary key, Foreign key

Mã người dùng

roomName Varchar(50) Not null Tên phòng gọi isDeleted Boolean Not null Người dùng đang

trong cuộc gọi Bảng 3.28: UsersInCallRooms

3.4.15. Bảng Notifications

Notifications

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã thông báo familyId Long Foreign key Mã gia đình

userId Long Foreign key Mã người dùng type Varchar(50) Not null Loại thông báo title Nvarchar(100) Not null Tiêu đề thông báo description Nvarchar(250) Null Chi tiết thông báo isClicked Boolean Not null Thông báo đã xem createdAt DateTime Not null Thời điểm khởi

tạo thông báo navigate Varchar(30) Not null Chuyển màn hình

53

3.4.16. Bảng Transactions

Transactions

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã giao dịch categoryId Long Foreign key Mã gia đình

familyId Long Foreign key Mã gia đình type Varchar(50) Not null Loại giao dịch

title Nvarchar(100) Not null Tiêu đề giao dịch note Nvarchar(250) Null Ghi chú repeatType Varchar(30) Not null Chu kì lặp

date DateTime Not null Ngày giao dịch cost BigDecimal Not null Số tiền occurrences Integer Null Số lần lặp

createdAt DateTime Not null Thời điểm khởi tạo updatedAt DateTime Not null Thời điểm cập

nhật Bảng 3.30: Transactions

3.4.17. Bảng TransactionPhotos

TransactionPhotos

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã ảnh transactionId Long Foreign key Mã giao dịch

54

familyId Long Foreign key Mã gia đình url Varchar(250) Not null Đường dẫn ảnh isDeleted Boolean Not null Ảnh khả dụng

Bảng 3.31: TransactionPhotos

3.4.18. Bảng PhotosInTransactions

PhotosInTransactions

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

transactionId Long Foreign key, Primary key

Mã giao dịch

photoId Long Foreign key, Primary key

Mã ảnh

isDeleted Boolean Not null Ảnh khả dụng Bảng 3.32: PhotosInTransactions

3.4.19. Bảng TransactionCategories

TransactionCategories

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã danh mục giao dịch

familyId Long Foreign key Mã gia đình type Varchar(50) Not null Loại danh mục title Nvarchar(100) Not null Tiêu đề danh mục icon Varchar(250) Null Đường dẫn ảnh

55

Bảng 3.33: TransactionCategories

3.4.20. Bảng TransactionGroup

TransactionGroup

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

headId Long Primary key, Foreign key

Mã giao dịch đầu

subId Long Foreign key, Primary key

Mã giao dịch con

isDeleted Boolean Not null Bản ghi khả dụng Bảng 3.34: TransactionGroup

3.4.21. Bảng CuisinePosts

CuisinePosts

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

id Long Primary key Mã bài viết thumbnail Varchar(250) Not null Đường dẫn ảnh

thumbnail content Varchar(250) Not null Đường dẫn nội

dung bài viết author Long Foreign key Mã người dùng

title Nvarchar(100) Not null Tiêu đề bài viết angryVote Integer Not null Số vote angry

likeVote Integer Not null Số vote like yummyVote Integer Not null Số vote yummy

56

isDeleted Boolean Not null Bài viết khả dụng ratings Decimal Not null Số điểm bài viết createdAt DateTime Not null Thời điểm khởi

tạo updatedAt DateTime Not null Thời điểm cập

nhật Bảng 3.35: CuisinePosts

3.4.22. Bảng CuisinePostPool

CuisinePostPool

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

userId Long Primary key, Foreign key

Mã người dùng

cuisinePostId Long Primary key, Foreign key

Mã bài viết

showed Boolean Not null Bài viết đã được xem Bảng 3.36: CuisinePostPool

3.4.23. Bảng UserReactCuisinePost

UserReactCuisinePost

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

userId Long Primary key, Foreign key

Mã người dùng

57

Foreign key

reaction Integer Not null Loại reaction Bảng 3.37: UserReactCuisinePost

3.5. Thiết kế kiến trúc hệ thống

58

Back – end server: Được viết bằng Java(Spring Boot) và Python(Flask) sử

dụng cơ sở dữ liệu PostgreSQL để lưu trữ thông tin người dùng, lớp học,… Hosting sử dụng Google Cloud.

React Native: Dùng để xây dựng ứng dụng client trên hai nền tảng iOS và

Android.

Firebase: Dùng FiresAuth để xác thực tài khoản mạng xã hội và dùng

Firestore để lưu trữ tin nhắn gia đình.

59

3.6. Thiết kế giao diện

Đăng nhập

60 STT Tên thành phần Mô tả

1 Nút chọn đăng nhập với email

Chuyển hướng người dùng đến màn hình nhập email và password để đăng nhập

2 Nút chọn đăng nhập với Apple

Tự động đăng nhập với tài khoản Apple trên thiết bị

3 Nút chọn đăng nhập với Facebook

Chuyển sang màn hình chọn tài khoản Facebook để đăng nhập

4 Nút chọn đăng nhập với Google

Chuyển sang màn hình chọn tài khoản Google để đăng nhập

5 Nút đăng nhập Đăng nhập với email và password

6 Nút gợi ý đăng ký Gợi ý người dùng đăng ký tài khoản nếu chưa có 7 Nút quên mật khẩu Chuyển sang màn hình đặt lại mật khẩu

61

Đăng ký tài khoản

Hình 3.17: Giao diện đăng ký tài khoản STT Tên thành phần Mô tả STT Tên thành phần Mơ tả

1 Ơ nhập email Người dùng nhập email 2 Ô nhập tên Người dùng nhập tên 3 Ô nhập mật khẩu Người dùng nhập mật khẩu 4 Ô nhập xác nhận

mật khẩu

Người dùng nhập lại mật khẩu lần nữa

5 Nút đăng ký Đăng ký tài khoản với các thông tin đã nhập 6 Nút đăng ký bằng

Apple

Ứng dụng lấy thông tin tài khoản Apple để thực hiện đăng ký

7 Nút đăng ký bằng Facebook

Chuyển sang màn hình chọn tài khoản Facebook để đăng ký

62

Xác thực tài khoản

Hình 3.18: Giao diện xác thực tài khoản STT Tên thành phần Mô tả STT Tên thành phần Mơ tả

1 Ơ nhập mã xác thực

Người dùng nhập mã xác thực nhận được gửi về email đã dùng để đăng ký

2 Nút xác thực Xác thực với mã xác thực người dùng nhập 3 Nút gửi lại mã xác

thực

Hệ thống gửi lại mã xác thực vào email đã dùng để đăng ký

63

Đặt lại mật khẩu mới

Hình 3.19: Giao diện đặt lại mật khẩu mới STT Tên thành phần Mô tả STT Tên thành phần Mô tả

1 Ô nhập email mà người dùng muốn đặt lại mật khẩu

Người dùng nhập email để nhận mã xác thực trước khi đặt lại mật khẩu mới trong tình huống quên mật khẩu

2 Nút nhận mã xác thực

Hệ thống gửi lại mã xác thực vào email đã dùng để đăng ký

3 Ô nhập mật khẩu Người dùng nhập mật khẩu 4 Ô nhập xác nhận

mật khẩu

Người dùng nhập lại mật khẩu lần nữa

5 Nút đặt lại mật khẩu mới

Hệ thống cập nhật lại mật khẩu mới cho người dùng

64

Quản lý tài khoản cá nhân(Xem, cập nhật thơng tin cá nhân)

Hình 3.20: Giao diện quản lý thơng tin tài khoản các nhân STT Tên thành phần Mô tả

1 Nút cập nhật ảnh đại

Điều hướng người dùng đến màn hình chọn ảnh từ album hoặc chụp người camera để đổi ảnh đại diện mới

2 Nút thông tin cá nhân

Điều hướng người dùng đến màn hình cập nhật thơng tin cá nhân

3 Ơ nhập cập nhật số điện thoại

Hiển thị và cho phép chỉnh sửa trực tiếp số điện thoại

4 Ô nhập cập nhật tên

Hiển thị và cho phép chỉnh sửa trực tiếp tên

5 Ô nhập cập nhật ngày sinh

Hiển thị và cho phép chỉnh sửa trực tiếp ngày sinh

Một phần của tài liệu Xây dựng ứng dụng sổ tay gia đình hỗ trợ tương tác (Trang 57)