Please enable JavaScript.
Coggle requires JavaScript to display documents.
Phân rã chức năng - Ứng dụng nhắn tin (Chat (Group chat (Cấu trúc của một…
Phân rã chức năng - Ứng dụng nhắn tin
Chat
Private chat
Quá trình gửi tin nhắn
Client A gửi request chứa tin nhắn tới server
#
Server lưu trữ lại tin nhắn vào Database
#
Vào thời điểm client B online, server truy vấn tất cả các tin nhắn chưa đọc được gửi tới client B, và gửi thông báo tương ứng.
#
Nội dung tin nhắn hiển thị trên client A
#
Server hiển thị thông báo tin nhắn đã được gửi thành công tới client A
#
Nội dung tin nhắn hiển thị trên client B.
#
Client gửi lại thông báo tin nhắn đã được đọc
#
Server update trạng thái của tin nhắn và gửi về client A
Group chat
Cấu trúc của một group
ID của Group
Danh sách ID các thành viên
Tên Group
Ảnh đại diện của Group (có thể bỏ trống)
Quá trình gửi tin nhắn:
Tương tự như quá trình gửi trong private chat, nhưng với nhiều lần cập nhật trang thái của tin nhắn với nhiều người đọc hơn
Cấu trúc của một tin nhắn
Hiển thị với người dùng
Nội dung tin nhắn
Thời gian được gửi
Trạng thái gửi: đã gửi thành công hay chưa; đã được đọc hay chưa.
Nội dung đính kèm: ảnh, video, file
Hiển thị với ứng dụng
ID tin nhắn
ID người gửi, người nhận (hoặc nhóm được nhận)
Đã bị xóa đối với người dùng nào - tin nhắn luôn được lưu trữ trong Database để gửi cho những người dùng còn lại
Định dạng nội dung đính kèm (ảnh, video hay file)
Đường dẫn truy cập tới nội dung đính kèm
Tìm kiếm tin nhắn
Tìm kiếm bằng nội dung tin nhắn
Tìm kiếm nâng cao
Tin nhắn trong một cuộc hội thoại/nhóm nhất định
Tin nhắn trong một khoảng thời gian nhất định
Tin nhắn có loại nội dung đính kèm nhất định
Tài khoản người dùng
Cấu trúc dữ liệu người dùng
User Presence
Trạng thái hoạt động của người dùng
Offline
Không làm phiền
Online
Lưu trữ vào Database gắn liền với người dùng, để mọi người dùng đều truy cập được
Tự động nhận diện bởi ứng dụng, hoặc cài đặt bởi người dùng
Username
Password
Tên hiển thị
Avatar (có thể bỏ trống)
Mô tả về bản thân người dùng
ID Facebook (nếu có liên kết)
ID Gmail (nếu có liên kết)
Danh bạ
Login Method
Username/Password
Đăng nhập bằng dịch vụ bên thứ ba (Facebook, Google+)
Trích xuất tên người dùng, Avatar và mô tả từ các dịch vụ này
Tìm kiếm bạn bè
Truy vấn trên thanh tìm kiếm
Bạn bè từ dịch vụ bên thứ ba (Facebook, Google+)
Bạn bè từ danh bạ
Hỗ trợ nhiều định dạng nội dung tin nhắn
Các định dạng nội dung
Gửi file
Emoji - Sticker
Nhận diện đường dẫn trong nội dung tin nhắn
Trích xuất tiêu đề, nội dung ngắn gọn và ảnh minh họa nếu có
Hiển thị mô tả dưới nội dung tin nhắn
Trích xuất thời gian - lịch hẹn trong nội dung tin nhắn
Cấu trúc của đối tượng lịch hẹn
ID lịch hẹn
ID người khởi tạo
ID người/nhóm chat của lịch hẹn
Thời điểm
Nội dung
Video - hình ảnh
Xử lý tại client
Đối với các nội dung đính kèm (ảnh, video, file)
File gốc đính kèm lưu trữ tại server
File được lưu trữ trong folder với tên đặc biệt tránh xung đột
Đối với các tính năng dựa trên nội dung tin nhắn (nhận diễn đường dẫn, trích xuất thời gian - lịch hẹn)
Nội dung tin nhắn được xử lý trước khi render ở client
#
Bổ sung thêm anchor tag
<a>
tới địa chỉ hoặc script tương ứng
Phân tích yêu cầu
Các tính năng cần có
Tài khoản người dùng
Đăng nhập
Đăng nhập bằng dịch vụ bên thứ ba (Facebook, Google+)
Đăng nhập bằng username/password
Tương tác giữa người dùng
Danh bạ
Thêm hoặc bớt khỏi danh bạ
Chặn người dùng
Tìm kiếm bạn bè
Nhập danh sách bạn bè từ danh bạ hoặc các dịch vụ bên thứ ba
Trạng thái hoạt động:
Online, Offline hoặc không làm phiền
Chat
Các phương thức nhắn tin
Group chat:
Chat nhóm nhiều người dùng
Private chat:
1 vs 1
Thao tác với tin nhắn
Gửi và nhận tin
Nội dung đính kèm. Xem nội dung đính kèm.
Xóa tin nhắn (đối với một bên)
Nội dung tin nhắn đa phương tiện
Đính kèm hình ảnh, video hoặc file
Xem trước đường dẫn
Trích dẫn thời gian từ tin nhắn để tạo nhắc nhở
Tìm kiếm tin nhắn
Mô hình server-client
Server
Lưu trữ thông tin người dùng, nhóm, tin nhắn và các đối tượng đính kèm
Điều hướng tin nhắn từ người gửi tới người nhận
Xác nhận thông tin người dùng khi đăng nhập
Client
Lưu trữ danh bạ và nội các cuộc hội thoại của người dùng hiện thời
Render nội dung tin nhắn đa phương tiên từ dữ liệu được lưu trữ
Thông báo nhắc nhở được đặt bởi người dùng