Nội dung thực hiện: Lý thuyết: ▪ Ngôn ngữ lập trình Kotlin ▪ Mô hình Clean Architecture ▪ Node.js với backend ▪ Vue.js và Vuetify Thực hành: ▪ Sử dụng ngôn ngữ lập trình Kotlin cho qu
TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Một trong những điều quan trọng nhất trong xã hội ngày nay đó là thông tin Thông tin giúp kết nối mọi người với nhau, cung cấp cho họ thêm những hiểu biết về thế giới bên ngoài Nhờ sự phát triển không ngừng nghỉ của Internet trong những năm gần đây đã mang lại những tác động khác nhau trong mọi lĩnh vực của đời sống Cách đây khoảng
25 năm, khi Internet chưa được phổ biến rộng rãi như bây giờ, mọi thông tin thường được cung cấp tới mọi người xung quanh bằng các phương tiện truyền thông như loa phát thanh, các trang sách, ảnh, những tờ báo…Mặt khác, những cách truyền thông tin như vậy thường khá tốn kém về mặt chi phí Và với sự phát triển mạnh mẽ của Internet đã cung cấp thêm một cách chia sẻ thông tin phổ biến khác Khi mà mọi người giờ đây đã có thể chia sẻ những thông tin mình biết lên Internet về những khía cạnh khác nhau trong xã hội
Tuy nhiên với một lượng thông tin được chia sẻ cực kì lớn từ mọi người trong xã hội thì thật khó để có thể chọn lọc những thông tin cần thiết Hay một vấn đề khác là việc thông báo cho những người quen, bạn bè, đồng nghiệp hoặc những người có cùng sở thích để cho họ biết được những điều mình muốn chia sẻ cũng không hề dễ dàng Do đó mọi người thường lập ra các hội nhóm gồm những người có cùng chung mục tiêu hay sở thích trên Internet, thông qua các trang web hoặc gần đây hơn là những ứng dụng trên thiết bị di động, để có thể chia sẻ những thông tin mới đến những người quan tâm
Từ đó giúp cho việc tiếp nhận cũng như cập nhật thông tin mong muốn diễn ra nhanh và dễ dàng hơn
Nắm bắt xu thế, chúng em nhận thấy rằng nên phát triển một môi trường trao đổi thông tin dành cho trường Đại học Sư phạm Kỹ thuật, để giúp cho mọi người trong trường có thể chia sẻ và cập nhật thông tin với nhau một cách nhanh chóng Và với ý tưởng đó, chúng em đã quyết định thực hiện đề tài “ Xây dựng ứng dụng mạng xã hội
MỤC TIÊU CỦA ĐỀ TÀI
Xây dựng ứng dụng cho phép người dùng đăng bài viết và xem các bài viết của người dùng khác
Xây dựng website cho quản trị viên hỗ trợ quản lý người dùng cũng như những thông tin khác
24 Áp dụng những công nghệ mới cũng như ngôn ngữ lập trình hiện đại vào đề tài.
PHẠM VI ĐỀ TÀI
Xây dựng ứng dụng mạng xã hội dành cho trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh Cụ thể với những nhóm người dùng:
▪ Sinh viên đang theo học tại trường Đại học Sư phạm Kỹ thuật Tp.HCM
▪ Giảng viên đang tham gia giảng dạy tại trường Đại học Sư phạm Kỹ thuật Tp.HCM
▪ Cựu sinh viên đã tốt nghiệp, hoàn thành chương trình học tại trường Đại học Sư phạm
▪ Thí sinh, người muốn ứng tuyển vào các ngành học tại trường Đại học Sư phạm Kỹ thuật Tp.HCM.
PHƯƠNG PHÁP THỰC HIỆN
Tìm hiểu các kiến thức cần thiết để thực hiện đề tài:
▪ Các kỹ thuật phân tích hệ thống
▪ Các ngôn ngữ lập trình Kotlin, NodeJS, VueJS
▪ Kiến trúc khi xây dựng ứng dụng Android
▪ Những thư viện hỗ trợ xây dựng app và website trong đề tài
CƠ SỞ LÝ THUYẾT
Xây dựng ứng dụng
Android Framework là nền tảng phần mềm độc đáo của Google, chủ yếu được xây dựng để phát triển ứng dụng di động trên hệ điều hành Android Với sự đa dạng ngày càng tăng về mục đích sử dụng, từ giải trí cá nhân đến các giải pháp doanh nghiệp, Android Framework đóng vai trò quan trọng bằng cách cung cấp cơ sở hạ tầng mạnh mẽ và linh hoạt cho các nhà phát triển Xuất phát từ sự phát triển của hệ điều hành Android vào năm 2008, Android Framework đã trải qua nhiều cập nhật và bổ sung để đáp ứng yêu cầu ngày càng cao của thị trường di động
Không chỉ hỗ trợ cho các ứng dụng giải trí như trò chơi và ứng dụng cá nhân, Android Framework còn là nền tảng chính cho các ứng dụng doanh nghiệp, giáo dục, y tế và còn rất nhiều lĩnh vực khác Sự đa dạng này đặt ra một thách thức trong việc duy trì tính tương thích và khả năng mở rộng của nền tảng
Trong đề tài này, Android Framework được triển khai vào việc phát triển ứng dụng mạng xã hội trên nền tảng di động hệ điều hành Android cho người dùng cuối Việc sử dụng Android Framework được thực hiện bằng ngôn ngữ lập trình Kotlin, và cấu trúc của ứng dụng được xây dựng chủ yếu theo mô hình Clean Architecture được Google khuyến cáo
Kotlin, được phát triển bởi JetBrains, nổi bật như một ngôn ngữ lập trình tương thích hoàn toàn với Java, nhưng mang lại nhiều tính năng và lợi ích hiện đại Với khả năng chạy trên Java Virtual Machine (JVM), Kotlin trở thành lựa chọn phổ biến trong việc phát triển ứng dụng Android do tính đơn giản, tích hợp tốt với môi trường Java, và tính an toàn
Việc sử dụng Kotlin trong dự án giúp tối ưu hóa mã nguồn, tăng hiệu suất, và giảm độ phức tạp của ứng dụng Tính an toàn của Kotlin giúp ngăn chặn nhiều lỗi phổ biến, tăng cường khả năng phát triển và quản lý dự án hiệu quả Đặc biệt, sự ưu tiên đối với Kotlin khi đã được Google chính thức công nhận là ngôn ngữ lập trình chính cho Android, không chỉ tương thích mà còn tích hợp mạnh mẽ với Android Framework, điều này đã thúc đẩy sự phổ biến của Kotlin trong cộng đồng phát triển Android đã tạo ra nhiều tài nguyên học tập, thư viện và hỗ trợ từ cộng đồng, tạo điều kiện thuận lợi cho quá trình phát triển, là một phần lý do phù hợp để lựa chọn sử dụng Kotlin trong dự án thay vì Java
Hình 1.3 Clean Architecture trong Android [3]
Clean Architecture là một phương pháp thiết kế phần mềm được áp dụng chủ yếu trong ứng dụng Android trong đề tài này, với mục tiêu không chỉ là tạo ra mã nguồn dễ bảo trì mà còn mang lại sự linh hoạt và khả năng mở rộng trong quá trình phát triển và duy trì
Vai trò và chức năng: tầng này chịu trách nhiệm cho giao diện người dùng và tương tác người dùng Nó không chứa nhiều business logic mà thay vào đó chỉ tập trung vào việc xử lý UI như hiển thị dữ liệu… và xử lý sự kiện từ người dùng
Sự tách biệt: Clean Architecture đảm bảo sự tách biệt giữa tầng Presentation và các tầng khác, giúp giữ cho mã nguồn ở tầng này dễ bảo trì và thay đổi mà không tác động lớn đến các phần khác của ứng dụng
Business logic độc lập: tầng Domain chứa business logic độc lập, không phụ thuộc vào bất kỳ thư viện hoặc framework cụ thể nào Điều này giúp đảm bảo rằng business logic có thể thay đổi mà không ảnh hưởng đến các phần khác của hệ thống
Kiểm thử đơn vị thuận lợi: business logic ở tầng này có thể được kiểm thử đơn vị một cách thuận lợi vì nó không phụ thuộc vào các thành phần bên ngoài nhiều
Quản lí truy cập dữ liệu: tầng Data là nơi quản lí truy cập và lấy dữ liệu từ nguồn dữ liệu bên ngoài, chẳng hạn như cơ sở dữ liệu hoặc API
Độc lập với công nghệ: Clean Architecture đảm bảo tầng Data độc lập với công nghệ cụ thể, giúp nâng cao tính linh hoạt và khả năng mở rộng của hệ thống Ưu Điểm và Lợi Ích:
▪ Dễ bảo trì: Clean Architecture giúp tạo ra mã nguồn dễ bảo trì bằng cách tách biệt business logic và đảm bảo sự độc lập giữa các tầng
▪ Linh hoạt: hệ thống trở nên linh hoạt và có thể thích ứng với thay đổi mà không cần sửa đổi nhiều mã nguồn
▪ Kiểm thử thuận lợi: tính độc lập của business logic và tầng Data giúp kiểm thử đơn vị và kiểm thử tích hợp thuận lợi hơn Áp dụng Clean Architecture không chỉ giúp đảm bảo tính dễ bảo trì và mở rộng của ứng dụng trong thời gian mà còn tạo điều kiện thuận lợi cho việc phát triển và duy trì một cách hiệu quả
1.1.4 Một số thư viện hỗ trợ
Retrofit là một thư viện mạnh mẽ giúp đơn giản hóa quá trình thực hiện các yêu cầu mạng trong ứng dụng Android Hỗ trợ định nghĩa các API mạng dưới dạng các interface và cung cấp cơ chế chuyển đổi các phản hồi từ máy chủ thành các đối tượng trong ứng dụng
Việc sử dụng Retrofit trong ứng dụng Android giúp giảm độ phức tạp khi tương tác với API được cung cấp từ phía back-end, việc triển khai linh hoạt với các cú pháp đơn giản để thực hiện các yêu cầu mạng
Retrofit hỗ trợ Converter Factory, giúp chuyển đổi dữ liệu giữa các định dạng như JSON hoặc XML và các đối tượng Kotlin một cách dễ dàng
Nền tảng hệ thống
Node.js, một cơ sở hạ tầng phát triển xây dựng trên Chrome’s V8 JavaScript runtime, đã được chọn làm nền tảng trọng điểm cho việc triển khai backend trong dự án xây dựng ứng dụng mạng xã hội Node.js nổi bật với mô hình không đồng bộ, giúp xử lý đồng thời nhiều yêu cầu mạng một cách linh hoạt, đặt nền tảng cho việc tối ưu hiệu suất và đáp ứng của hệ thống Điều này trở thành một ưu điểm quan trọng trong ngữ cảnh của dự án mạng xã hội, nơi mà sự nhanh chóng và đáng tin cậy trong xử lý yêu cầu là yếu tố quyết định
Node.js không chỉ mang lại hiệu suất cao mà còn mở ra cơ hội tận dụng nhiều thư viện mạnh mẽ có sẵn, giúp tối ưu hóa và giảm thời gian phát triển Trong đó, một số thư viện đã được sử dụng trong đề tài như:
▪ Express: là một framework phổ biến của Node.js, giúp viết mã ngắn gọn và hiệu quả trong xây dựng API và xử lý yêu cầu HTTP
▪ JSON Web Token (jsonwebtoken): tích hợp JSON Web Token (JWT) để xác thực và quản lý quyền truy cập, tăng tính bảo mật của hệ thống
▪ Mongoose: là một thư viện ODM, giúp tương tác dễ dàng với cơ sở dữ liệu MongoDB từ ứng dụng Node.js
Bên cạnh đó, lựa chọn Node.js còn được đánh giá cao bởi sự phồn thịnh của cộng đồng phát triển Có một lượng lớn tài nguyên học thuật, thư viện và giải pháp đã được xây dựng sẵn, giúp giảm thời gian phát triển và giải quyết các thách thức kỹ thuật một cách hiệu quả Điều này giúp tối ưu hóa quá trình phát triển và làm cho mã nguồn dễ bảo trì, hỗ trợ sự ổn định và mở rộng của dự án một cách linh hoạt
MongoDB, một hệ quản trị cơ sở dữ liệu NoSQL, chịu trách nhiệm lưu trữ dữ liệu cho ứng dụng Lựa chọn MongoDB dựa trên cơ sở các điểm quan trọng sau:
▪ Tính linh hoạt: lưu trữ dữ liệu dưới dạng tài liệu linh hoạt, giúp dễ dàng mở rộng cấu trúc dữ liệu khi ứng dụng phát triển
▪ Hiệu năng cao: MongoDB cung cấp hiệu năng cao và khả năng mở rộng tốt thông qua khả năng chia nhỏ dữ liệu và replica set
Firebase Storage là một phần quan trọng để lưu trữ tệp media như hình ảnh trong dự án:
▪ Dễ tích hợp: Firebase Storage tích hợp tốt với dự án sử dụng Firebase, đồng thời API của nó làm cho quá trình lưu trữ và truy xuất tệp đơn giản
▪ Bảo mật: cơ chế bảo mật tích hợp giúp bảo vệ tệp của người dùng khỏi sự truy cập trái phép
▪ Hiệu suất: Firebase Storage giúp tối ưu hiệu suất tải và lưu trữ hình ảnh, video cũng như các tệp media khác
Vuetify là một framework UI được phát triển dựa trên Vue.js, nhằm hỗ trợ xây dựng giao diện người dùng đẹp mắt và chuyên nghiệp Được thiết kế theo phong cách Material Design của Google, hỗ trợ việc phát triển giao diện responsive, đảm bảo ứng dụng hiển thị một cách tốt trên nhiều loại thiết bị và kích thước màn hình khác nhau
Về mặt ưu điểm, Vuetify phù hợp để sử dụng trong phạm vi đề tài cho mục đích triển khai giao diện trang quản trị ứng dụng mạng xã hội cho nhóm người dùng quản trị viên, vì việc triển khai cần được thực hiện nhanh chóng, đơn giản và hiệu quả, nhằm tối ưu thời gian xây dựng để có thể tập trung vào các chức năng chính của ứng dụng ở phía người dùng cuối trên nền tảng mobile Do đó, việc sử dụng Vuetify giúp quá trình thực hiện nhanh chóng khi cung cấp một bộ các thành phần UI tuân theo nguyên tắc và hướng dẫn của Material Design, với sự tích hợp của nhiều plugin và thư viện, Vuetify giúp giảm độ phức tạp trong quá trình phát triển và tạo ra thành phần tương tác phong phú
Kết hợp công nghệ
Hình 1.10 Kết hợp các công nghệ
Về phía ứng dụng: sử dụng Retrofit và Hilt cùng với Android Framework, Kotlin, và Clean Architecture, giúp tận dụng được sức mạnh của các công nghệ hiện đại để xây dựng ứng dụng Android linh hoạt, hiệu quả và dễ bảo trì Cả hai thư viện đã được chọn lựa không chỉ vì tính năng mạnh mẽ mà còn vì sự hỗ trợ mạnh mẽ từ cộng đồng phát triển Android
Về phía back-end: việc tích hợp Node.js, Vuetify, MongoDB, và Firebase Storage vào dự án mạng xã hội giúp xây dựng một hệ thống backend mạnh mẽ, linh hoạt, và đáp ứng đầy đủ yêu cầu của ứng dụng
Tổng kết: sự kết hợp giữa Android Framework, Kotlin, Clean Architecture và các công nghệ backend đã giúp tạo nên một ứng dụng toàn diện, đồng thời tận dụng sức mạnh của cả phía di động và máy chủ
KHẢO SÁT HIỆN TRẠNG & XÁC ĐỊNH YÊU CẦU
Phân tích hiện trạng
Một trong những điều quan trọng nhất trong xã hội ngày nay đó là thông tin Thông tin giúp kết nối mọi người với nhau, cung cấp cho họ thêm những hiểu biết về thế giới bên ngoài Nhờ sự phát triển không ngừng nghỉ của Internet trong những năm gần đây đã mang lại những tác động khác nhau trong mọi lĩnh vực của đời sống Cách đây khoảng
25 năm, khi Internet chưa được phổ biến rộng rãi như bây giờ, mọi thông tin thường được cung cấp tới mọi người xung quanh bằng các phương tiện truyền thông như loa phát thanh, các trang sách, ảnh, những tờ báo… Thế nhưng thì thường những cách truyền thông tin như vậy lại khá tốn kém về mặt chi phí Và với sự phát triển mạnh mẽ của Internet đã cung cấp thêm một cách chia sẻ thông tin phổ biến khác Khi mà mọi người giờ đây đã có thể chia sẻ những thông tin mình biết lên Internet về những khía cạnh khác nhau trong đời sống hoặc trong xã hội
Tuy nhiên với một lượng thông tin được chia sẻ cực kì lớn từ mọi người trong xã hội thì thật khó để có thể chọn lọc những thông tin cần thiết Hay một vấn đề khác là việc thông báo cho những người quen, bạn bè, đồng nghiệp hoặc những người có cùng sở thích để cho họ biết được những điều mình muốn chia sẻ cũng không hề dễ dàng Do đó mọi người thường lập ra những hội nhóm về một chủ đề nào đó và tập hợp những người có cùng chung mục tiêu hay sở thích trên Internet, thông qua các trang web hoặc gần đây hơn là những ứng dụng trên thiết bị di động, để có thể chia sẻ những thông tin mới đến những người quan tâm Từ đó giúp cho việc tiếp nhận cũng như cập nhật thông tin mong muốn diễn ra nhanh và dễ dàng hơn Việc tạo lập hội nhóm không chỉ là để chia sẻ thông tin, mà còn là một nơi tập hợp những người cùng chung một mục tiêu hay mục đích Những hội nhóm như vậy nhìn chung có thể thấy khá giống với một xã hội thu nhỏ
Xét về phía nhà trường, thì trong môi trường học tập như vậy, việc cung cấp và trao đổi thông tin đương nhiên là rất cần thiết Thông thường nhà trường sẽ cung cấp những thông tin hay thông báo lên các trang web khoa, gmail hay trên trang online.hcmute.edu.vn… những nơi mà sinh viên cũng như giảng viên có thể truy cập Nhưng vấn đề là việc cung cấp những thông báo lên trang web như vậy, thì sinh viên hoặc giảng viên phải truy cập vào các trang web để đọc Và có khi còn có những trường hợp không biết hoặc không truy cập trang web thường xuyên nên sẽ không nhận được
34 thông báo mới nhất Vì vậy, nhóm em nhận thấy rằng nên phát triển một môi trường trao đổi thông tin dành cho trường Đại học Sư phạm Kỹ thuật, để giúp cho mọi người trong trường có thể chia sẻ và cập nhật thông tin với nhau một cách nhanh chóng
Và với ý tưởng đó cũng như nắm bắt xu thế trao đổi thông tin giữa mọi người, chúng em đã quyết định thực hiện đề tài tạo nên một ứng dụng mạng xã hội trên Android để có thể hỗ trợ mọi người có thể truy cập và cập nhật thông tin nhanh chóng.
Khảo sát một số phần mềm
Hình 2.1 Màn hình Đăng nhập/Đăng ký Hình 2.2 Màn hình cuộc hội thoại
Hình 2.3 Màn hình bạn bè Hình 2.4 Màn hình tìm kiếm
Hình 2.5 Màn hình danh sách bài viết Hình 2.6 Màn hình chi tiết bài viết
Hình 2.7 Màn hình thông tin cá nhân
Các chức năng Hạn chế
▪ Tìm kiếm và kết bạn với người dùng khác
▪ Trao đổi, nhắn tin với bạn bè hoặc người lạ
▪ Đăng tải các bài viết
▪ Tương tác với các bài viết
▪ Giao diện đơn giản, dễ dùng
▪ Thông báo khi phát hiện có bài viết mới từ bạn bè
▪ Chỉ có thể xem các bài viết giữa bạn bè với nhau
▪ Ứng dụng mạng xã hội công cộng, không tiếp cận tới nhóm người dùng cụ thể
Bảng 2.1 Nhận xét ứng dụng Zalo
Phân tích yêu cầu của dự án
Xây dựng ứng dụng mạng xã hội cho phép mọi người đăng các bài viết cũng như xem các bài viết của những người dùng khác Tập trung chủ yếu cho nhóm người dùng của trường Đại học Sư phạm Kỹ thuật Ứng dụng mang đến cho người dùng sự tiện lợi với khả năng cập nhật thông tin nhanh chóng trên nền tảng di động Ngoài ra còn có
37 website dành cho quản trị viên với các đặc quyền quản trị hệ thống Các chức năng chính của chương trình gồm có: Đối tượng Chức năng
▪ Xem chi tiết về bài viết
▪ Tương tác với bài viết
▪ Đăng một bài viết mới
▪ Cập nhật trạng thái bài viết
▪ Gửi yêu cầu kết bạn
▪ Phản hồi yêu cầu kết bạn
▪ Xem thông tin cá nhân
▪ Thay đổi ảnh đại diện
▪ Quản lý thông tin khoa
▪ Quản lý thông tin ngành
▪ Quản lý thông tin niên khóa
▪ Quản lý quản trị viên khác
▪ Quản lý các nhóm các quản trị viên
Bảng 2.2 Phân tích yêu cầu dự án
Danh sách yêu cầu chức năng nghiệp vụ
Hiển thị danh sách bài viết
Xem thông tin chi tiết về bài viết
Tương tác với bài viết
Thực hiện đăng bài viết mới
Cập nhật trạng thái bài viết
▪ Quản lý thông tin khoa
▪ Quản lý thông tin ngành
▪ Quản lý thông niên khóa
▪ Quản lý thông tin tài khoản
Danh sách yêu cầu chức năng hệ thống
▪ Thêm, xóa, cập nhật thông tin khoa
▪ Thêm, xóa, cập nhật thông tin ngành
▪ Thêm, xóa, cập nhật thông tin niên khóa
▪ Thêm, xóa, cập nhật người dùng
▪ Thêm, xóa, cập nhật quản trị viên.
Danh sách yêu cầu phi chức năng
▪ Hệ thống có chức năng bảo mật và phân quyền
▪ Mật khẩu, thông tin nhạy cảm của người dùng được mã hóa trước khi ghi vào cơ sở dữ liệu
PHÂN TÍCH THIẾT KẾ
Mô hình hóa yêu cầu
3.1.1 Phân hệ người dùng ứng dụng
Hình 3.1 Usecase Diagram – App User
Brief description Người dùng thực hiện đăng nhập vào tài khoản
Pre-conditions Người dùng đã có tài khoản trong hệ thống
Post-conditions Nếu đăng nhập thành công, người dùng được thực hiện các chức năng theo phân quyền
Basic flow 1 Người dùng nhập thông tin email và mật khẩu
2 Hệ thống kiểm tra định dạng email
3 Hệ thống xác thực email và mật khẩu của người dùng
4 Hệ thống xác định vai trò và thông tin tài khoản
5 Người dùng đăng nhập thành công vào hệ thống Alternative flow Đăng nhập thất bại
3.1 Hệ thống thông báo sai thông tin email hoặc mật khẩu 3.2 Quay lại bước 1 của ‘basic flow’
Bảng 3.1 App User – Đăng nhập
Brief description Người dùng đăng xuất tài khoản khỏi hệ thống
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Cài đặt
2 Người dùng chọn vào nút Đăng xuất
3 Người dùng được điều hướng trở lại trang Đăng nhập Alternative flow
Bảng 3.2 App User – Đăng xuất
Brief description Người dùng thực hiện đăng ký một tài khoản mới
Post-conditions Nếu đăng ký thành công, người dùng có thể đăng nhập vào tài khoản mới tạo
Basic flow 1 Người dùng chọn vào nút Đăng ký
2 Người dùng nhập các thông tin cơ bản cho tài khoản
3 Người dùng chọn một vai trò nhất định
4 Người dùng nhập thông tin theo vai trò đã chọn
5 Người dùng đặt mật khẩu cho tài khoản
6 Người dùng chọn hoàn tất đăng ký
7 Hệ thống kiểm tra thông tin tài khoản và tạo tài khoản mới
8 Người dùng đăng ký tài khoản thành công Alternative flow Email đã được đăng ký
7.1 Hệ thống thông báo email đã được đăng ký 7.2 Quay lại bước 5 của ‘basic flow’
Bảng 3.3 App User – Đăng ký
Brief description Người dùng đổi tên định danh (username) của tài khoản
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Cài đặt
2 Người dùng chọn vào mục Thông tin cá nhân
3 Người dùng chọn biểu tượng Chỉnh sửa kế bên Username
4 Người dùng nhập username mới
5 Người dùng chọn nút Xác nhận
6 Hệ thống xác thực và cập nhật lại username của tài khoản
7 Người dùng đổi username thành công Alternative flow
Bảng 3.4 App User – Đổi Username
Name Đổi ảnh đại diện
Brief description Người dùng đổi ảnh đại diện của tài khoản
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Cài đặt
2 Người dùng chọn vào mục Đổi ảnh đại diện
3 Người dùng được điều hướng tới trang Đổi ảnh đại diện
4 Người dùng thực hiện chọn ảnh mới
5 Người dùng chọn nút Lưu
6 Hệ thống tải ảnh đại diện và xác nhận các thay đổi
7 Người dùng đổi ảnh đại diện thành công Alternative flow
Bảng 3.5 App User – Đổi ảnh đại diện
Brief description Người dùng thay đổi mật khẩu của tài khoản
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Cài đặt
2 Người dùng chọn vào mục Đổi mật khẩu
3 Người dùng lần lượt nhập mật khẩu hiện tại, mật khẩu mới, xác nhận mật khẩu
4 Người dùng nhấn vào Lưu
5 Hệ thống kiểm tra độ bảo mật của mật khẩu mới
6 Hệ thống kiểm tra mật khẩu xác nhận trùng khớp với mật khẩu mới
7 Hệ thống xác thực mật khẩu hiện tại
8 Người dùng đổi mật khẩu thành công Alternative flow Mật khẩu hiện tại không chính xác:
7.1 Hệ thống thông báo mật khẩu hiện tại không chính xác 7.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.6 App User – Đổi mật khẩu
3.1.1.7 Hiện chi tiết bài viết
Name Hiện chi tiết bài viết
Brief description Người dùng chọn xem thông tin chi tiết về bài viết cụ thể
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng điều hướng đến màn hình chính
2 Người dùng xem các bài viết được hiển thị
3 Người dùng chọn vào một bài viết
4 Người dùng được điều hướng đến trang Thông tin chi tiết bài viết Alternative flow
Bảng 3.7 App User – Hiện chi tiết bài viết
Brief description Người dùng chọn thích một bài viết cụ thể
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng điều hướng đến màn hình chính
2.a Người dùng xem các bài viết được hiển thị 2.b Người dùng chọn vào một bài viết
3 Người dùng chọn nút Thích
4 Hệ thống xác nhận và cập nhật trạng thái bài viết
5 Người dùng tương tác thành công với bài viết Alternative flow Bỏ thích bài viết:
4.1 Hệ thống kiểm tra thấy người dùng đã thích bài viết trước đó 4.2 Hệ thống bỏ lượt thích của người dùng và cập nhật lại trạng thái bài viết
Bảng 3.8 App User – Thích bài viết
Name Bình luận bài viết
Brief description Người dùng thêm bình luận vào bài viết cụ thể
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng điều hướng đến màn hình chính
2.a Người dùng xem các bài viết được hiển thị 2.b Người dùng chọn vào một bài viết
3 Người dùng chọn nút Bình luận
4 Người dùng nhập nội dung bình luận
5 Người dùng nhấn nút Gửi
6 Hệ thống xác nhận và đăng tải bình luận
7 Người dùng gửi bình luận thành công Alternative flow
Bảng 3.9 App User – Bình luận bài viết
Brief description Người dùng đăng một bài viết mới
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng điều hướng đến màn hình chính
2 Người dùng chọn vào nút Tạo
3 Người dùng thêm nội dung văn bản cho bài viết
4 Người dùng thêm các emoji hoặc file phương tiện
5 Người dùng nhấn nút Hoàn tất
6 Hệ thống lấy thông tin và tạo một bài viết mới
7 Người dùng đăng thành công bài viết Alternative flow
Bảng 3.10 App User – Tạo bài viết
Brief description Người dùng xóa một bài viết của mình
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Bài viết được tạo bởi người dùng
Basic flow 1 Người dùng chọn vào mục Cài đặt
2 Người dùng chọn vào mục Thông tin cá nhân
3 Người dùng chọn mục Bài viết của tôi
4 Người dùng chọn nút Menu
5 Người dùng nhấn tùy chọn Xóa bài viết
6 Người dùng xác nhận xóa bài viết với hộp thoại tùy chọn
7 Hệ thống thực hiện yêu cầu xóa bài viết
8 Người dùng xóa bài viết thành công Alternative flow
Bảng 3.11 App User – Xóa bài viết
3.1.1.12 Chỉnh sửa trạng thái bài viết
Brief description Người dùng xóa một bài viết của mình
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Bài viết được tạo bởi người dùng
Basic flow 1 Người dùng chọn vào mục Cài đặt
2 Người dùng chọn vào mục Thông tin cá nhân
3 Người dùng chọn mục Bài viết của tôi
4 Người dùng chọn nút Menu
5 Người dùng nhấn tùy chọn Chỉnh sửa trạng thái bài viết
6 Người dùng đổi trạng thái bài viết với các tùy chọn hiển thị trên hộp thoại
7 Người dùng nhấn nút Lưu
8 Hệ thống thực hiện yêu cầu cập nhật bài viết
9 Người dùng cập nhật trạng thái bài viết thành công Alternative flow
Bảng 3.12 App User – Chỉnh sửa trạng thái bài viết
Name Tìm kiếm người dùng
Brief description Người dùng tìm kiếm thông tin người dùng khác trên hệ thống
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Post-conditions Nếu có từ khóa tìm kiếm khớp với thông tin của những người dùng khác, hệ thống trả về danh sách người dùng
Basic flow 1 Người dùng điều hướng đến màn hình chính
2 Người dùng chọn vào thanh tìm kiếm
3 Người dùng nhập từ khóa cần tìm
4 Hệ thống kiểm tra và lọc ra danh sách người dùng khớp với từ khóa
5 Người dùng xác định được danh sách người dùng phù hợp Alternative flow Không có thông tin trùng khớp:
4.1 Hệ thống không tìm thấy bất kỳ người dùng nào có thông tin khớp với từ khóa đã nhập
4.2 Hệ thống hiện thông báo không tìm thấy cho người dùng 4.3 Quay lại bước 3 của ‘basic flow’
Bảng 3.13 App User – Tìm kiếm người dùng
Name Gửi yêu cầu kết bạn
Brief description Người dùng gửi yêu cầu kết bạn cho người dùng khác
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng xác định được thông tin tài khoản của người muốn kết bạn
2 Người dùng nhấn nút Kết bạn
3 Hệ thống kiểm tra và gửi yêu cầu tới tài khoản mục tiêu
4 Người dùng gửi yêu cầu kết bạn thành công Alternative flow
Bảng 3.14 App User – Gửi kết bạn
Name Phản hồi yêu cầu kết bạn
Brief description Người dùng phản hồi lại yêu cầu kết bạn của người dùng khác
Pre-conditions Người dùng đăng nhập thành công vào hệ thống
Có yêu cầu kết bạn từ người dùng khác
Basic flow 1 Người dùng chọn vào mục Thông báo
2 Người dùng chuyển sang tab Yêu cầu
3 Người dùng phản hồi lại yêu cầu kết bạn (đồng ý hoặc từ chối)
4 Hệ thống kiểm tra và phản hồi lại tới người gửi
5 Người dùng phản hồi yêu cầu kết bạn thành công Alternative flow
Bảng 3.15 App User – Phản hồi kết bạn
3.1.2 Phân hệ quản trị viên
Hình 3.2 Usecase Diagram – Web Admin
Brief description Quản trị viên thực hiện đăng nhập vào tài khoản
Pre-conditions Quản trị viên đã có tài khoản trong hệ thống
Post-conditions Nếu đăng nhập thành công, quản trị viên được thực hiện các chức năng theo phân quyền
Basic flow 1 Người dùng nhập thông tin email và mật khẩu
2 Hệ thống kiểm tra định dạng email
3 Hệ thống xác thực email và mật khẩu của người dùng
4 Hệ thống xác định vai trò và thông tin tài khoản
5 Người dùng đăng nhập thành công vào hệ thống Alternative flow Sai định dạng email
2.1 Hệ thống thông báo định dạng email không hợp lệ 2.2 Quay lại bước 1 của ‘basic flow’ Đăng nhập thất bại 3.1 Hệ thống thông báo sai thông tin email hoặc mật khẩu 3.2 Quay lại bước 1 của ‘basic flow’
Bảng 3.16 Web Admin – Đăng nhập
Brief description Quản trị viên đăng xuất tài khoản khỏi hệ thống
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào nút Đăng xuất
2 Người dùng được điều hướng trở lại trang Đăng nhập Alternative flow
Bảng 3.17 Web Admin – Đăng xuất
Brief description Quản trị viên thay đổi mật khẩu của tài khoản
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào nút Hồ sơ
2 Người dùng chọn nút Đổi mật khẩu
3 Người dùng lần lượt nhập mật khẩu hiện tại, mật khẩu mới, xác nhận mật khẩu
4 Người dùng nhấn vào Lưu
5 Hệ thống kiểm tra độ bảo mật của mật khẩu mới
6 Hệ thống kiểm tra mật khẩu xác nhận trùng khớp với mật khẩu mới
7 Hệ thống xác thực mật khẩu hiện tại
8 Người dùng đổi mật khẩu thành công Alternative flow Mật khẩu không đủ mạnh:
5.1 Hệ thống thông báo mật khẩu mới không đủ các yêu cầu cần thiết về bảo mật 5.2 Quay lại bước 3 của ‘basic flow’
6.1 Hệ thống thông báo mật khẩu xác thực không trùng khớp với mật khẩu mới
6.2 Quay lại bước 3 của ‘basic flow’
Mật khẩu hiện tại không chính xác:
7.1 Hệ thống thông báo mật khẩu hiện tại không chính xác 7.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.18 Web Admin – Đổi mật khẩu
Name Thêm người dùng mới
Brief description Quản trị viên thực hiện thêm người dùng mới
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Người dùng
2 Người dùng chọn vào nút Thêm mới
3 Người dùng nhập thông tin được yêu cầu
4 Người dùng chọn tạo mật khẩu ngẫu nhiên
5 Hệ thống kiểm tra và xác thực thông tin tài khoản
6 Người dùng thêm tài khoản mới thành công Alternative flow Thiếu thông tin:
5.1 Hệ thống thông báo cần phải nhập toàn bộ các thông tin được yêu cầu
5.2 Quay lại bước 3 của ‘basic flow’
5.1 Hệ thống thông báo email đã được đăng ký tài khoản
5.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.19 Web Admin – Thêm người dùng
Brief description Quản trị viên thực hiện xóa tài khoản người dùng hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Người dùng
2.a Người dùng chọn vào biểu tượng Xóa trên danh sách tài khoản người dùng 2.b Người dùng tích chọn nhiều tài khoản người dùng và nhấn nút Xóa
3 Người dùng chọn nút Xóa trên hộp thoại xác nhận
4 Người dùng xóa tài khoản thành công Alternative flow
Bảng 3.20 Web Admin – Xóa người dùng
3.1.2.6 Chỉnh sửa thông tin người dùng
Name Chỉnh sửa thông tin người dùng
Brief description Quản trị viên thực hiện chỉnh sửa thông tin người dùng hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Người dùng
2 Người dùng chọn vào biểu tượng Chỉnh sửa trên danh sách tài khoản người dùng
3 Người dùng chỉnh sửa lại thông tin
4 Hệ thống kiểm tra, xác thực và thay đổi thông tin tài khoản
5 Người dùng chỉnh sửa thông tin tài khoản thành công Alternative flow Thiếu thông tin:
4.1 Hệ thống thông báo cần phải nhập toàn bộ các thông tin được yêu cầu
4.2 Quay lại bước 3 của ‘basic flow’
Thông tin không hợp lệ:
4.1 Hệ thống thông báo thông tin đã chỉnh sửa không hợp lệ 4.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.21 Web Admin – Chỉnh sửa thông tin người dùng
Name Thêm niên khóa mới
Brief description Quản trị viên thực hiện thêm niên khóa mới
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Niên khóa
2 Người dùng chọn vào nút Thêm mới
3 Người dùng nhập thông tin về tên niên khóa và năm bắt đầu
4 Hệ thống kiểm tra và xác thực thông tin
5 Người dùng thêm niên khóa mới thành công Alternative flow Thiếu thông tin:
4.1 Hệ thống thông báo cần phải nhập đầy đủ tên và năm bắt đầu 4.2 Quay lại bước 3 của ‘basic flow’
Năm bắt đầu đã được xác định:
4.1 Hệ thống thông báo năm bắt đầu đã được đăng ký 4.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.22 Web Admin – Thêm niên khóa
Brief description Quản trị viên thực hiện xóa niên khóa hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Niên khóa
2.a Người dùng chọn vào biểu tượng Xóa trên danh sách niên khóa 2.b Người dùng tích chọn nhiều niên khóa và nhấn nút Xóa
3 Người dùng chọn nút Xóa trên hộp thoại xác nhận
4 Người dùng xóa niên khóa thành công Alternative flow
Bảng 3.23 Web Admin – Xóa niên khóa
3.1.2.9 Chỉnh sửa thông tin niên khóa
Name Chỉnh sửa thông tin niên khóa
Brief description Quản trị viên thực hiện chỉnh sửa thông tin niên khóa hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Niên khóa
2 Người dùng chọn vào biểu tượng Chỉnh sửa trên danh sách niên khóa
3 Người dùng chỉnh sửa lại thông tin
4 Hệ thống kiểm tra và thay đổi thông tin niên khóa
5 Người dùng chỉnh sửa thông tin niên khóa thành công Alternative flow Thiếu thông tin:
4.1 Hệ thống thông báo cần phải nhập đầy đủ tên và năm bắt đầu 4.2 Quay lại bước 3 của ‘basic flow’
Năm bắt đầu đã được xác định:
4.1 Hệ thống thông báo năm bắt đầu đã được đăng ký 4.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.24 Web Admin – Chỉnh sửa thông tin niên khóa
Brief description Quản trị viên thực hiện thêm khoa mới
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Khoa
2 Người dùng chọn vào nút Thêm mới
3 Người dùng nhập thông tin tên và/hoặc tên viết tắt
4 Hệ thống kiểm tra và xác thực thông tin
5 Người dùng thêm khoa mới thành công Alternative flow Thiếu thông tin:
4.1 Hệ thống thông báo cần phải nhập thông tin tên khoa 4.2 Quay lại bước 3 của ‘basic flow’
Tên khoa đã được đăng ký:
4.1 Hệ thống thông báo tên khoa đã tồn tại 4.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.25 Web Admin – Thêm khoa
Brief description Quản trị viên thực hiện xóa khoa hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Khoa
2.a Người dùng chọn vào biểu tượng Xóa trên danh sách khoa 2.b Người dùng tích chọn nhiều khoa và nhấn nút Xóa
3 Người dùng chọn nút Xóa trên hộp thoại xác nhận
4 Người dùng xóa khoa thành công Alternative flow
Bảng 3.26 Web Admin – Xóa khoa
3.1.2.12 Chỉnh sửa thông tin khoa
Name Chỉnh sửa thông tin khoa
Brief description Quản trị viên thực hiện chỉnh sửa thông tin khoa hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Khoa
2 Người dùng chọn vào biểu tượng Chỉnh sửa trên danh sách khoa
3 Người dùng chỉnh sửa lại thông tin
4 Hệ thống kiểm tra và thay đổi thông tin khoa
5 Người dùng chỉnh sửa thông tin khoa thành công Alternative flow Thiếu thông tin:
4.1 Hệ thống thông báo cần phải nhập thông tin tên khoa 4.2 Quay lại bước 3 của ‘basic flow’
Tên khoa đã được đăng ký:
4.1 Hệ thống thông báo tên khoa đã tồn tại 4.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.27 Web Admin – Chỉnh sửa thông tin khoa
Brief description Quản trị viên thực hiện thêm ngành mới
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Khoa
2 Người dùng chọn vào một ngành bất kì trong danh sách
3 Người dùng chọn vào nút Thêm mới
4 Người dùng nhập thông tin tên và mã ngành
5 Hệ thống kiểm tra và xác thực thông tin
6 Người dùng thêm ngành mới thành công
Alternative flow Thiếu thông tin:
5.1 Hệ thống thông báo cần phải nhập thông tin tên và mã ngành 5.2 Quay lại bước 4 của ‘basic flow’
Tên ngành đã được đăng ký:
5.1 Hệ thống thông báo tên ngành đã tồn tại 5.2 Quay lại bước 4 của ‘basic flow’
Bảng 3.28 Web Admin – Thêm ngành
Brief description Quản trị viên thực hiện xóa ngành hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Khoa
2 Người dùng chọn vào một ngành bất kì trong danh sách 3.a Người dùng chọn vào biểu tượng Xóa trên danh sách ngành 3.b Người dùng tích chọn nhiều ngành và nhấn nút Xóa
4 Người dùng chọn nút Xóa trên hộp thoại xác nhận
5 Người dùng xóa ngành thành công Alternative flow
Bảng 3.29 Web Admin – Xóa ngành
3.1.2.15 Chỉnh sửa thông tin ngành
Name Chỉnh sửa thông tin ngành
Brief description Quản trị viên thực hiện chỉnh sửa thông tin ngành hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Basic flow 1 Người dùng chọn vào mục Khoa
2 Người dùng chọn vào một ngành bất kì trong danh sách
3 Người dùng chọn vào biểu tượng Chỉnh sửa trên danh sách ngành
4 Người dùng chỉnh sửa lại thông tin
5 Hệ thống kiểm tra và thay đổi thông tin ngành
6 Người dùng chỉnh sửa thông tin ngành thành công Alternative flow Thiếu thông tin:
5.1 Hệ thống thông báo cần phải nhập thông tin tên và mã ngành 5.2 Quay lại bước 4 của ‘basic flow’
Tên ngành đã được đăng ký:
5.1 Hệ thống thông báo tên ngành đã tồn tại 5.2 Quay lại bước 4 của ‘basic flow’
Bảng 3.30 Web Admin – Chỉnh sửa thông tin ngành
3.1.2.16 Thêm quản trị viên mới
Name Thêm quản trị viên mới
Brief description Quản trị viên thực hiện thêm tài khoản cho quản trị viên khác
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Quyền của quản trị viên là cấp cao, có khả năng quản lý các quản trị viên khác
Basic flow 1 Người dùng chọn vào mục Quản trị viên
2 Người dùng chọn vào nút Thêm mới
3 Người dùng nhập thông tin email
4 Người dùng chọn tạo mật khẩu ngẫu nhiên
5 Người dùng phân tài khoản vào một nhóm cụ thể
6 Hệ thống kiểm tra và xác thực thông tin tài khoản
7 Người dùng thêm tài khoản cho quản trị viên mới thành công Alternative flow Thiếu thông tin:
6.1 Hệ thống thông báo cần phải nhập đầy đủ toàn bộ thông tin tài khoản 6.2 Quay lại bước 3 của ‘basic flow’
6.1 Hệ thống thông báo email đã được đăng ký tài khoản 6.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.31 Web Admin – Thêm quản trị viên
Name Xóa quản trị viên
Brief description Quản trị viên thực hiện xóa tài khoản của quản trị viên khác hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Quyền của quản trị viên là cấp cao, có khả năng quản lý các quản trị viên khác
Basic flow 1 Người dùng chọn vào mục Quản trị viên
2.a Người dùng chọn vào biểu tượng Xóa trên danh sách tài khoản quản trị viên
2.b Người dùng tích chọn nhiều tài khoản quản trị viên và nhấn nút Xóa
3 Người dùng chọn nút Xóa trên hộp thoại xác nhận
4 Người dùng xóa tài khoản quản trị viên thành công Alternative flow
Bảng 3.32 Web Admin – Xóa quản trị viên
3.1.2.18 Chỉnh sửa thông tin quản trị viên
Name Chỉnh sửa thông tin quản trị viên
Brief description Quản trị viên thực hiện chỉnh sửa thông tin tài khoản quản trị viên khác hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Quyền của quản trị viên là cấp cao, có khả năng quản lý các quản trị viên khác
Basic flow 1 Người dùng chọn vào mục Quản trị viên
2 Người dùng chọn vào biểu tượng Chỉnh sửa trên danh sách tài khoản quản trị viên
3 Người dùng chỉnh sửa thông tin nhóm của tài khoản
4 Hệ thống kiểm tra và thay đổi thông tin tài khoản
5 Người dùng chỉnh sửa thông tin tài khoản quản trị viên thành công Alternative flow
Bảng 3.33 Web Admin – Chỉnh sửa thông tin quản trị viên
3.1.2.19 Thêm nhóm quản trị viên mới
Name Thêm nhóm quản trị viên mới
Brief description Quản trị viên thực hiện thêm nhóm quản trị viên mới
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Quyền của quản trị viên là cấp cao, có khả năng quản lý các nhóm quản trị viên
Basic flow 1 Người dùng chọn vào mục Nhóm quản trị viên
2 Người dùng chọn vào nút Thêm mới
3 Người dùng nhập thông tin tên nhóm
4 Hệ thống kiểm tra và xác thực thông tin
5 Người dùng thêm nhóm quản trị viên mới thành công Alternative flow Thiếu thông tin:
4.1 Hệ thống thông báo cần phải nhập tên nhóm 4.2 Quay lại bước 3 của ‘basic flow’
4.1 Hệ thống thông báo nhóm đã được tạo 4.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.34 Web Admin – Thêm nhóm quản trị viên
3.1.2.20 Xóa nhóm quản trị viên
Name Xóa nhóm quản trị viên
Brief description Quản trị viên thực hiện xóa nhóm quản trị viên hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Quyền của quản trị viên là cấp cao, có khả năng quản lý các nhóm quản trị viên
Basic flow 1 Người dùng chọn vào mục Nhóm quản trị viên
2.a Người dùng chọn vào biểu tượng Xóa trên danh sách các nhóm quản trị viên
2.b Người dùng tích chọn nhiều nhóm quản trị viên và nhấn nút Xóa
3 Người dùng chọn nút Xóa trên hộp thoại xác nhận
4 Người dùng xóa nhóm quản trị viên thành công Alternative flow
Bảng 3.35 Web Admin – Xóa nhóm quản trị viên
3.1.2.21 Chỉnh sửa thông tin nhóm quản trị viên
Name Chỉnh sửa thông tin nhóm quản trị viên
Brief description Quản trị viên thực hiện chỉnh sửa thông tin nhóm quản trị viên hiện có
Pre-conditions Quản trị viên đăng nhập thành công vào hệ thống
Quyền của quản trị viên là cấp cao, có khả năng quản lý các nhóm quản trị viên
Basic flow 1 Người dùng chọn vào mục Nhóm quản trị viên
2 Người dùng chọn vào biểu tượng Chỉnh sửa trên danh sách các nhóm quản trị viên
3 Người dùng chỉnh sửa thông tin tên nhóm
4 Hệ thống kiểm tra và thay đổi thông tin nhóm
5 Người dùng chỉnh sửa thông tin nhóm quản trị viên thành công Alternative flow Thiếu thông tin:
4.1 Hệ thống thông báo cần phải nhập tên nhóm 4.2 Quay lại bước 3 của ‘basic flow’
4.1 Hệ thống thông báo nhóm đã tạo 4.2 Quay lại bước 3 của ‘basic flow’
Bảng 3.36 Web Admin – Chỉnh sửa thông tin nhóm quản trị viên
Sơ đồ tuần tự
Hình 3.3 Sequence Diagram – Đăng nhập
Hình 3.4 Sequence Diagram – Đăng xuất
Hình 3.5 Sequence Diagram – Đăng ký
Hình 3.6 Sequence Diagram – Đổi Username
Hình 3.7 Sequence Diagram – Đổi ảnh đại diện
Hình 3.8 Sequence Diagram – Đổi mật khẩu
3.2.7 Hiện chi tiết bài viết
Hình 3.9 Sequence Diagram – Hiện chi tiết bài viết
Hình 3.10 Sequence Diagram – Thích bài viết
Hình 3.11 Sequence Diagram – Bình luận bài viết
Hình 3.12 Sequence Diagram – Tạo bài viết
Hình 3.13 Sequence Diagram – Xóa bài viết
3.2.12 Chỉnh sửa trạng thái bài viết
Hình 3.14 Sequence Diagram – Chỉnh sửa trạng thái bài viết
Hình 3.15 Sequence Diagram – Tìm kiếm người dùng
Hình 3.16 Sequence Diagram – Gửi kết bạn
Hình 3.17 Sequence Diagram – Phản hồi kết bạn
Lược đồ Cơ sở dữ liệu
Hình 3.18 Lược đồ Cơ sở dữ liệu
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 username string Tên hiển thị
3 email string Email đăng nhập
5 avatar string Ảnh đại diện
6 type string Cấp quản lý
7 group objectId ID – Nhóm quản trị viên
8 createdBy objectId ID – Quản trị viên
9 updatedBy objectId ID – Quản trị viên
10 createdAt double Thời gian tạo
11 updateAt double Thời gian cập nhật
Bảng 3.37 Mô tả collection Admin
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
3 admins array[objectId] ID – Quản trị viên
4 createdBy objectId ID – Quản trị viên
5 updatedBy objectId ID – Quản trị viên
6 createdAt double Thời gian tạo
7 updateAt double Thời gian cập nhật
Bảng 3.38 Mô tả collection AdminGroup
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 text string Nội dung bình luận
3 images array[objectId] ID – Tài nguyên
4 user objectId ID – Người dùng
5 parent objectId ID – Bình luận
6 post objectId ID – Bài viết
7 childComments array[objectId] ID – Bình luận
8 createdAt double Thời gian tạo
9 updateAt double Thời gian cập nhật
Bảng 3.39 Mô tả collection Comment
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 name string Tên niên khóa
3 startYear int Năm bắt đầu
4 createdBy objectId ID – Quản trị viên
5 updatedBy objectId ID – Quản trị viên
Bảng 3.40 Mô tả collection EnrollmenrtYear
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
4 createdBy objectId ID – Quản trị viên
5 updatedBy objectId ID – Quản trị viên
Bảng 3.41 Mô tả collection Faculty
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 sender objectId ID – Người dùng
3 receiver objectId ID – Người dùng
4 status string Trạng thái kết bạn
5 createdAt double Thời gian tạo
6 updateAt double Thời gian cập nhật
Bảng 3.42 Mô tả collection FriendShip
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 user objectId ID – Người dùng
3 admin objectId ID – Quản trị viên
4 publicKey string Khóa công khai tạo accessToken
5 privateKey string Khóa riêng tư tạo refreshToken
6 refreshTokenUsed array[string] Lưu các token đã hết hạn
7 refreshToken string Lưu token hiện tại
8 createdAt double Thời gian tạo
9 updateAt double Thời gian cập nhật
Bảng 3.43 Mô tả collection KeyToken
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 user objectId ID – Người dùng
3 userPage objectId ID – Trang cộng đồng
4 userType string Loại người dùng
5 post objectId ID – Bài viết
6 createdAt double Thời gian tạo
7 updateAt double Thời gian cập nhật
Bảng 3.44 Mô tả collection Like
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
5 createdBy objectId ID – Quản trị viên
6 updatedBy objectId ID – Quản trị viên
7 createdAt double Thời gian tạo
8 updateAt double Thời gian cập nhật
Bảng 3.45 Mô tả collection Major
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 userAuthor objectId ID – Người dùng
3 userPageAuthor objectId ID – Trang cộng đồng
4 content string Nội dung bài viết
5 postResources array[objectId] ID – Tài nguyên
6 likeCounts int Số lượt thích
7 likes array[objectId] ID – Thích
8 privacyMode int Trạng thái bài viết
9 createdAt double Thời gian tạo
10 updateAt double Thời gian cập nhật
Bảng 3.46 Mô tả collection Post
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 url string Đường dẫn tài nguyên
3 resourceType string Loại tài nguyên
4 createdAt double Thời gian tạo
5 updateAt double Thời gian cập nhật
Bảng 3.47 Mô tả collection ResourceStorage
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
2 identityCode string Mã định danh
5 email string Email đăng nhập
6 username string Tên hiển thị
10 avatar objectId ID – Tài nguyên
11 friends array[objectId] ID – Người dùng
12 friendCount int Số bạn bè
13 type int Loại người dùng
14 details mixed Chi tiết người dùng
15 createdAt double Thời gian tạo
16 updateAt double Thời gian cập nhật
Bảng 3.48 Mô tả collection User
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
6 enrollmentYear objectId ID – Niên khóa
Bảng 3.49 Mô tả collection CollegeStudent
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
Bảng 3.50 Mô tả collection Lecturer
STT Thuộc tính Kiểu dữ liệu Ý nghĩa
1 id objectId ID – Khóa chính
3 highSchool String Trường đang theo học
Bảng 3.51 Mô tả collection Candidate
Sơ đồ lớp
THIẾT KẾ PHẦN MỀM
Thiết kế giao diện và xử lý
Hình 4.1 Splash Screen – App UTeSocial
STT Tên Loại Ghi chú
1 Email Input Edit Text Nhập thông tin email
2 Password Input Edit Text Nhập thông tin mật khẩu
3 Login Button Button Thực hiện yêu cầu đăng nhập tài khoản
4 Register Button Button Thực hiện yêu cầu đăng ký tài khoản
Bảng 4.1 Mô tả màn hình đăng nhập – App UTeSocial
4.1.1.3 Màn hình đăng ký (nhập thông tin)
Hình 4.3 Màn hình đăng ký
STT Tên Loại Ghi chú
1 Close Button Menu Item Quay lại màn hình đăng nhập tài khoản
2 Next Button Menu Item Chuyển sang màn hình chọn vai trò
3 First Name Input Edit Text Nhập thông tin họ
4 Last Name Input Edit Text Nhập thông tin tên
Nhập thông tin email (được dùng để xác thực đăng nhập)
6 Birthdate Select Edit Text Chọn thông tin ngày sinh
7 Birthdate Icon Icon Button Chọn thông tin ngày sinh
8 Home Town Input Edit Text Nhập thông tin quê quán
Bảng 4.2 Mô tả màn hình đăng ký (nhập thông tin) – App
4.1.1.4 Màn hình đăng ký (chọn vai trò)
Hình 4.4 Màn hình đăng ký
STT Tên Loại Ghi chú
Quay lại màn hình nhập thông tin tài khoản
2 College Student Button Button Chọn vai trò là sinh viên
3 Lecturer Button Button Chọn vai trò là giảng viên
4 Candidate Button Button Chọn vai trò là thí sinh
Bảng 4.3 Mô tả màn hình đăng ký (chọn vai trò) – App
4.1.1.5 Màn hình đăng ký (sinh viên)
Hình 4.5 Màn hình đăng ký
STT Tên Loại Ghi chú
1 Back Button Menu Item Quay lại màn hình chọn vai trò
2 Next Button Menu Item Chuyển sang màn hình đặt mật khẩu
3 Identify Code Input Edit Text Nhập thông tin
Radio Button Chọn nếu sinh viên chưa tốt nghiệp
5 Grantuated RadioButton Radio Button Chọn nếu sinh viên đã tốt nghiệp
6 Faculty Select Edit Text Chọn thông tin khoa
7 Major Select Edit Text Chọn thông tin ngành
8 Enrollment Select Edit Text Chọn thông tin niên khóa
9 Class Code Input Edit Text Nhập thông tin mã lớp
Bảng 4.4 Mô tả màn hình đăng ký (sinh viên) – App
Hình 4.6 Màn hình đăng ký
(sinh viên - chọn khoa) – App
STT Tên Loại Ghi chú
Radio Button Chọn khoa cụ thể
2 Cancel Button Button Tắt hộp thoại
3 OK Button Button Xác nhận khoa đã chọn
Bảng 4.5 Mô tả hình đăng ký (sinh viên - chọn khoa) – App
Hình 4.7 Màn hình đăng ký
STT Tên Loại Ghi chú
Radio Button Chọn ngành cụ thể
2 Cancel Button Button Tắt hộp thoại
3 OK Button Button Xác nhận ngành đã chọn
Bảng 4.6 Mô tả màn hình đăng ký (sinh viên - chọn ngành) –
Hình 4.8 Màn hình đăng ký
(sinh viên - chọn niên khóa)
STT Tên Loại Ghi chú
Radio Button Chọn niên khóa cụ thể
2 Cancel Button Button Tắt hộp thoại
3 OK Button Button Xác nhận niên khóa đã chọn
Bảng 4.7 Mô tả màn đăng ký (sinh viên - chọn niên khóa) –
4.1.1.6 Màn hình đăng ký (giảng viên)
Hình 4.9 Màn hình đăng ký
STT Tên Loại Ghi chú
1 Back Button Menu Item Quay lại màn hình chọn vai trò
2 Next Button Menu Item Chuyển sang màn hình đặt mật khẩu
3 Identify Code Input Edit Text Nhập thông tin MGV
4 Faculty Select Edit Text Chọn thông tin khoa
Bảng 4.8 Mô tả màn hình đăng ký (giảng viên) – App
4.1.1.7 Màn hình đăng ký (thí sinh)
Hình 4.10 Màn hình đăng ký
STT Tên Loại Ghi chú
Quay lại màn hình chọn vai trò
Chuyển sang màn hình đặt mật khẩu
Edit Text Nhập thông tin mã thí sinh
4 Major Select Edit Text Chọn thông tin ngành muốn học
5 School Input Edit Text Nhập thông tin trường hiện tại đang theo học
Bảng 4.9 Mô tả màn hình đăng ký (thí sinh) – App UTeSocial
Hình 4.11 Màn hình đăng ký
(thí sinh - chọn ngành) – App
STT Tên Loại Ghi chú
2 Cancel Button Button Tắt hộp thoại
3 OK Button Button Xác nhận ngành đã chọn
Bảng 4.10 Mô tả màn hình đăng ký (thí sinh - chọn ngành) –
4.1.1.8 Màn hình đăng ký (đặt mật khẩu)
Hình 4.12 Màn hình đăng ký
(đặt mật khẩu) – App UTeSocial
STT Tên Loại Ghi chú
Quay lại màn hình nhập thông tin theo vai trò
Thực hiện yêu cầu đăng ký tài khoản
3 Passowrd Input Edit Text Nhập thông tin mật khẩu
Edit Text Nhập thông tin mật khẩu xác nhận
Bảng 4.11 Mô tả màn hình đăng ký (đặt mật khẩu) – App
STT Tên Loại Ghi chú
1 Search User Search Bar Tìm kiếm thông tin người dùng khác
2 Post Information Card View Nội dung của một bài viết
3 Create Post Button Button Tạo một bài viết mới
Thanh điều hướng tới các mục khác của ứng dụng
Bảng 4.12 Mô tả màn hình chính – App UTeSocial
4.1.1.10 Màn hình danh sách bài viết
Hình 4.14 Màn hình danh sách bài viết – App UTeSocial
STT Tên Loại Ghi chú
Hình đại diện của người đăng bài
2 Name Text View Tên của người đăng bài
3 Date Text View Ngày đăng bài
Chọn các mục thao tác với bài viết
5 Content Text View Nội dung của bài viết
6 Like Button Button Thích bài viết
7 Comment Button Button Bình luận vào bài viết
Bảng 4.13 Mô tả màn hình danh sách bài viết – App
4.1.1.11 Màn hình chi tiết bài viết
Hình 4.15 Màn hình chi tiết bài viết – App UTeSocial
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại màn hình trước
2 Menu Button Icon Button Chọn các mục thao tác với bài viết
Danh sách file phương tiện kèm theo bài viết
Bảng 4.14 Mô tả màn hình chi tiết bài viết – App UTeSocial
4.1.1.12 Màn hình tạo bài viết
Hình 4.16 Màn hình tạo bài viết – App UTeSocial
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại màn hình trước
Hoàn tất nhập thông tin và yêu cầu đăng thông tin bài viết
3 Content Input Edit Text Nhập thông tin nội dung bài viết
Thêm biểu tượng cảm xúc vào nội dung bài viết
Thêm các tệp phương tiện (hình ảnh, video) vào bài viết
6 Attach Button Icon Button Đính kèm các tệp tin khác vào bài viết
7 Location Button Icon Button Chia sẻ dữ liệu vị trí vào bài viết
Bảng 4.15 Mô tả màn hình tạo bài viết – App UTeSocial
4.1.1.13 Màn hình danh sách bạn bè
Hình 4.17 Màn hình danh sách bạn bè – App UTeSocial
STT Tên Loại Ghi chú
Tab Item Hiển thị danh sách bạn bè
Hiển thị danh sách các yêu cầu kết bạn
Tìm kiếm trong danh sách bạn bè với từ khóa cụ thể
4 Friend Item Item Thông tin bạn bè
Icon Button Hiển thị menu thao tác
Bảng 4.16 Mô tả màn hình danh sách bạn bè – App UTeSocial
Hình 4.18 Màn hình cài đặt
STT Tên Loại Ghi chú
1 Info Account View Thông tin tài khoản bao gồm ảnh đại diện và tên
Thực hiện yêu cầu đăng xuất khỏi tài khoản
3 Change Avatar Button Button Thực hiện đổi ảnh đại diện cho tài khoản
Button Thực hiện đổi mật khẩu cho tài khoản
Bảng 4.17 Mô tả màn hình cài đặt – App UTeSocial
4.1.1.15 Màn hình đổi ảnh đại diện
Hình 4.19 Màn hình đổi ảnh đại diện – App UTeSocial
STT Tên Loại Ghi chú
Menu Item Quay lại màn hình trước
Hiển thị ảnh đại diện của tài khoản hoặc ảnh xem trước
Chọn hình ảnh từ thư viện hình ảnh
Button Cập nhật ảnh đại diện theo ảnh đã chọn
Button Xóa ảnh đại diện hiện tại
Bảng 4.18 Mô tả màn hình đổi ảnh đại diện – App UTeSocial
4.1.1.16 Màn hình đổi mật khẩu
Hình 4.20 Màn hình đổi mật khẩu – App UTeSocial
STT Tên Loại Ghi chú
Menu Item Quay lại màn hình trước
Edit Text Nhập thông tin mật khẩu hiện tại
Edit Text Nhập thông tin mật khẩu mới
Edit Text Xác thực mật khẩu mới
5 Change Button Button Thực hiện yêu cầu đổi mật khẩu
Bảng 4.19 Mô tả màn hình đổi mật khẩu – App UTeSocial
4.1.1.17 Màn hình thông tin tài khoản
Hình 4 21 Màn hình thông tin tài khoản – App UTeSocial
STT Tên Loại Ghi chú
1 Back Button Menu Item Quay lại màn hình trước
2 Menu Button Menu Item Hiển thị menu tùy chọn thao tác tài khoản
Chỉnh sửa username của tài khoản
Xem thêm thông tin về tài khoản
Bảng 4.20 Mô tả màn hình thông tin tài khoản – App
4.1.1.18 Màn hình thông tin chi tiết
Hình 4.22 Màn hình thông tin chi tiết – App UTeSocial
STT Tên Loại Ghi chú
1 Back Button Menu Item Quay lại màn hình trước
Bảng 4.21 Mô tả màn hình thông tin chi tiết – App UTeSocial
Hình 4.23 Đăng nhập – Website Management
STT Tên Loại Ghi chú
1 Theme Button Button Chuyển đổi giữa chủ đề sáng và tối
2 Email Input Edit Text Nhập thông tin email đăng nhập
3 Password Input Edit Text Nhập thông tin mật khẩu đăng nhập
4 Login Button Button Thực hiện yêu cầu đăng nhập vào hệ thống
5 Switch Language Text Button Chuyển đổi ngôn ngữ giữa Tiếng Anh và Tiếng
Bảng 4.22 Mô tả trang đăng nhập – Website Management
STT Tên Loại Ghi chú
1 Theme Button Icon Button Chuyển đổi giữa chủ đề sáng và tối
2 Notification Button Icon Button Hiển thị menu chứa thông báo cho quản trị viên
3 Profile Button Icon Button Hiển thị menu tùy chỉnh về thông tin tài khoản
4 Profile Item Menu Item Hiển thị trang thông tin về tài khoản hiện tại
5 Language Item Menu Item Chuyển đổi ngôn ngữ giữa Tiếng Anh và
6 Logout Item Menu Item Thực hiện yêu cầu đăng xuất khỏi tài khoản hiện tại
7 Menu Options Navigation Rail Chứa các tùy chọn về những dữ liệu mà quản trị viên có thể quản lý
Bảng 4.23 Mô tả trang chủ – Website Management
Hình 4.25 Đổi mật khẩu – Website Management
STT Tên Loại Ghi chú
1 Home Icon Image View Biểu tượng điều hướng người dùng quay trở lại trang chủ
2 Current Password Input Edit Text Nhập thông tin mật khẩu hiện tại
3 New Password Input Edit Text Nhập thông tin mật khẩu mới
4 Confirm Password Input Edit Text Xác nhận lại mật khẩu mới
5 Change Button Button Thực hiện yêu cầu thay đổi mật khẩu cho tài khoản
Bảng 4.24 Mô tả trang đổi mật khẩu – Website Management
4.1.2.4 Trang quản lý niên khóa
Hình 4.26 Quản lý niên khóa – Website Management
STT Tên Loại Ghi chú
1 Search Item Search Bar Tìm kiếm niên khóa theo từ khóa
2 Choose All Item Check Box Chọn toàn bộ các niên khóa đang được hiển thị trong danh sách
3 Choose Item Check Box Chọn niên khóa cụ thể
4 Delete Button Button Xóa toàn bộ các niên khóa đã được chọn
5 Add Button Button Thêm một niên khóa mới
6 Filter Button Icon Button Lọc ra niên khóa theo yêu cầu cụ thể
7 Delete Icon Button Icon Button Xóa một niên khóa cụ thể
8 Edit Icon Button Icon Button Chỉnh sửa niên khóa hiện tại
9 Menu Quantity Menu Dropdown Tùy chỉnh số phần tử được hiển thị trong danh sách
10 Switch Tab Buttons Các button điều hướng giữa các phần tử trong danh sách
Bảng 4.25 Mô tả trang quản lý niên khóa – Website Management
Hình 4.27 Thêm niên khóa – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý niên khóa
2 Name Input Edit Text Nhập thông tin tên niên khóa
3 Year Begin Input Edit Text Nhập thông tin năm bắt đầu của niên khóa
4 Cancel Button Button Hủy quá trình tạo niên khóa mới
5 Add Button Button Thực hiện yêu cầu thêm niên khóa mới
Bảng 4.26 Mô tả trang thêm niên khóa – Website Management
4.1.2.6 Trang chỉnh sửa niên khóa
Hình 4.28 Chỉnh sửa niên khóa – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý niên khóa
2 Name Input Edit Text Cập nhật thông tin tên niên khóa
3 Year Begin Input Edit Text Cập nhật thông tin năm bắt đầu của niên khóa
4 Cancel Button Button Hủy quá trình cập nhật niên khóa
5 Add Button Button Thực hiện yêu cầu cập nhật thông tin niên khóa
Bảng 4.27 Mô tả trang chỉnh sửa niên khóa – Website Management
Hình 4.29 Quản lý khoa – Website Management [1]
Hình 4.30 Quản lý khoa – Website Management [2]
STT Tên Loại Ghi chú
1 Search Item Search Bar Tìm kiếm khoa theo từ khóa
2 Choose All Item Check Box Chọn toàn bộ các khoa đang được hiển thị trong danh sách
3 Choose Item Check Box Chọn khoa cụ thể
4 Delete Button Button Xóa toàn bộ các khoa đã được chọn
5 Add Button Button Thêm một khoa mới
6 Filter Button Icon Button Lọc ra khoa theo yêu cầu cụ thể
7 Delete Icon Button Icon Button Xóa một khoa cụ thể
8 Edit Icon Button Icon Button Chỉnh sửa khoa hiện tại
Tùy chỉnh số phần tử được hiển thị trong danh sách
10 Switch Tab Buttons Các button điều hướng giữa các phần tử trong danh sách
Bảng 4.28 Mô tả trang quản lý khoa – Website Management
Hình 4.31 Thêm khoa – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý khoa
2 Name Input Edit Text Nhập thông tin tên khoa
3 Year Begin Input Edit Text Nhập thông tin tên viết tắt của khoa
4 Cancel Button Button Hủy quá trình tạo khoa mới
5 Add Button Button Thực hiện yêu cầu thêm khoa mới
Bảng 4.29 Mô tả trang thêm khoa – Website Management
Hình 4.32 Chỉnh sửa khoa – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý khoa
2 Name Input Edit Text Cập nhật thông tin tên khoa
3 Year Begin Input Edit Text Cập nhật thông tin mã khoa
4 Cancel Button Button Hủy quá trình cập nhật khoa
5 Add Button Button Thực hiện yêu cầu cập nhật thông tin khoa
Bảng 4.30 Mô tả trang chỉnh sửa khoa – Website Management
Hình 4.33 Quản lý ngành – Website Management
STT Tên Loại Ghi chú
1 Search Item Search Bar Tìm kiếm ngành theo từ khóa
2 Choose All Item Check Box Chọn toàn bộ các ngành đang được hiển thị trong danh sách
3 Choose Item Check Box Chọn ngành cụ thể
4 Delete Button Button Xóa toàn bộ các ngành đã được chọn
5 Add Button Button Thêm một ngành mới
6 Filter Button Icon Button Lọc ra ngành theo yêu cầu cụ thể
7 Delete Icon Button Icon Button Xóa một ngành cụ thể
8 Edit Icon Button Icon Button Chỉnh sửa ngành hiện tại
Tùy chỉnh số phần tử được hiển thị trong danh sách
10 Switch Tab Buttons Các button điều hướng giữa các phần tử trong danh sách
Bảng 4.31 Mô tả trang quản lý ngành – Website Management
Hình 4.34 Thêm ngành – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý ngành
2 VI Name Input Edit Text Nhập thông tin tên ngành theo tiếng việt
3 EN Begin Input Edit Text Nhập thông tin tên ngành theo tiếng anh
4 Code Input Edit Text Nhập thông tin mã ngành
5 Cancel Button Button Hủy quá trình tạo ngành mới
6 Add Button Button Thực hiện yêu cầu thêm ngành mới
Bảng 4.32 Mô tả trang thêm ngành – Website Management
Hình 4.35 Chỉnh sửa ngành – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý ngành
2 VI Name Input Edit Text Cập nhật thông tin tên ngành tiếng việt
3 EN Name Input Edit Text Cập nhật thông tin tên ngành tiếng anh
4 Code Input Edit Text Cập nhật thông tin mã ngành
5 Cancel Button Button Hủy quá trình cập nhật ngành
6 Add Button Button Thực hiện yêu cầu cập nhật thông tin ngành
Bảng 4.33 Mô tả trang chỉnh sửa ngành – Website Management
4.1.2.13 Trang quản lý quản trị viên
Hình 4.36 Quản lý quản trị viên – Website Management
STT Tên Loại Ghi chú
1 Search Item Search Bar Tìm kiếm tài khoản theo từ khóa
2 Choose All Item Check Box Chọn toàn bộ các tài khoản đang được hiển thị trong danh sách
3 Choose Item Check Box Chọn tài khoản cụ thể
4 Delete Button Button Xóa toàn bộ các tài khoản đã được chọn
5 Add Button Button Thêm một tài khoản mới
6 Filter Button Icon Button Lọc ra tài khoản theo yêu cầu cụ thể
7 Delete Icon Button Icon Button Xóa một tài khoản cụ thể
8 Edit Icon Button Icon Button Chỉnh sửa tài khoản hiện tại
Tùy chỉnh số phần tử được hiển thị trong danh sách
10 Switch Tab Buttons Các button điều hướng giữa các phần tử trong danh sách
Bảng 4.34 Mô tả trang quản lý quản trị viên – Website Management
4.1.2.14 Trang thêm quản trị viên
Hình 4.37 Thêm quản trị viên – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý quản trị viên
2 Email Input Edit Text Nhập thông tin email
3 Password Input Edit Text Chứa thông tin mật khẩu (không cho phép điền, tự đặt mật khẩu)
4 Generate Icon Button Icon Button Tạo mật khẩu ngẫu nhiên
5 Copy Icon Button Icon Button Sao chép mật khẩu
6 Group Input Edit Text Nhập thông tin nhóm của tài khoản
7 Cancel Button Button Hủy quá trình tạo tài khoản mới
8 Add Button Button Thực hiện yêu cầu thêm tài khoản mới
Bảng 4.35 Mô tả trang thêm quản trị viên – Website Management
4.1.2.15 Trang chỉnh sửa quản trị viên
Hình 4.38 Chỉnh sửa quản trị viên – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý quản trị viên
2 Group Input Edit Text Cập nhật thông tin nhóm của tài khoản
3 Cancel Button Button Hủy quá trình cập nhật tài khoản
4 Add Button Button Thực hiện yêu cầu cập nhật thông tin tài khoản
Bảng 4.36 Mô tả trang chỉnh sửa quản trị viên – Website Management
4.1.2.16 Trang quản lý nhóm quản trị viên
Hình 4.39 Quản lý nhóm quản trị viên – Website Management
STT Tên Loại Ghi chú
1 Search Item Search Bar Tìm kiếm nhóm quản trị theo từ khóa
2 Choose All Item Check Box Chọn toàn bộ các nhóm quản trị đang được hiển thị trong danh sách
3 Choose Item Check Box Chọn nhóm quản trị cụ thể
4 Delete Button Button Xóa toàn bộ các nhóm quản trị đã được chọn
5 Add Button Button Thêm một nhóm quản trị mới
6 Filter Button Icon Button Lọc ra nhóm quản trị theo yêu cầu cụ thể
7 Delete Icon Button Icon Button Xóa một nhóm quản trị cụ thể
8 Edit Icon Button Icon Button Chỉnh sửa nhóm quản trị hiện tại
Tùy chỉnh số phần tử được hiển thị trong danh sách
10 Switch Tab Buttons Các button điều hướng giữa các phần tử trong danh sách
Bảng 4.37 Mô tả trang quản lý nhóm quản trị viên – Website Management
4.1.2.17 Trang thêm nhóm quản trị viên
Hình 4.40 Thêm nhóm quản trị viên – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý nhóm quản trị viên
2 Name Input Edit Text Nhập thông tin tên nhóm
3 Cancel Button Button Hủy quá trình tạo nhóm quản trị viên mới
4 Add Button Button Thực hiện yêu cầu thêm nhóm quản trị viên mới
Bảng 4.38 Mô tả trang thêm nhóm quản trị viên – Website Management
Cài đặt và kiểm thử ứng dụng
4.1.2.18 Trang chỉnh sửa nhóm quản trị viên
Hình 4.41 Chỉnh sửa nhóm quản trị viên – Website Management
STT Tên Loại Ghi chú
1 Back Button Icon Button Quay lại trang quản lý nhóm quản trị viên
2 Name Input Edit Text Cập nhật thông tin tên nhóm
3 Cancel Button Button Hủy quá trình cập nhật nhóm quản trị viên
4 Add Button Button Thực hiện yêu cầu cập nhật thông tin nhóm quản trị viên
Bảng 4.39 Mô tả trang chỉnh sửa nhóm quản trị viên – Website Management
4.2 Cài đặt và kiểm thử ứng dụng
▪ Tải xuống file apk đã được cung cấp
Hình 4.42 Tải xuống file APK
▪ Di chuyển vào thư mục ‘Downloads’ trong ứng dụng quản lý file
Hình 4.43 Lưu file vào thư mục Download của thiết bị
▪ Chọn vào file APK và cho phép quá trình cài đặt diễn ra
Hình 4.44 Hộp thoại yêu cầu cho phép cài đặt ứng dụng
▪ Hoàn tất quá trình cài đặt và khởi động ứng dụng
Hình 4.45 Hoàn tất quá trình cài đặt ứng dụng
▪ Tải xuống Project ứng dụng UTeSocial đã được cung cấp
Hình 4.46 Tải xuống folder Project
▪ Khởi chạy Android Studio → chọn mục Open → điều hướng đến thư mục đã tải → Xác nhận
Hình 4.47 Chọn và mở folder Project
▪ Khởi động máy ảo hoặc cắm trực tiếp thiết bị vật lý (có bật Developer Options)
Hình 4.48 Chọn loại thiết bị để chạy Project
▪ Nhấn vào nút chạy trên thanh tác vụ để xây dựng, cài đặt và khởi động ứng dụng
Hình 4.49 Chọn Run trên thanh tác vụ
Hình 4.50 Khởi chạy Project thành công
▪ Tải xuống Project web Admin đã được cung cấp
Hình 4.51 Tải xuống folder Project web admin
▪ Điều hướng đến thư mục đã tải → khởi động Terminal
Hình 4.52 Khởi động Terminal trên folder đã tải
Hình 4.53 Chạy lên npm install
▪ Chạy lệnh ‘npm run dev’
Hình 4.54 Chạy lệnh npm run dev
▪ Sao chép đường dẫn hiện ra và truy cập vào trang web
Hình 4.55 Xuất URL sau khi chạy thành công
Hình 4.56 Truy cập vào werbsite của admin
4.2.2.1 Chức năng thuộc người dùng
STT Testcase Kết quả mong đợi Kết quả
1 Đăng nhập Đăng nhập thành công vào tài khoản, đúng vai trò Pass
2 Đăng ký Đăng ký tài khoản thành công khi người dùng cung cấp tất cả đầu vào hợp lệ Pass
3 Đăng xuất Đăng xuất tài khoản khỏi hệ thống, không còn lưu thông tin đăng nhập nếu mở lại ứng dụng Pass
4 Đổi mật khẩu Thực hiện đổi mật khẩu cho tài khoản khi người dùng cung cấp các đầu vào hợp lệ Pass
5 Xem thông tin tài khoản Hiển thị đúng các thông tin về tài khoản cho người dùng Pass
6 Xem các bài viết Hiển thị và xem được các bài viết hiện tại trên màn hình chính Pass
7 Xem thông tin chi tiết
Hiển thị thông tin chi tiết của một bài viết Hiển thị tất cả hình ảnh
Cho phép người dùng nhấn vào nội dung rút gọn của bài viết để đọc toàn bộ nội dung
8 Đăng một bài viết Tạo một bài viết thành công Pass
Bảng 4.40 Kiểm thử các chức năng phía người dùng
STT Testcase Kết quả mong đợi Kết quả
1 Đăng nhập Đăng nhập thành công vào tài khoản, đúng vai trò Pass
2 Đăng xuất Đăng xuất tài khoản khỏi hệ thống, không còn lưu thông tin đăng nhập nếu mở lại ứng dụng
3 Xem thông tin tài khoản Hiển thị đúng các thông tin về tài khoản cho quản trị viên Pass
4 Đổi mật khẩu Thực hiện đổi mật khẩu cho tài khoản khi quản trị viên cung cấp các đầu vào hợp lệ Pass
5 Quản lý niên khóa Quản lý dữ liệu niên khóa (thêm, xóa và chỉnh sửa) trong hệ thống Pass
6 Quản lý khoa Quản lý dữ liệu khoa (thêm, xóa và chỉnh sửa) trong hệ thống Pass
7 Quản lý ngành Quản lý dữ liệu ngành (thêm, xóa và chỉnh sửa) trong hệ thống Pass
8 Quản lý quản trị viên Quản lý dữ liệu quản trị viên (thêm, xóa và chỉnh sửa) trong hệ thống Pass
9 Quản lý nhóm quản trị viên Quản lý dữ liệu nhóm quản trị viên (thêm, xóa và chỉnh sửa) trong hệ thống Pass
Bảng 4.41 Kiểm thử các chức năng phía quản trị viên
▪ Liên kết của Web API Document: https://social-network-server- k7ga.onrender.com/api-docs/
▪ Các tài khoản thử nghiệm:
Mật khẩu: tf;566ZX,eXsPQgx8bRb!i{8[
Email: 19110491@student.hcmute.edu.vn Mật khẩu: 12345678
NHỮNG KẾT QUẢ ĐẠT ĐƯỢC
Trong quá trình thực hiện đề tài, các thành viên trong nhóm đã có thể học hỏi cũng như trau dồi được thêm nhiều kiến thức hữu ích cho bản thân
▪ Phát triển ứng dụng Android với ngôn ngữ Kotlin hiện đại, nâng cao chất lượng ứng dụng và làm gọn mã hơn
▪ Xây dựng ứng dụng theo clean architecture, tạo nên sự nhất quán cho dự án cũng như dễ dàng thay thế, sửa lỗi hơn
▪ Hiểu được rõ cách viết các APIs và phát triển server back-end bằng Node.js và hệ quản trị cơ sở dữ liệu MongoDB
▪ Nghiên cứu những thư viện mới và hiện đại, cũng như cách sử dụng và tích hợp vào phần mềm
▪ Học được thêm cách để triển khai server, web app, mobile app lên các công cụ khác nhau
▪ Học hỏi được các debug để tìm lỗi và giải quyết các lỗi xảy ra trong quá trình phát triển phần mềm
▪ Học và tiếp tục thu được nhiều kiến thức mới
▪ Rèn luyện kỹ năng làm việc nhóm, giải quyết vấn đề chung
▪ Tư duy phản biện, kỹ năng giao tiếp giữa các thành viên trong nhóm
▪ Kỹ năng đọc tài liệu tiếng anh, tự học, tự nghiên cứu để giải quyết khó khăn
▪ Kỹ năng kiểm thử phần mềm để đảm bảo chất lượng của ứng dụng
Sau quá trình thực hiện đề tài, nhóm đã đạt được:
▪ Ứng dụng mạng xã hội UTeSocial trên nền tảng di động
▪ Website dành cho admin của hệ thống UTeSocial
▪ Server quản lý dữ liệu cho hệ thống UTeSocial
▪ Sơ đồ, lược đồ miêu tả cho hệ thống UTeSocial
▪ Các tài liệu báo cáo cho hệ thống UTeSocial
Sau khi thực hiện đề tài, nhóm đã có thêm nhiều kinh nghiệm về:
▪ Kinh nghiệm lập trình ứng dụng di động
▪ Kinh nghiệm lập trình website bằng Vue.js
▪ Kinh nghiệm lập trình server với Node.js
▪ Kinh nghiệm phát triển, triển khai ứng dụng và kiểm thử phần mềm
▪ Kinh nghiệm làm việc với MongoDB.
ƯU ĐIỂM VÀ NHƯỢC ĐIỂM
▪ Các chương trình được triển khai cho phép người dùng có thể cài đặt và sử dụng một cách dễ dàng
▪ Hệ thống bao gồm các tính năng cần có và hoạt động ổn định
▪ Giao diện UI một số nơi vẫn chưa được bắt mắt
▪ Trải nghiệm UX chưa thật sự mượt mà
▪ Một số tính năng có thể chưa được xử lý tối ưu
▪ Vẫn chưa có đầy đủ các chức năng giúp tăng thêm trải nghiệm của người dùng.
THUẬN LỢI
▪ Với sự hướng dẫn nhiệt tình từ thầy Nguyễn Hữu Trung nói riêng và toàn thể các quý thầy/cô trong khoa Công nghệ Thông tin nói chung đã giúp đỡ nhóm rất nhiều trong quá trình thực hiện đề tài
▪ Đã có kinh nghiệm lập trình Android với ngôn ngữ lập trình Java từ trước, dễ dàng tiếp cận Kotlin giúp giảm lượng mã phải viết và tối ưu hóa ứng dụng
▪ Đã có hiểu biết về ngôn ngữ lập trình JavaScript, giúp thuận lợi hơn trong việc tiếp cận và làm việc với Node.js.
KHÓ KHĂN
▪ Thời gian thực hiện đề tài cần phải phát triển song song server-backend, website manager và app android
▪ Clean architecture nhìn chung khá rắc rối cho việc triển khai và phát triển ban đầu
▪ Với kinh nghiệm và kỹ năng còn nhiều thiếu sót, cộng với đó là cách thức làm việc còn nhiều hạn chế, nhóm gặp không ít khó khăn và trở ngại để giải quyết các vấn đề phát sinh trong quá trình thực hiện đề tài