1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng ứng dụng mạng xã hội utesocial trên android

115 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng mạng xã hội UTeSocial trên Android
Tác giả Nguyễn Quang Vinh, Nguyễn Văn Trường
Người hướng dẫn ThS. Nguyễn Hữu Trung
Trường học Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 115
Dung lượng 8,8 MB

Cấu trúc

  • 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (23)
  • 2. MỤC TIÊU CỦA ĐỀ TÀI (23)
  • 3. PHẠM VI ĐỀ TÀI (24)
  • 4. PHƯƠNG PHÁP THỰC HIỆN (24)
  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT (25)
    • 1.1. Xây dựng ứng dụng (25)
      • 1.1.1. Android Framework (25)
      • 1.1.2. Kotlin (25)
      • 1.1.3. Clean Architecture trong Android (26)
      • 1.1.4. Một số thư viện hỗ trợ (28)
        • 1.1.4.1. Retrofit (28)
        • 1.1.4.2. Hilt (28)
    • 1.2. Nền tảng hệ thống (29)
      • 1.2.1. Node.js (29)
      • 1.2.2. MongoDB (30)
      • 1.2.3. Firebase Storage (30)
      • 1.2.4. Vuetify (31)
    • 1.3. Kết hợp công nghệ (32)
  • CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG & XÁC ĐỊNH YÊU CẦU (33)
    • 2.1. Phân tích hiện trạng (33)
    • 2.2. Khảo sát một số phần mềm (34)
      • 2.2.1. Zalo (34)
    • 2.3. Phân tích yêu cầu của dự án (36)
    • 2.4. Danh sách yêu cầu chức năng nghiệp vụ (37)
    • 2.5. Danh sách yêu cầu chức năng hệ thống (38)
    • 2.6. Danh sách yêu cầu phi chức năng (38)
  • CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ (39)
    • 3.1. Mô hình hóa yêu cầu (39)
      • 3.1.1. Phân hệ người dùng ứng dụng (39)
        • 3.1.1.1. Đăng nhập (39)
        • 3.1.1.2. Đăng xuất (40)
        • 3.1.1.3. Đăng ký (40)
        • 3.1.1.4. Đổi Username (41)
        • 3.1.1.5. Đổi ảnh đại diện (41)
        • 3.1.1.6. Đổi mật khẩu (42)
        • 3.1.1.7. Hiện chi tiết bài viết (43)
        • 3.1.1.8. Thích bài viết (43)
        • 3.1.1.9. Bình luận bài viết (44)
        • 3.1.1.10. Tạo bài viết (44)
        • 3.1.1.11. Xóa bài viết (45)
        • 3.1.1.12. Chỉnh sửa trạng thái bài viết (45)
        • 3.1.1.13. Tìm kiếm người dùng (46)
        • 3.1.1.14. Gửi kết bạn (46)
        • 3.1.1.15. Phản hồi kết bạn (47)
      • 3.1.2. Phân hệ quản trị viên (48)
        • 3.1.2.1. Đăng nhập (48)
        • 3.1.2.2. Đăng xuất (49)
        • 3.1.2.3. Đổi mật khẩu (49)
        • 3.1.2.4. Thêm người dùng mới (50)
        • 3.1.2.5. Xóa người dùng (51)
        • 3.1.2.6. Chỉnh sửa thông tin người dùng (51)
        • 3.1.2.7. Thêm niên khóa mới (52)
        • 3.1.2.8. Xóa niên khóa (52)
        • 3.1.2.9. Chỉnh sửa thông tin niên khóa (53)
        • 3.1.2.10. Thêm khoa mới (53)
        • 3.1.2.11. Xóa khoa (54)
        • 3.1.2.12. Chỉnh sửa thông tin khoa (55)
        • 3.1.2.13. Thêm ngành mới (55)
        • 3.1.2.14. Xóa ngành (56)
        • 3.1.2.15. Chỉnh sửa thông tin ngành (56)
        • 3.1.2.16. Thêm quản trị viên mới (57)
        • 3.1.2.17. Xóa quản trị viên (58)
        • 3.1.2.18. Chỉnh sửa thông tin quản trị viên (58)
        • 3.1.2.19. Thêm nhóm quản trị viên mới (59)
        • 3.1.2.20. Xóa nhóm quản trị viên (59)
        • 3.1.2.21. Chỉnh sửa thông tin nhóm quản trị viên (60)
    • 3.2. Sơ đồ tuần tự (61)
      • 3.2.1. Đăng nhập (61)
      • 3.2.2. Đăng xuất (62)
      • 3.2.3. Đăng ký (62)
      • 3.2.4. Đổi Username (63)
      • 3.2.5. Đổi ảnh đại diện (63)
      • 3.2.6. Đổi mật khẩu (64)
      • 3.2.7. Hiện chi tiết bài viết (64)
      • 3.2.8. Thích bài viết (65)
      • 3.2.9. Bình luận bài viết (65)
      • 3.2.10. Tạo bài viết (66)
      • 3.2.11. Xóa bài viết (66)
      • 3.2.12. Chỉnh sửa trạng thái bài viết (67)
      • 3.2.13. Tìm kiếm người dùng (67)
      • 3.2.14. Gửi kết bạn (68)
      • 3.2.15. Phản hồi kết bạn (68)
    • 3.3. Lược đồ Cơ sở dữ liệu (69)
      • 3.3.1. Admin (69)
      • 3.3.2. AdminGroup (69)
      • 3.3.3. Comment (70)
      • 3.3.4. EnrollmentYear (70)
      • 3.3.5. Faculty (70)
      • 3.3.6. FriendShip (71)
      • 3.3.7. KeyToken (71)
      • 3.3.8. Like (71)
      • 3.3.9. Major (72)
      • 3.3.10. Post (72)
      • 3.3.11. ResourceStorage (72)
      • 3.3.12. User (73)
      • 3.3.13. CollegeStudent (73)
      • 3.3.14. Lecturer (73)
      • 3.3.15. Candidate (74)
    • 3.4. Sơ đồ lớp (74)
  • CHƯƠNG 4: THIẾT KẾ PHẦN MỀM (75)
    • 4.1. Thiết kế giao diện và xử lý (75)
      • 4.1.1. Ứng dụng UTeSocial (75)
        • 4.1.1.1. Màn hình Splash Screen (75)
        • 4.1.1.2. Màn hình đăng nhập (76)
        • 4.1.1.3. Màn hình đăng ký (nhập thông tin) (77)
        • 4.1.1.4. Màn hình đăng ký (chọn vai trò) (78)
        • 4.1.1.5. Màn hình đăng ký (sinh viên) (79)
        • 4.1.1.6. Màn hình đăng ký (giảng viên) (81)
        • 4.1.1.7. Màn hình đăng ký (thí sinh) (82)
        • 4.1.1.8. Màn hình đăng ký (đặt mật khẩu) (83)
        • 4.1.1.9. Màn hình chính (83)
        • 4.1.1.10. Màn hình danh sách bài viết (84)
        • 4.1.1.11. Màn hình chi tiết bài viết (84)
        • 4.1.1.12. Màn hình tạo bài viết (85)
        • 4.1.1.13. Màn hình danh sách bạn bè (86)
        • 4.1.1.14. Màn hình cài đặt (86)
        • 4.1.1.15. Màn hình đổi ảnh đại diện (87)
        • 4.1.1.16. Màn hình đổi mật khẩu (87)
        • 4.1.1.17. Màn hình thông tin tài khoản (88)
        • 4.1.1.18. Màn hình thông tin chi tiết (88)
      • 4.1.2. Website Management (89)
        • 4.1.2.1. Trang đăng nhập (89)
        • 4.1.2.2. Trang chủ (90)
        • 4.1.2.3. Trang đổi mật khẩu (91)
        • 4.1.2.4. Trang quản lý niên khóa (92)
        • 4.1.2.5. Trang thêm niên khóa (93)
        • 4.1.2.6. Trang chỉnh sửa niên khóa (93)
        • 4.1.2.7. Trang quản lý khoa (94)
        • 4.1.2.8. Trang thêm khoa (95)
        • 4.1.2.9. Trang chỉnh sửa khoa (96)
        • 4.1.2.10. Trang quản lý ngành (96)
        • 4.1.2.11. Trang thêm ngành (97)
        • 4.1.2.12. Trang chỉnh sửa ngành (98)
        • 4.1.2.13. Trang quản lý quản trị viên (99)
        • 4.1.2.14. Trang thêm quản trị viên (100)
        • 4.1.2.15. Trang chỉnh sửa quản trị viên (101)
        • 4.1.2.16. Trang quản lý nhóm quản trị viên (101)
        • 4.1.2.17. Trang thêm nhóm quản trị viên (102)
        • 4.1.2.18. Trang chỉnh sửa nhóm quản trị viên (103)
    • 4.2. Cài đặt và kiểm thử ứng dụng (0)
      • 4.2.1. Cài đặt (103)
        • 4.2.1.1. Ứng dụng UTeSocial (103)
        • 4.2.1.2. Website Management (106)
      • 4.2.2. Kiểm thử (0)
        • 4.2.2.1. Chức năng thuộc người dùng (108)
        • 4.2.2.2. Chức năng thuộc Admin (109)
      • 4.2.3. Thông tin thêm (109)
    • 1. NHỮNG KẾT QUẢ ĐẠT ĐƯỢC (111)
      • 1.1. Kiến thức (111)
      • 1.2. Đề tài (111)
      • 1.3. Kinh nghiệm (112)
    • 2. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM (112)
      • 1.1. Ưu điểm (112)
      • 1.2. Nhược điểm (112)
    • 3. THUẬN LỢI (112)
    • 4. KHÓ KHĂN (112)
    • 5. HƯỚNG PHÁT TRIỂN (113)
  • TÀI LIỆU THAM KHẢO (7)
    • Chương 2: Khảo sát hiện trạng & Xác định yêu cầu Hình 2.1. Màn hình Đăng nhập/Đăng ký (0)
    • Chương 3: Phân tích thiết kế Hình 3.1. Usecase Diagram – App User (0)
    • Chương 4: Thiết kế phần mềm Hình 4.1. Splash Screen – App UTeSocial (0)
    • Chương 3: Phân tích thiết kế Bảng 3.1. App User – Đăng nhập (0)
    • Chương 4: Thiết kê phần mềm Bảng 4.1. Mô tả màn hình đăng nhập – App UTeSocial (0)

Nội dung

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

Ngày đăng: 01/10/2024, 12:19

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Top Android Development Frameworks to Learn in 2019 | GeeksForGeeks https://www.geeksforgeeks.org/top-android-development-frameworks-to-learn-in-2019/ Link
[2]. Your first program in Kotlin | Android Developer Team https://developer.android.com/codelabs/basic-android-kotlin-compose-first-program#0 [3]. Guide to app architecture | Android Developer Teamhttps://developer.android.com/topic/architecture Link
[4]. Retrofit là gì? Tại sao retrofit quan trọng với lập trình Android? | Bộ môn Công nghệ Thông tin – Trường Cao đẳng FPT Polytechnic cơ sở Hà Nộihttps://caodang.fpt.edu.vn/tin-tuc-poly/retrofit-la-gi-tai-sao-retrofit-quan-trong-voi-lap-trinh-android.html Link
[5]. DEPENDENCY INJECTION WITH HILT – ANDROID | Muskan Nande https://www.innodeed.com/dependency-injection-with-hilt-android/ Link
[7]. MongoDB là gì? Kiến thức về MongoDB bạn đã biết chưa? | admin https://www.bkns.vn/mongodb-la-gi.html Link
[8]. Firebase: Cloud Storage | JavaTPoint https://www.javatpoint.com/firebase-cloud-storage [9]. Vue Component Framework | Vuetify Link

HÌNH ẢNH LIÊN QUAN

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 - xây dựng ứng dụng mạng xã hội utesocial trên android
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 (Trang 34)
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 - xây dựng ứng dụng mạng xã hội utesocial trên android
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 (Trang 35)
Hình 2.7. Màn hình thông tin cá nhân - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 2.7. Màn hình thông tin cá nhân (Trang 36)
Hình 3.1. Usecase Diagram – App User - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.1. Usecase Diagram – App User (Trang 39)
Bảng 3.25. Web Admin – Thêm khoa - xây dựng ứng dụng mạng xã hội utesocial trên android
Bảng 3.25. Web Admin – Thêm khoa (Trang 54)
Bảng 3.36. Web Admin – Chỉnh sửa thông tin nhóm quản trị viên - xây dựng ứng dụng mạng xã hội utesocial trên android
Bảng 3.36. Web Admin – Chỉnh sửa thông tin nhóm quản trị viên (Trang 61)
Hình 3.6. Sequence Diagram – Đổi Username - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.6. Sequence Diagram – Đổi Username (Trang 63)
Hình 3.7. Sequence Diagram – Đổi ảnh đại diện - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.7. Sequence Diagram – Đổi ảnh đại diện (Trang 63)
Hình 3.8. Sequence Diagram – Đổi mật khẩu - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.8. Sequence Diagram – Đổi mật khẩu (Trang 64)
Hình 3.11. Sequence Diagram – Bình luận bài viết - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.11. Sequence Diagram – Bình luận bài viết (Trang 65)
Hình 3.12. Sequence Diagram – Tạo bài viết - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.12. Sequence Diagram – Tạo bài viết (Trang 66)
Hình 3.14. Sequence Diagram – Chỉnh sửa trạng thái bài viết - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.14. Sequence Diagram – Chỉnh sửa trạng thái bài viết (Trang 67)
Hình 3.16. Sequence Diagram – Gửi kết bạn - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.16. Sequence Diagram – Gửi kết bạn (Trang 68)
Hình 3.18. Lược đồ Cơ sở dữ liệu - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 3.18. Lược đồ Cơ sở dữ liệu (Trang 69)
Hình 4.46. Tải xuống folder Project - xây dựng ứng dụng mạng xã hội utesocial trên android
Hình 4.46. Tải xuống folder Project (Trang 105)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w