Danh sách use-case 1 Đăng ký tài khoản Người dùng có thể đăng ký tài khoản mới trên ứng dụng chăm sóc và nhận nuôi thú cưng.. 2 Đăng nhập Người dùng có thể đăng nhập vào tài khoản của mì
TỔNG QUAN VỀ ĐỀ TÀI
Lý do chọn đề tài
Với sự gia tăng nhu cầu chăm sóc thú cưng trong xã hội, việc cần một ứng dụng giúp giải quyết vấn đề liên quan đến nuôi thú cưng, bao gồm quản lý thông tin, chăm sóc sức khỏe, và tìm kiếm ngôi nhà mới cho những thú cưng cần được chăm sóc Ứng dụng mang lại giá trị thực tế và hữu ích cho cả những người chủ thú cưng hiện tại và những người muốn nhận nuôi thú cưng
Bên cạnh đó, việc tạo ra một cộng đồng trực tuyến cho những người yêu thú mong muốn tìm được một ngôi nhà mới cho thú cưng của mình hoặc những thú cưng bị bỏ rơi, bị lạc và kết nối với nhau thông qua sự chăm sóc thú cưng cũng là một điều rất cần thiết Chức năng trò chuyện và tư vấn tự động với bot chat mang lại sự tương tác và tiện ích cao, tạo ra trải nghiệm người dùng tốt và giải quyết những thắc mắc liên quan đến thú cưng một cách thuận lợi Tích hợp thông tin về các cơ sở thú y uy tín và cung cấp hướng dẫn chăm sóc thú cưng đúng cách, đồng thời tạo điều kiện cho việc nhận nuôi thú cưng, thể hiện cam kết với nguyên tắc trách nhiệm xã hội
Hơn thế nữa, với sự gia tăng nhu cầu chăm sóc thú cưng, ứng dụng có tiềm năng thu hút một lượng người dùng lớn, mở ra cơ hội kinh doanh thông qua quảng cáo, đối tác hợp tác, và các dịch vụ tư vấn thú cưng
Chính vì những lý do trên, nhóm đã quyết định chọn thực hiện đề tài “Ứng dụng chăm sóc và nhận nuôi thú cưng”.
Mục đích
Xây dựng một ứng dụng về thú cưng, tạo ra một môi trường trực tuyến hoàn chỉnh để hỗ trợ người chủ thú cưng trong việc quản lý và chăm sóc thú cưng của họ, đồng thời kết nối những người muốn nhận nuôi với những thú cưng cần tìm nhà mới, tìm lại những thú cưng không may bị lạc.
Phạm vi nghiên cứu
Triển khai sản phẩm đề tài trên môi trường ứng dụng di động
Bao gồm 2 chức năng chính là chăm sóc thú cưng và cho/nhận nuôi thú cưng Đối với chức năng chăm sóc thú cưng sẽ gồm các phần chính là:
Bảng 1.1 Bảng chức năng chăm sóc thú cưng
Quản lý thú cưng của bản thân
Thêm hình ảnh, thông tin về thú cưng của bản thân mình Quản lý lịch tiêm ngừa
Cẩm nang thú cưng Chia sẻ những thông tin, cách chăm sóc, cho/nhận các loại thú cưng
Tư vấn các vấn đề liên quan
Tích hợp bot chat (Microsoft Bot Framework) dể trả lời các câu hỏi có sẵn hoặc người dùng có thể nhập những thông tin cần tham khảo
Tìm kiếm các cơ sở thú y gần đây
Tìm kiếm thông tin địa chỉ, tên,… của các cơ sở thú y gần vị trí hiện tại của mình Được lấy từ Google Maps và Geoapify Đối với chức năng cho/nhận nuôi thú cưng:
− Quản lý thông tin về thú cưng muốn nhận nuôi hoặc đem cho (tên, tuổi, giống loài, tiêm ngừa,…)
− Danh sách thú cưng được đăng tải (tìm kiếm, sắp xếp hồ sơ tương thích nhất với thú cưng mong muốn)
− Trò chuyện giữa người cho và người nhận nuôi
Bảng 1.2 Bảng chức năng cho/nhận thú cưng
Quản lý thông tin Quản lý thông tin về thú cưng được nhận nuôi bao gồm hình ảnh, tên, giống loài, tuổi, cân nặng, vị trí, tình trạng tiêm ngừa,… Đăng bài tìm kiếm thú cưng bị thất lạc Đăng bài tiếm kiếm thú cưng bị thất lạc bao gồm hình ảnh, tên, thông tin về giống loài,…
Trò chuyện giữa người cho và người nhận
Người cho và nhận có thể trao đổi trực tiếp với nhau bằng trò chuyện theo thời gian thực (real time)
Người dùng có thể liên hệ với nhau bằng số điện thoại
Xác nhận/từ chối Người dùng có thể chấp nhận yêu cầu nhận nuôi từ người khác Và bài đăng được đăng tải trước đó sẽ bị gỡ xuống Người dùng cũng có thể từ chối yêu cầu nhận nuôi vì một số lý do nào đó.
Kế hoạch thực hiện
− Phác thảo sơ lược mô hình dữ liệu
− Lên kế hoạch thực hiện
− Phân tích đặc tả yêu cầu
1.4.2 Kế hoạch chi tiết - áp dụng quy trình phát triển phần mềm
− Phác thảo sơ lược mô hình dữ liệu
+ Phân tích đối tượng và các thuộc tính
+ Vẽ mô hình sơ đồ lớp
− Lên kế hoạch thực hiện và khảo sát hiện trạng:
+ Phân tích tính khả thi và cách thức thực hiện
+ Thu thập thông tin và rút ra yêu cầu phần mềm
− Phân tích đặc tả yêu cầu: Dựa trên các đặc tả yêu cầu đã thu thập được để phác thảo UI sơ lược để dễ thực hiện code
+ Vẽ use-case: phân tích nghiệp vụ tổng quan
+ Vẽ sơ đồ Sequence Diagram (Sơ đồ tuần tự)
+ Xác định kiến trúc hệ thống
+ Phân tích dữ liệu dựa trên yêu cầu người dùng
+ Kết quả đầu ra là tài liệu thiết kế dữ liệu, dùng để phục vụ viết thiết kế + database
+ Vẽ giao diện màn hình cũng như phân tích thiết kế xử lý dựa trên yêu cầu người dùng
+ Kết quả đầu ra là tài liệu thiết kế giao diện, dùng để phục vụ viết thiết kế giao diện (UI) cho sản phẩm
+ Phân chia nhiệm vụ code dựa theo các yêu cầu
+ Tạo các test case để test hệ thống chạy tốt hay chưa
− Cách tổ chức quản lý các thành viên:
Team chúng em cùng thảo luận, họp bàn để phân công, phân chia tìm hiểu kiến thức về mỗi giai đoạn Mỗi bạn trong nhóm sẽ có vai trò riêng Khi đã nắm được kiến thức về giai đoạn mình tìm hiểu Tiến hành training và thực hiện ngay Sau mỗi giai để hoàn thiện hay sửa lỗi rồi mới tiếp tục tới tiếp theo Cứ như vậy cho tới khi hoàn thành hết tất cả các giai đoạn, nhóm em sẽ báo cáo cuối kỳ
1.4.2.2 Công cụ quản lý và thực hiện đồ án
− Facebook – Messenger: Nơi thông báo các việc quan trọng
− Google Meet: Meeting trao đổi giữa các thành viên
Bảng kế hoạch dự kiến
Bảng 1.3 Bảng kế hoạch dự kiến
Cột mốc Công việc Hoàn thành
Thống nhất đề tài đồ án
X Đề tài: Ứng dụng chăm sóc và nhận nuôi thú cưng
Phân tích, đặt tả yêu cầu
Phân tích đặc tả danh sách yêu cầu được đưa ra
Biểu mẫu và quy định
Biểu đồ luồng xử lý dữ liệu
Mô tả dòng sự kiện
Thiết kế sơ đồ lớp X Sơ đồ lớp tổng thể Thiết kế sơ đồ logic
X Sơ đồ logic hoàn chỉnh
Thiết kế cơ sở dữ liệu
Lập danh sách các màn hình
X Bảng danh sách các màn hình
Vẽ sơ đồ liên kết giữa các màn hình
X Sơ đồ liên kết giữa các màn hình
Lập mô tả của từng màn hình
X Bản vẽ giao diện các màn hình
Bảng mô tả các đối tượng trên màn hình
Cài đặt cơ sở dữ liệu
X Cơ sở dữ liệu hoàn chỉnh
Code Front-end X Giao diện ứng dụng, API & L Code Back-end X Các chức năng được đưa ra
Tiến hành thử nghiệm các chức năng phần mềm với dữ liệu mẫu
X Tạo ra các test case để kiểm thử tính tối ưu của phần mềm
Hoàn thành báo cáo cuối kỳ
Slide powerpoint File báo cáo word
PHÂN TÍCH VÀ THIẾT KẾ
Thiết kế hệ thống
Hình 2.1 Sơ đồ use-case tổng quát
STT Tên Use Case Ý nghĩa/Ghi chú
1 Đăng ký tài khoản Người dùng có thể đăng ký tài khoản mới trên ứng dụng chăm sóc và nhận nuôi thú cưng
2 Đăng nhập Người dùng có thể đăng nhập vào tài khoản của mình trên ứng dụng chăm sóc và nhận nuôi thú cưng
3 Đăng xuất Người dùng có thể đăng xuất khỏi tài khoản của mình
4 Quên mật khẩu Người dùng có thể khôi phục mật khẩu của mình qua số điện thoại
5 Đổi mật khẩu Người dùng có thể đổi mật khẩu của mình sau khi đã đăng nhập
6 Thay đổi thông tin tài khoản
Người dùng có thể thay đổi thông tin cá nhân trên tài khoản của mình
7 Đăng bài Người dùng có thể đăng bài viết mới để thông báo về việc nhận nuôi hoặc tìm thú cưng
8 Quản lý bài đăng Người dùng có thể quản lý các bài viết đã đăng, bao gồm sửa đổi, xóa bài viết và xem trạng thái của bài đăng
9 Gửi/hủy yêu cầu nhận nuôi
Người dùng có thể gửi yêu cầu nhận nuôi đến chủ nhân của bài đăng nhận nuôi
10 Quản lý yêu cầu nhận nuôi
Chủ nhân của bài đăng nhận nuôi có thể quản lý các yêu cầu nhận nuôi như chấp nhận hoặc từ chối
11 Thao tác với bài đăng
Người dùng có thể thực hiện các thao tác như thêm hoặc gỡ bài đăng vào danh sách yêu thích
12 Tìm kiếm bài đăng Người dùng có thể tìm kiếm bài đăng theo các loại thú cưng phù hợp hoặc bộ lọc phù hợp
13 Gửi tin nhắn Người dùng có thể gửi tin nhắn cho nhau
14 Chat bot Người dùng có thể chat với bot để nhận tư vấn về tình trạng sức khỏe của thú cưng
15 Xem cẩm nang chăm sóc thú cưng
Người dùng có thể xem cẩm nang và hướng dẫn chăm sóc thú cưng
16 Thú y gần mình Người dùng có thể xem danh sách các thú y gần địa điểm của mình
17 Quản lý yêu cầu nhận nuôi
Người dùng có thể quản lý các yêu cầu nhận nuôi cho bài đăng thú cưng của mình
2.1.1.2 Đặc tả use-case Đăng ký tải khoản
Use Case Name Đăng ký tải khoản
Description Người dùng có thể đăng ký tài khoản mới trên ứng dụng chăm sóc và nhận nuôi thú cưng
Actor(s) Người dùng chưa có tài khoản
Pre-Condition(s) Người dùng chưa có tài khoản trên hệ thống
Post-Condition(s) Tài khoản mới được tạo và người dùng đã đăng nhập vào hệ thống Đăng nhập
Use Case Name Đăng nhập
Description Người dùng có thể đăng nhập vào tài khoản của mình để truy cập các tính năng và thông tin cá nhân
Actor(s) Người dùng đã có tài khoản
Pre-Condition(s) Người dùng đã có tài khoản hợp lệ trên hệ thống
Post-Condition(s) Người dùng đã đăng nhập thành công vào tài khoản của mình
1 Người dùng truy cập trang đăng nhập
2 Người dùng nhập email và mật khẩu
3 Hệ thống xác minh thông tin đăng nhập
4 Hệ thống đăng nhập người dùng và chuyển hướng đến trang chính
3a Nếu thông tin đăng nhập không chính xác, hiển thị thông báo lỗi
3b Nếu người dùng chưa xác minh email, hiển thị thông báo yêu cầu xác minh trước khi đăng nhập
Exception Flow Nếu hệ thống gặp lỗi trong quá trình đăng nhập, hiển thị thông báo lỗi và yêu cầu thử lại Đăng xuất
Use Case Name Đăng xuất
Description Người dùng có thể đăng xuất khỏi tài khoản của mình
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Người dùng đã đăng xuất khỏi tài khoản
Use Case Name Quên mật khẩu
Description Người dùng có thể khôi phục mật khẩu của mình thông qua số điện thoại đã đăng ký
Actor(s) Người dùng đã có tài khoản nhưng quên mật khẩu
Pre-Condition(s) Người dùng đã có tài khoản trên hệ thống
Post-Condition(s) Số điện thoại đặt lại mật khẩu được gửi đến người dùng
1 Người dùng truy cập trang quên mật khẩu
2 Người dùng nhập email của mình
3 Hệ thống kiểm tra và gửi email đặt lại mật khẩu
4 Người dùng mở email và thực hiện đặt lại mật khẩu
3a Nếu email không tồn tại, hiển thị thông báo lỗi
3b Nếu người dùng chưa xác minh email, hiển thị thông báo yêu cầu xác minh trước khi đặt lại mật khẩu
Exception Flow Nếu hệ thống gặp lỗi trong quá trình xử lý, hiển thị thông báo lỗi và yêu cầu thử lại Đổi mật khẩu
Use Case Name Đổi mật khẩu
Description Người dùng có thể đổi mật khẩu của mình thông qua số điện thoại đã đăng ký
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Mật khẩu của người dùng đã được thay đổi
1 Người dùng truy cập trang thay đổi mật khẩu
2 Người dùng nhập mật khẩu cũ và mật khẩu mới
3 Hệ thống kiểm tra và thay đổi mật khẩu
4 Hiển thị thông báo thành công
3a Nếu mật khẩu cũ không chính xác, hiển thị thông báo lỗi 3b Nếu mật khẩu mới không đáp ứng yêu cầu an toàn, hiển thị thông báo yêu cầu nhập mật khẩu mới
Exception Flow Nếu hệ thống gặp lỗi trong quá trình xử lý, hiển thị thông báo lỗi và yêu cầu thử lại
Thay đổi thông tin tài khoản
Use Case Name Thay đổi thông tin tài khoản
Description Người dùng có thể thay đổi thông tin cá nhân trên tài khoản của mình
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Thông tin cá nhân của người dùng đã được cập nhật
1 Người dùng truy cập trang thay đổi thông tin tài khoản
2 Người dùng thay đổi thông tin cần sửa đổi (tên, địa chỉ, ảnh đại diện, v.v.)
3 Hệ thống kiểm tra và cập nhật thông tin
4 Hiển thị thông báo thành công
Alternative Flow 3a Nếu có lỗi trong quá trình kiểm tra hoặc cập nhật thông tin, hiển thị thông báo lỗi và yêu cầu người dùng thử lại
Exception Flow Nếu hệ thống gặp lỗi trong quá trình xử lý, hiển thị thông báo lỗi và yêu cầu thử lại Đăng bài
Use Case Name Đăng bài
Description Người dùng có thể đăng bài viết mới để thông báo về việc nhận nuôi hoặc tìm thú cưng
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Bài viết mới đã được đăng và xuất hiện trên trang chủ
1 Người dùng truy cập trang đăng bài
2 Người dùng nhập thông tin cần thiết cho bài viết (tên thú cưng, loại, giống, giới tính, địa chỉ, v.v.)
3 Hệ thống kiểm tra và lưu trữ thông tin bài viết mới
4 Hiển thị thông báo thành công và chuyển hướng đến trang quản lý bài đăng của người dùng
Alternative Flow 2a Nếu thiếu thông tin hoặc sai thông tin, hiển thị thông báo lỗi và yêu cầu người dùng thử lại
Exception Flow Nếu hệ thống gặp lỗi trong quá trình xử lý, hiển thị thông báo lỗi và yêu cầu thử lại
Use Case Name Quản lý bài đăng
Description Người dùng có thể quản lý các bài viết đã đăng, bao gồm sửa đổi, xóa bài viết và xem trạng thái của bài đăng
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình và đã có ít nhất một bài đăng
Post-Condition(s) Thay đổi (sửa, xóa) được áp dụng vào bài đăng và có thể thấy
1 Người dùng truy cập trang quản lý bài đăng
2 Người dùng chọn bài viết cần sửa hoặc xóa
3 Hệ thống hiển thị thông tin chi tiết của bài đăng và cung cấp các tùy chọn sửa đổi hoặc xóa
4 Người dùng chọn thực hiện tùy chọn (sửa đổi hoặc xóa)
5 Hệ thống thực hiện thay đổi và hiển thị thông báo kết quả
Alternative Flow 4a Nếu thiếu thông tin hoặc sai thông tin, hiển thị thông báo lỗi và yêu cầu người dùng thử lại
Exception Flow Nếu hệ thống gặp lỗi trong quá trình xử lý, hiển thị thông báo lỗi và yêu cầu thử lại
Gửi yêu cầu nhận nuôi
Use Case Name Gửi yêu cầu nhận nuôi
Description Người dùng có thể gửi yêu cầu nhận nuôi đến chủ nhân của bài đăng nhận nuôi
Actor(s) Người dùng đã đăng nhập
Người dùng đã đăng nhập vào tài khoản của mình và có ít nhất một bài đăng được hiển thị và người dùng chưa gửi yêu cầu đến bài đăng đó
Post-Condition(s) Yêu cầu nhận nuôi đã được gửi và có thể được xem trong trang quản lý yêu cầu nhận nuôi
1 Người dùng truy cập bài đăng nhận nuôi mà họ muốn nhận nuôi
2 Người dùng chọn tùy chọn "Gửi Yêu Cầu Nhận Nuôi"
3 Hệ thống hiển thị biểu mẫu yêu cầu nhận nuôi với thông tin đã được điền sẵn từ bài đăng
4 Người dùng kiểm tra thông tin và xác nhận gửi yêu cầu
5 Hệ thống gửi yêu cầu đến chủ nhân của bài đăng và hiển thị thông báo thành công
Quản lý yêu cầu nhận nuôi
Use Case Name Quản lý yêu cầu nhận nuôi
Description Chủ nhân của bài đăng nhận nuôi có thể quản lý các yêu cầu nhận nuôi như chấp nhận hoặc từ chối
Actor(s) Chủ nhân bài đăng
Pre-Condition(s) Chủ nhân bài đăng đã đăng nhập và có ít nhất một yêu cầu nhận nuôi
Post-Condition(s) Trạng thái của yêu cầu nhận nuôi được cập nhật và thông báo đến người gửi yêu cầu
1 Chủ nhân bài đăng truy cập trang quản lý yêu cầu nhận nuôi
2 Chủ nhân bài đăng chọn yêu cầu nhận nuôi cần xử lý
3 Hệ thống hiển thị thông tin chi tiết của yêu cầu và
4 Chủ nhân bài đăng chọn thực hiện tùy chọn (chấp nhận hoặc từ chối)
5 Hệ thống cập nhật trạng thái của yêu cầu và thông báo kết quả cho cả chủ nhân và người gửi yêu cầu
Thao tác với bài đăng
Use Case Name Thao tác với bài đăng
Description Người dùng có thể thực hiện các thao tác như thêm hoặc gỡ bài đăng vào danh sách yêu thích
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình và có ít nhất một bài đăng
Post-Condition(s) Thay đổi (thêm hoặc gỡ) đã được áp dụng vào danh sách yêu thích của người dùng
1 Người dùng truy cập bài đăng mà họ muốn thực hiện thao tác
2 Người dùng chọn tùy chọn "Thêm vào Yêu Thích" hoặc "Gỡ khỏi Yêu Thích"
3 Hệ thống thực hiện thay đổi và hiển thị thông báo kết quả
Alternative Flow 2a Nếu bài đăng không tồn tại hoặc người dùng không có quyền truy cập, hiển thị thông báo lỗi
Use Case Name Tìm kiếm bài đăng
Description Người dùng có thể tìm kiếm bài đăng theo các loại thú cưng phù hợp hoặc địa chỉ phù hợp
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình và có ít nhất một bài đăng
Post-Condition(s) Kết quả tìm kiếm được hiển thị cho người dùng
1 Người dùng truy cập trang tìm kiếm bài đăng
2 Người dùng nhập thông tin tìm kiếm (loại thú cưng, địa chỉ, v.v.)
3 Hệ thống thực hiện tìm kiếm và hiển thị kết quả
Gửi tin nhắn và gọi điện
Use Case Name Gửi tin nhắn và gọi điện
Description Người dùng có thể gửi tin nhắn và gọi điện thoại cho nhau
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Tin nhắn được gửi hoặc cuộc gọi được thực hiện ngoài ứng dụng
1 Người dùng truy cập trang thông tin người dùng hoặc trang chi tiết bài đăng
2 Người dùng chọn tùy chọn "Gửi Tin Nhắn" hoặc "Gọi Điện Thoại"
3 Hệ thống chuyển hướng người dùng đến ứng dụng tin nhắn hoặc ứng dụng điện thoại
4 Người dùng gửi tin nhắn hoặc thực hiện cuộc gọi
Use Case Name Chat bot
Description Người dùng có thể chat với bot để nhận tư vấn về tình trạng sức khỏe của thú cưng
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Người dùng nhận được tư vấn từ bot
1 Người dùng truy cập tính năng chat với bot
2 Người dùng nhập câu hỏi hoặc mô tả tình trạng của thú cưng
3 Bot phản hồi và cung cấp tư vấn hoặc hướng dẫn
Xem cẩm nang chăm sóc thú cưng
Use Case Name Xem cẩm nang chăm sóc thú cưng
Description Người dùng có thể xem cẩm nang và hướng dẫn chăm sóc thú cưng
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Hiển thị cẩm nang chăm sóc thú cưng
1 Người dùng truy cập trang cẩm nang chăm sóc thú cưng
2 Người dùng chọn loại thú cưng hoặc chủ đề quan tâm
3 Hệ thống hiển thị thông tin chi tiết và hướng dẫn chăm sóc
Use Case Name Xem thú y gần mình
Description Người dùng có thể xem danh sách các thú y gần địa điểm của mình
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình
Post-Condition(s) Người dùng đã xem thông tin về các thú y gần địa điểm của mình
Basic Flow 1 Người dùng truy cập trang xem thú y gần mình
2 Người dùng cung cấp địa điểm hoặc hệ thống sử dụng địa điểm hiện tại của người dùng
3 Hệ thống hiển thị danh sách các thú y gần địa điểm cung cấp
Quản lý yêu cầu nhận nuôi
Use Case Name Quản lý yêu cầu nhận nuôi
Description Người dùng có thể xem các yêu cầu nhận nuôi thú cưng của mình đã gửi và hủy gửi yêu cầu nhận nuôi
Actor(s) Người dùng đã đăng nhập
Pre-Condition(s) Người dùng đã đăng nhập vào tài khoản của mình và đã có ít nhất một bài đăng nhận nuôi
Post-Condition(s) Người dùng xem các yêu cầu nhận nuôi thú cưng của mình đã gửi hoặc hủy gửi yêu cầu nhận nuôi
1 Người dùng truy cập trang xem yêu cầu đã gửi
2 Người dùng chọn xem hoặc hủy yêu cầu
3 Hệ thống hiển thị lại cập nhật mới nhất
Hình 2.2 Sơ đồ tuần tự đăng ký tài khoản
Hình 2.3 Sơ đồ tuần tự quên mật khẩu
Hình 2.4 Sơ đồ tuần tự đổi mật khẩu
Hình 2.5 Sơ đồ tuần tự thay đổi thông tin tài khoản
Hình 2.6 Sơ đồ tuần tự đăng bài
Hình 2.7 Sơ đồ tuần tự quản lý bài đăng
Hình 2.8 Sơ đồ tuần tự gửi yêu cầu nhận nuôi
Hình 2.9 Sơ đồ tuần tự quản lý yêu cầu của bài đăng
Hình 2.10 Sơ đồ tuần tự nhắn tin
Hình 2.11 Sơ đồ hoạt động đăng ký tài khoản
Hình 2.12 Sơ đồ hoạt động quên mật khẩu
Hình 2.13 Sơ đồ hoạt động đổi mật khẩu
Hình 2.14 Sơ đồ hoạt động đăng nhập
Hình 2.15 Sơ đồ hoạt động thay đổi thông tin tài khoản
Hình 2.16 Sơ đồ hoạt động đăng bài
Hình 2.17 Sơ đồ hoạt động quản lý bài đăng
Hình 2.18 Sơ đồ hoạt động gửi yêu cầu nhận nuôi
Hình 2.19 Sơ đồ hoạt động quản lý yêu cầu của bài đăng
Hình 2.20 Sơ đồ hoạt động nhắn tin
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 postID string NOT NULL ID bài đăng
3 image string NOT NULL Hình ảnh
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 speciesID string NOT NULL ID loại thú cưng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 userID string NOT NULL Người đăng bài
3 petName string NOT NULL Tên thú cưng
4 speciesID string NOT NULL Loại thú cưng
5 breedID string NOT NULL Giống thú cưng
6 sex string NOT NULL Giới tính
7 age number NOT NULL Tuổi
8 weight string NOT NULL Cân nặng
9 province string NOT NULL Tỉnh, Thành Phố
10 district string NOT NULL Quận, Huyện
11 isAdopt boolean NOT NULL Nhận nuôi/thất lạc
12 isDone boolean NOT NULL Trạng thái bài đăng
13 isVaccinated boolean NOT NULL Tình trạng vaccine
14 receiverID number NOT NULL Người nhận nuôi
3 breedName string NOT NULL Giống thú cưng 2.1.4.4 Lớp FavoritePost
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 postID string NOT NULL ID bài đăng
3 userID string NOT NULL ID người dùng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 speciesName string NOT NULL Loại thú cưng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 petID string NOT NULL ID thú cưng
3 image string NOT NULL Hình ảnh
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 petID string NOT NULL ID thú cưng
3 type string NOT NULL Loại
4 date date NOT NULL Ngày tiêm
5 note string NOT NULL Ghi chú
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 petName string NOT NULL Tên thú cưng
3 age number NOT NULL Tuổi
5 species string NOT NULL Loại thú cưng
6 breed string NOT NULL Giống thú cưng
7 weight string NOT NULL Cân nặng
8 description string NOT NULL Mô tả
9 userID string NOT NULL Người dùng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 senderID string NOT NULL Người gửi
3 receiverID string NOT NULL Người nhận
4 messageContent string NOT NULL Nội dung
5 timestamp date NOT NULL Thời gian
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 name string NOT NULL Họ tên
3 province string NOT NULL Tỉnh
4 district string NOT NULL Quận, Huyện
5 password string NOT NULL Mật khẩu
6 avatar string NOT NULL Ảnh đại diện
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
2 postID string NOT NULL ID bài đăng
3 userID string NOT NULL Người gửi yêu cầu
Hình 2.22 Sơ đồ mối quan hệ thực thể
Danh sách các màn hình
Hình 2.24 Màn hình Chat History
Hình 2.25 Màn hình Chat Detail
Hình 2.28 Màn hình Pet Adoption
Hình 2.29 Màn hình Pet Detail
Hình 2.30 Màn hình Add Post
Hình 2.31 Màn hình Pet Care
Hình 2.32 Màn hình Bot Chat
2.2.11 Màn hình Profile/My Pet
Hình 2.33 Màn hình Profile/My Pet
2.2.12 Màn hình Add My Pet
Hình 2.34 Màn hình Add My Pet
Hình 2.35 Màn hình Profile/Favorite
2.2.14 Màn hình Profile/My Posts
Hình 2.36 Màn hình Profile/My Posts
Hình 2.37 Màn hình Profile/Request
Hình 2.38 Màn hình Profile/Detail
CÔNG NGHỆ SỬ DỤNG VÀ KẾT QUẢ SẢN PHẨM
Công cụ sử dụng
- Ngôn ngữ sử dụng: Typescript
- Công cụ thiết kế UI/UX: Figma
- Cơ sở dữ liệu: SQL, Azure SQL Database
- Công nghệ sử dụng: React Native, NET, Microsoft Bot Framework
Mô hình client – server
Client server là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy khách (client) và máy chủ (server) Server chính là nơi giúp lưu trữ tài nguyên cũng như cài đặt các chương trình dịch vụ theo đúng như yêu cầu của client Ngược lại, Client bao gồm máy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến server
- Ưu điểm của mô hình client-server: o Tập trung: Ưu điểm đầu tiên của mô hình Client Server kiểu mạng khách chủ đó chính là khả năng kiểm soát tập trung (Centralization) đã được tích hợp sẵn Theo như mô hình này thì tất cả mọi thông tin cần thiết đều sẽ được đặt ở một vị trí duy nhất Đây là một ưu điểm vô cùng hữu ích được những người quản trị viên mạng yêu thích bởi vì họ có thể toàn quyền quản lý cũng như điều hành mọi việc Tính năng này giúp cho mọi sự cố trong mạng đều sẽ được giải quyết ở cùng một nơi thống nhất Đồng thời, việc cập nhật cơ sở tài nguyên, dữ liệu cũng sẽ dễ dàng hơn rất nhiều o Bảo mật: Trong mạng Client Server, tất cả các dữ liệu đều sẽ được bảo vệ một cách tối đa nhờ vào hệ thống kiến trúc tập trung của mạng Thông qua đó, nó sẽ giúp người dùng kiểm soát truy cập để chỉ có những ai được cấp quyền truy cập thì mới được thực hiện các thao tác cần thiết Muốn làm như vậy, chúng ta cần phải áp đặt thông tin đăng nhập cũng như Username hay Password Bên cạnh đó, nếu dữ liệu của chúng ta bị mất thì các file sẽ được khôi phục một cách vô cùng dễ dàng chỉ từ một bản sao lưu duy nhất mà thôi o Khả năng mở rộng: Mô hình mạng kết nối Client Server có khả năng mở rộng vô cùng tốt Chỉ cần người dùng cần sử dụng bất cứ lúc nào thì họ cũng có thể tăng được số lượng tài nguyên của mình Ví dụ như số Client hoặc Server Nhờ đó mà chúng ta có thể tăng kích thước của Server một cách dễ dàng mà không bị gián đoạn nhiều o Khả năng truy cập: Hoàn toàn không hề có sự phân biệt giữa các vị trí hay nền tảng với nhau Tất cả mọi Client đều có khả năng đăng nhập được vào hệ thống mạng máy tính Điều này sẽ giúp cho tất cả các nhân viên đều có thể truy cập thông tin của công ty một cách dễ dàng mà không cần phải dùng một terminal mode hoặc một bộ xử lý nào khác
- Nhược điểm của mô hình client-server: o Khả năng phản hồi: Mô hình client-server có thể gặp vấn đề về khả năng phản hồi khi có nhiều yêu cầu đồng thời từ nhiều client Nếu máy chủ không được tối ưu hoặc tải cao, nó có thể gây trễ và làm giảm trải nghiệm người dùng o Độ trễ mạng: Vì thông tin phải được truyền qua mạng từ client đến server và ngược lại, độ trễ mạng có thể ảnh hưởng đến thời gian phản hồi Điều này có thể gây ra sự trễ trong việc tải và hiển thị dữ liệu cho người dùng o Độ phức tạp: Mô hình client-server yêu cầu bạn phải xử lý cả phần client và phần server Điều này đòi hỏi kiến thức và kỹ năng về cả phía front-end và back-end, tăng độ phức tạp trong quá trình phát triển và quản lý ứng dụng
Tóm lại, mô hình client-server có nhiều ưu điểm về phân chia trách nhiệm, tính mở rộng và bảo mật Tuy nhiên, nó cũng có nhược điểm về khả năng phản hồi và độ trễ mạng Việc nhóm chúng em áp dụng mô hình client – server để thực hiện đồ án lần này là vì nó là mô hình phổ biến, và dễ áp dụng cũng như quy mô của đồ án không lớn nên nhược điểm của mô hình này sẽ không ảnh hưởng quá nhiều đến chất lượng của ứng dụng.
Công nghệ
React Native là một nền tảng phát triển ứng dụng di động độc đáo, được thiết kế để tối ưu hóa quá trình phát triển ứng dụng cho cả iOS và Android Được phát triển bởi Facebook, React Native đã nhanh chóng trở thành một trong những công nghệ quan trọng nhất trong lĩnh vực phát triển ứng dụng di động Điều độc đáo của React Native là khả năng chia sẻ mã nguồn giữa các nền tảng, giúp giảm thiểu công sức và tài nguyên cần thiết để xây dựng và duy trì ứng dụng trên cả hai hệ điều hành hàng đầu trên thị trường hiện nay
React Native sử dụng ngôn ngữ lập trình JavaScript, một ngôn ngữ rộng rãi được sử dụng trong cộng đồng phát triển Điều này mang lại lợi ích lớn trong việc giảm thời gian phát triển và chi phí, vì mà không cần phải học một ngôn ngữ mới cho mỗi nền tảng Với React Native, chúng em có thể sử dụng các thành phần UI tái sử dụng để nhanh chóng xây dựng giao diện người dùng phức tạp và hiệu quả Ngoài ra, hot- reloading giúp lập trình viên thấy những thay đổi ngay lập tức, tăng hiệu suất và tối ưu hóa quy trình phát triển
Với những đặc điểm độc đáo này, React Native không chỉ giúp nhóm tăng cường khả năng đa nền tảng mà còn giảm thiểu công sức đầu tư trong quá trình phát triển ứng dụng di động
.NET là một nền tảng phát triển mạnh mẽ được ưa chuộng để xây dựng phần Backend cho ứng dụng, đặc biệt là trong môi trường doanh nghiệp và công nghiệp Với sự linh hoạt và tích hợp, NET cung cấp một môi trường ổn định và hiệu quả để triển khai các dịch vụ web, xử lý logic nghiệp, và quản lý dữ liệu
NET cũng cung cấp Entity Framework, một ORM (Object-Relational Mapping) mạnh mẽ, giúp quản lý cơ sở dữ liệu một cách thuận tiện và hiệu quả Điều này giúp lập trình viên tập trung vào việc phát triển logic nghiệp thay vì quản lý chi tiết cơ sở dữ liệu
Với các tiện ích như Dependency Injection, Middleware, và mô hình MVC (Model-View-Controller), NET tạo ra một môi trường phát triển linh hoạt, dễ bảo trì, và dễ mở rộng cho Backend của ứng dụng Thông qua bài báo cáo này, chúng ta sẽ hiểu rõ hơn về cách NET hỗ trợ quá trình phát triển phần Backend và đóng vai trò quan trọng trong xây dựng các hệ thống thông tin hiệu quả
Azure là một dịch vụ đám mây của Microsoft, cung cấp một loạt các giải pháp mạnh mẽ cho việc triển khai và quản lý các ứng dụng, từ Backend, bot chat đến cơ sở dữ liệu,… Trong bối cảnh này, Azure Database và các dịch vụ triển khai ứng dụng của Azure là những công cụ quan trọng để xây dựng và duy trì các hệ thống của chúng em
- Azure SQL Database: Cung cấp một cơ sở dữ liệu quan hệ quản lý và dễ mở rộng cho các ứng dụng web và doanh nghiệp Nó cung cấp tính sẵn sàng cao, bảo mật và tích hợp tốt với các dịch vụ khác trên Azure
- Azure App Service: Cho phép triển khai và quản lý ứng dụng web, mobile, và API một cách dễ dàng Hỗ trợ nhiều ngôn ngữ lập trình và tích hợp tốt với các dịch vụ Azure khác
- Azure Bot Service: Cung cấp nền tảng cho việc xây dựng, triển khai, và quản lý bot chat Hỗ trợ nhiều kênh như Microsoft Teams, Facebook Messenger, và Slack
Figma là một công cụ thiết kế và làm việc cộng tác trực tuyến được sử dụng rộng rãi làm việc đồng thời trực tuyến, Figma giúp các đội thiết kế và phát triển tương tác một cách hiệu quả
Từ Figma nhóm chúng em có thể dễ dàng theo dõi, tạo ra những dạo diện phù hợp và linh hoạt trong code Giúp quá trình code Front end trở nên tiện lợi, dễ dàng và nhanh chóng hơn Khi có sẵn một bản thiết kế và chức năng trước, nó giúp nhóm chúng em có thể hạn chết sai sót trong quá trình thực hiện, không cần phải chỉnh sửa quá nhiều khi đến giai đoạn cuối của quá trình hoàn thành đồ án.