GIỚI THIỆU
Tiếng Anh hiện nay đã trở thành ngôn ngữ phổ biến, dẫn đến nhu cầu học và chia sẻ kinh nghiệm thi cử ngày càng tăng Nhằm đáp ứng nhu cầu này, nhóm chúng tôi đã phát triển một ứng dụng di động giúp người dùng chia sẻ tài liệu và kinh nghiệm luyện thi Tiếng Anh, tận dụng sự phổ biến của smartphone trong cuộc sống hàng ngày.
- Mục tiêu: Hổ trợ người dùng trong việc tìm kiếm tài liệu cũng như là các kinh nghiệm của những nguời học Tiếng Anh
- Các chức năng chính: Chia sẻ tài liệu, kinh nghiệm học tập, làm các mẫu bài tập.
KHẢO SÁT
Các ứng dụng đã khảo sát
Diễn đàn học tiếng Anh này cho phép người dùng đặt câu hỏi, thảo luận về nhiều chủ đề và chia sẻ video, tài liệu cùng các nguồn học tiếng Anh Người dùng cũng có thể thực hiện các bài kiểm tra thử trực tiếp trên trang, tạo cơ hội để nâng cao kỹ năng ngôn ngữ của mình.
Nền tảng này hoàn toàn miễn phí, giúp người dùng tiếp cận kiến thức mà không tốn chi phí Nội dung bài viết được phân chia rõ ràng theo từng chuyên mục và chủ đề cụ thể, mang lại sự tiện lợi cho việc tìm kiếm thông tin Hệ thống bỏ phiếu cho phép người học đánh giá độ tin cậy của người trả lời và chất lượng câu trả lời, từ đó nâng cao trải nghiệm học tập.
• Nhược điểm: o Ngôn ngữ sử dụng trên trang web chỉ có tiếng Anh nên cần trình độ tiếng Anh nhất định để có thể sử dụng
Việc không sử dụng thẻ (tag) gây khó khăn trong việc tìm kiếm bài viết theo từ khóa, trong khi chỉ có trên nền tảng web cũng làm giảm tính tiện lợi cho người dùng thiết bị di động.
Tapatalk là ứng dụng bao gồm hơn 200000 diễn đàn khác nhau
Người dùng có thể kết nối với những người có cùng sở thích bằng cách xem, đăng tải bài viết và bình luận trên các diễn đàn bằng tiếng Anh.
Nền tảng này mang lại nhiều ưu điểm nổi bật, bao gồm sự đa dạng trong các lĩnh vực và diễn đàn để người dùng thảo luận Bài viết hỗ trợ nhiều loại phương tiện như hình ảnh, âm thanh và video, giúp tăng tính tương tác Hệ thống chat tích hợp giống như mạng xã hội, tạo điều kiện cho người dùng kết nối dễ dàng Đặc biệt, khả năng đồng bộ giữa nhiều nền tảng khác nhau giúp người dùng truy cập thông tin thuận tiện hơn.
Bài viết này nêu rõ một số nhược điểm của ứng dụng học tiếng Anh Đầu tiên, nội dung hoàn toàn bằng tiếng Anh và thiếu chương trình dịch, gây khó khăn cho người mới bắt đầu Thứ hai, phiên bản miễn phí bị giới hạn nhiều tính năng, ảnh hưởng đến trải nghiệm người dùng Cuối cùng, mặc dù có nhiều diễn đàn, nhưng hầu hết không tập trung vào việc luyện thi tiếng Anh, làm giảm hiệu quả học tập.
Idyoma là ứng dụng di động học ngôn ngữ xã hội độc đáo, giúp người dùng kết nối và nhắn tin với nhau để thực hành ngôn ngữ Người dùng có thể thay phiên nhau nói ngôn ngữ của nhau, tạo cơ hội luyện tập hiệu quả và tự nhiên.
Học ngôn ngữ từ người bản địa mang lại hiệu quả cao hơn, giúp người học tiếp thu kiến thức một cách tự nhiên và sinh động Ngoài ra, phương pháp học không bị giới hạn trong khuôn khổ truyền thống, tạo sự hứng thú và động lực cho người học trong quá trình tiếp cận ngôn ngữ mới.
Một số nhược điểm của ứng dụng bao gồm việc thiếu tính năng tìm kiếm người đối thoại theo độ tuổi và sở thích, điều này gây khó khăn cho người dùng trong việc kết nối Thêm vào đó, sự xuất hiện của nhiều tài khoản ảo cũng làm cho việc tìm kiếm đối tác học tập trở nên khó khăn hơn.
HiNative là nền tảng toàn cầu dành cho người học ngoại ngữ, cho phép người dùng đặt câu hỏi hoặc trả lời về ngôn ngữ và văn hóa với người bản địa từ khắp nơi trên thế giới.
Ứng dụng này mang lại nhiều ưu điểm nổi bật, bao gồm khả năng hỏi và trả lời qua nhiều phương tiện như văn bản, hình ảnh, âm thanh và video Hệ thống cấp độ và tính điểm khi người dùng trả lời giúp tạo động lực cho người khác tham gia Ngoài ra, ứng dụng còn tích hợp chức năng dịch tự động, tiết kiệm thời gian tra cứu thông tin Người dùng cũng có thể sử dụng các mẫu câu hỏi có sẵn để hỏi nhanh hơn Đặc biệt, giao diện tiếng Việt giúp những người mới bắt đầu học tiếng Anh dễ dàng sử dụng.
Ứng dụng này có một số nhược điểm, bao gồm việc chỉ hoạt động như một nền tảng hỏi và đáp đơn giản, gây khó khăn trong việc chia sẻ tài liệu học tiếng Anh Hơn nữa, những câu hỏi khó có thể không nhận được phản hồi từ người dùng, làm giảm hiệu quả sử dụng.
Đề xuất các tính năng chính cho ứng dụng dự định xây dựng
• Đăng bài viết: Tính năng để người dùng đặt câu hỏi hoặc chia sẻ kiến thức
• Bình luận: Tính năng để người dùng thảo luận trong một bài viết
• Đăng tải tài liệu: Tính năng để người dùng chia sẻ tài liệu
• Phiên dịch: Tăng tính tiện lợi, giúp người dùng tiết kiệm thời gian tra cứu
• Làm bài tập, bài kiểm tra thử: Tính năng để người dùng ôn tập và kiểm tra trình độ.
PHÂN TÍCH
Mô hình Usecase
Danh sách các Actor
STT Tên Actor Ý nghĩa/Ghi chú
2 Người dùng chưa có tài khoản
Danh sách các Usecase
STT Tên Use-case Ý nghĩa/Ghi chú
14 Sửa thông tin cá nhân
Đặc tả Usecase
3.4.1.1 Đặc tả Use-case “Đăng ký”
Người dùng chưa đăng ký dùng chức năng đăng ký để tạo một tài khoản
1 Người dùng chưa có tài khoản nhấn nút “Tạo tài khoản” trên ứng dụng
2 Người dùng chưa đăng ký nhập các thông tin:
3 Người dùng chưa đăng ký nhấn nút “Đăng ký”
3.4.1.1.2.2 Các dòng sự kiện khác
Nếu người dùng chưa đăng ký nhập thông tin không hợp lệ thì hệ thống sẽ thông báo và yêu cầu nhập lại
3.4.1.1.3 Các yêu cầu đặc biệt
3.4.1.2 Đặc tả Use-case “Đăng nhập”
Người dùng sử dụng tài khoản đã đăng ký để đăng nhập vào hệ thống
1 Người dùng nhấn nút “Đăng nhập” trên ứng dụng
2 Người dùng nhập các thông tin: a Tên tài khoản (Hoặc Gmail) b Mật khẩu
3 Người dùng nhấn nút “Đăng nhập”
3.4.1.2.2.2 Các dòng sự kiện khác
Nếu người dùng nhập một trong hai thông tin không hợp lệ thì hệ thống sẽ thông báo và yêu cầu người dùng nhập lại
3.4.1.2.3 Các yêu cầu đặc biệt
Người dùng đã tạo tài khoản thành công
3.4.1.3 Đặc tả Use-case “Tạo bài viết”
Người dùng ấn vào biểu tượng tạo bài viết trên ứng dụng để tạo một bài viết
1 Người dùng nhấn vào biểu tượng tạo bài viết trên ứng dụng
2 Người dùng nhập các thông tin:
3 Người dùng nhấn nút “Tạo bài viết” a Tên chủ đề bài viết b Nội dung bài viết
3.4.1.3.2.2 Các dòng sự kiện khác
Nếu người dùng nhập không đủ thông tin (Chủ đề hoặc nội dung) thì hệ thống sẽ thông báo và yêu cầu người dùng nhập lại
3.4.1.3.3 Các yêu cầu đặc biệt
Khi thêm nội dung bài viết thì người dùng có thể thêm vào file đính kèm (không bắt buộc)
3.4.1.4 Đặc tả Use-case “Sửa bài viết”
Người dùng muốn sửa lại thông tin bài viết của mình thì sẽ chọn bài viết rồi nhấn nút “Sửa”
1 Người dùng chọn bài viết của mình
2 Người dùng nhấn nút “Sửa”
3 Người dùng sửa lại thông tin mà mình muốn sửa
4 Người dùng nhất nút “Sửa”
3.4.1.4.2.2 Các dòng sự kiện khác
Nếu người dùng không nhập chủ đề hoặc nội dung, khi nhấn nút "Sửa", hệ thống sẽ thông báo rằng chủ đề và nội dung không được để trống và yêu cầu người dùng nhập lại thông tin cần thiết.
3.4.1.4.3 Các yêu cầu đặc biệt
Người dùng chỉ được sửa bài viết của mình tạo
3.4.1.5 Đặc tả Use-case “Xóa bài viết”
Người dùng muốn xóa một bài viết mà mình đã tạo thì sẽ chọn bài viết rồi nhấn nút “Xóa”
1 Người dùng chọn bài viết mình muốn xóa
2 Người dùng nhấn nút “Xóa”
3.4.1.5.2.2 Các dòng sự kiện khác
3.4.1.5.3 Các yêu cầu đặc biệt
Người dùng chỉ được xóa bài viết của mình đã tạo
3.4.1.6 Đặc tả Use-case “Đăng bình luận”
Người dùng muốn đăng bình luận của mình vào một bài viết thì sẽ nhấn nút “Bình luận”
3.4.1.6.2 Dòng sự kiện 3.4.1.6.2.1 Dòng sự kiện chính
1 Người dùng chọn một bài viết
2 Người dùng nhấn nút “Bình luận”
3 Người dùng nhập bình luận của mình
4 Người dùng nhấn nút “Đăng”
3.4.1.6.2.2 Các dòng sự kiện khác
3.4.1.6.3 Các yêu cầu đặc biệt
3.4.1.7 Đặc tả Use-case “Sửa bình luận”
Người dùng muốn sửa một bình luận mà mình đã đăng thì sẽ chọn bình luận đó rồi nhấn “Sửa”
1 Người dùng chọn bài viết mình đã đăng bình luận
2 Người dùng chọn bình luận mình đã đăng
4 Người dùng sửa lại nội dung bình luận
3.4.1.7.2.2 Các dòng sự kiện khác
3.4.1.7.3 Các yêu cầu đặc biệt
Người dùng chỉ được sửa bình luận của mình đã đăng
3.4.1.8 Đặc tả Use-case “Xóa bình luận”
Người dùng muốn xóa một bình luận mà mình đã đăng thì sẽ chọn bình luận rồi nhấn “Xóa”
1 Người dùng chọn bài viết mình đã đăng bình luận
2 Người dùng chọn bình luận mình đã đăng
3.4.1.8.2.2 Các dòng sự kiện khác
3.4.1.9 Các yêu cầu đặc biệt
Người dùng chỉ được xóa bình luận của mình đã đăng
3.4.1.11 Đặc tả Use-case “Xem diễn đàn”
Người dùng muốn xem diễn đàn trên ứng dụng
1 Người dùng vào ứng dụng
2 Người dùng nhấn “Diễn đàn”
3.4.1.11.2.2 Các dòng sự kiện khác
3.4.1.11.3 Các yêu cầu đặc biệt
3.4.1.12 Đặc tả Use-case “Xem bài viết”
Người dùng sử dụng chức năng “Xem bài viết” để xem bài viết trên diễn đàn
1 Người dùng nhấn vào tiêu đề của một bài viết trên diễn đàn
2 Ứng dụng hiển thị chi tiết bài viết (nội dung bài viết, người tạo bài viết, các bình luận trên bài viết)
3.4.1.12.2.2 Các dòng sự kiện khác
3.4.1.12.3 Các yêu cầu đặc biệt
Người dùng nhấn vào nút “Dịch bài viết” để thực hiện chức năng “Phiên dịch”
Người dùng nhấn vào nút “Tải xuống” để thực hiện chức năng “Tải file đính kèm”
Người dùng vào mục “Bình luận” để thực hiện các chức năng “Đăng bình luận”, “Sửa bình luận” hoặc
3.4.1.13 Đặc tả Use-case “Thay đổi thông tin”
Người dùng sử dụng chức năng “thay đổi thông tin” để thay đổi thông tin tài khoản
1 Người dùng nhấn nút “Thay đổi thông tin” trên ứng dụng
2 Ứng dụng hiển thị các mục có thể thay đổi (ảnh đại diện, mật khẩu, thông tin cá nhân)
3.4.1.13.2.2 Các dòng sự kiện khác
3.4.1.13.3 Các yêu cầu đặc biệt
Người dùng nhấn vào nút “Đổi mật khẩu” để thực hiện chức năng đổi mật khẩu
Người dùng nhấn vào nút “Đổi ảnh đại diện” để thực hiện chức năng đổi ảnh đại diện
Người dùng nhấn vào nút “Sửa thông tin cá nhân” để thực hiện chức năng sửa thông tin cá nhân
3.4.1.14 Đặc tả Use-case “Đổi mật khẩu”
Người dùng sử dụng chức năng “Đổi mật khẩu” để thay đổi mật khẩu tài khoản
1 Người dùng nhấn vào nút “Đổi mật khẩu” trên giao diện thay đổi thông tin
2 Người dùng nhập mật khẩu hiện tại của tài khoản
3 Người dùng nhập mật khẩu mới
4 Người dùng nhập lại mật khẩu mới
5 Người dùng nhấn vào nút “Xác nhận”
6 Hệ thống lưu mật khẩu mới của tài khoản vào cơ sở dữ liệu
3.4.1.14.2.2 Các dòng sự kiện khác
Nếu người dùng nhập sai mật khẩu hiện tại hoặc mật khẩu nhập lại không khớp, hệ thống sẽ thông báo lỗi và không lưu mật khẩu mới vào cơ sở dữ liệu.
3.4.1.14.3 Các yêu cầu đặc biệt
3.4.1.15 Đặc tả Use-case “Đổi ảnh đại diện”
1.1.1.1 Người dùng sử dụng tính năng “Đổi ảnh đại diện” để đổi ảnh đại diện cho tài khoản
1 Người dùng nhấn vào nút “Đổi ảnh đại diện”
2 Người dùng chọn ảnh mới từ thiết bị
3 Người dùng nhấn “Xác nhận”
4 Hệ thống lưu lại ảnh đại diện mới cho tài khoản
3.4.1.15.2.2 Các dòng sự kiện khác
3.4.1.15.3 Các yêu cầu đặc biệt
3.4.1.16 Đặc tả Use-case “Sửa thông tin cá nhân”
Người dùng sử dụng tính năng “Sửa thông tin cá nhân” để sửa thông tin cá nhân trên tài khoản
1 Người dùng nhấn vào nút “Sửa thông tin cá nhân” trên giao diện thay đổi thông tin
2 Người dùng nhập các thông tin cần sửa vào các chỗ nhập tương ứng
3 Người dùng nhấn vào nút “Xác nhận”
4 Hệ thống lưu lại thông tin cá nhân mới cho tài khoản
3.4.1.16.2.2 Các dòng sự kiện khác
Nếu người dùng cung cấp thông tin không hợp lệ, hệ thống sẽ không lưu trữ dữ liệu mới và sẽ thông báo cho người dùng về sự không hợp lệ của thông tin đã nhập.
3.4.1.16.3 Các yêu cầu đặc biệt
3.4.1.17 Đặc tả Use-case “Thêm file đính kèm”
Người dùng sử dụng tính năng “Thêm file đính kèm” để thêm file đính kèm vào bài viết
1 Người dùng nhấn vào nút “Thêm file đính kèm” trên giao diện tạo bài viết
2 Người dùng chọn file để đính kèm từ thiết bị
3 Người dùng nhấn nút “Xác nhận”
3.4.1.17.2.2 Các dòng sự kiện khác
3.4.1.17.3 Các yêu cầu đặc biệt
3.4.1.18 Đặc tả Use-case “Tải file đính kèm”
Người dùng sử dụng tính năng “Tải file đính kèm” để tải file đính kèm từ bài viết
1 Người dùng nhấn vào file đính kèm mà người dùng muốn tải
2 Ứng dụng tải file đính kèm về thiết bị
3.4.1.18.2.2 Các dòng sự kiện khác
3.4.1.18.3 Các yêu cầu đặc biệt
3.4.1.19 Đặc tả Use-case “Thêm chủ đề”
Người quản lý sử dụng chức năng “Thêm chủ đề” để thêm chủ đề cho diễn đàn
1 Người quản lý nhấn vào nút “Thêm chủ đề” trên giao diện diễn đàn
2 Người quản lý nhập tên và mô tả chủ đề
3 Người quản lý nhấn “Thêm”
4 Hệ thống lưu chủ đề đã thêm
3.4.1.19.2.2 Các dòng sự kiện khác
3.4.1.19.3 Các yêu cầu đặc biệt
3.4.1.20 Đặc tả Use-case “Xoá chủ đề”
Người quản lý sử dụng chức năng “Xoá chủ đề” để xoá chủ đề trên diễn đàn
1 Người quản lý chọn vào chủ đề muốn xoá
2 Người quản lý nhấn vào nút “Xóa chủ đề”
3.4.1.20.2.2 Các dòng sự kiện khác
3.4.1.20.3 Các yêu cầu đặc biệt
3.4.1.21 Đặc tả Use-case “Sửa chủ đề”
Người quản lý sử dụng chức năng “Sửa chủ đề” để sửa chủ đề trên diễn đàn
1 Người quản lý chọn vào chủ đề muốn sửa
2 Người quản lý nhấn vào nút “Sửa chủ đề”
3 Người quản lý nhập tên mới cho chủ đề
4 Người quản lý nhấn “Lưu”
3.4.1.21.2.2 Các dòng sự kiện khác
3.4.1.21.3 Các yêu cầu đặc biệt
3.4.1.22 Đặc tả Use-case “Kiểm duyệt bài viết”
Người quản lý sử dụng chức năng “Kiểm duyệt bài viết” để kiểm duyệt bài viết trên diễn đàn
1 Người quản lý nhấn vào mục “Danh sách các bài viết chờ kiểm duyệt” trên giao diện diễn đàn
2 Người quản lý nhấn vào bài viết muốn kiểm duyệt
3 Người quản lý chọn trạng thái kiểm duyệt của bài viết (duyệt hoặc không duyệt)
4 Người quản lý nhấn vào nút“Xác nhận”
5 Hệ thống lưu lại trạng thái kiểm duyệt của bài viết
3.4.1.22.2.2 Các dòng sự kiện khác
3.4.1.22.3 Các yêu cầu đặc biệt
3.4.1.23 Đặc tả Use-case “Phiên dịch”
Người dùng dịch bài viết sang ngôn ngữ mà người dùng lựa chọn
1 Người dùng nhấn vào nút “Dịch bài viết”
2 Người dùng chọn ngôn ngữ muốn dịch
3 Hệ thống dịch bài viết sang ngôn ngữ người dùng lựa chọn
3.4.1.23.2.2 Các dòng sự kiện khác
3.4.1.23.3 Các yêu cầu đặc biệt
3.4.1.24 Đặc tả Use-case “Phản hồi”
Thành viên phản hồi về các sự kiện liên quan đến ứng dụng qua chức năng “Phản hồi”
1 Thành viên nhấn vào nút “Phản hồi”
2 Thành viên nhập nội dung muốn phản hồi
3 Thành viên nhấn vào nút “Gửi phản hồi”
3.4.1.24.2.2 Các dòng sự kiện khác
3.4.1.24.3 Các yêu cầu đặc biệt
3.4.1.25 Đặc tả Use-case “Thêm bài tập”
Người quản lý sử dụng chức năng “Thêm bài tập” để thêm bài tập
1 Người quản lý nhấn vào nút “Thêm bài tập”
2 Người quản lý nhấn vào nút “Thêm câu hỏi”
3 Người quản lý nhập nội dung câu hỏi và câu trả lời
4 Người quản lý chọn câu trả lời đúng
5 Người quản lý nhấn “Thêm”
6 Nếu người quản lý muốn thêm câu hỏi thì quay lại bước 2, ngược lại thì người quản lý nhấn nút “Lưu” để lưu lại bài tập và kết thúc
3.4.1.25.2.2 Các dòng sự kiện khác
3.4.1.25.3 Các yêu cầu đặc biệt
3.4.1.26 Đặc tả Use-case “Chỉnh sửa bài tập”
Người quản lý sử dụng chức năng “Chỉnh sửa bài tập” để chỉnh sửa bài tập
1 Người quản lý nhấn vào bài tập mà người quản lý muốn sửa
2 Người quản lý nhấn vào nút “Chỉnh sửa”
3 Người quản lý sửa lại nội dung bài tập (câu hỏi, đáp án, đáp án đúng)
4 Người quản lý nhấn nút “Lưu”
3.4.1.26.2.2 Các dòng sự kiện khác
3.4.1.26.3 Các yêu cầu đặc biệt
3.4.1.27 Đặc tả Use-case “Xoá bài tập”
Người quản lý sử dụng chức năng “Xoá bài tập” để xoá bài tập
1 Người quản lý nhấn vào bài tập mà người quản lý muốn xoá
2 Người quản lý nhấn vào nút “Xóa”
3 Người quản lý nhấn vào nút “Xác nhận”
3.4.1.27.2.2 Các dòng sự kiện khác
3.4.1.27.3 Các yêu cầu đặc biệt
3.4.1.28 Đặc tả Use-case “Làm bài tập”
Thành viên làm bài tập qua chức năng “Làm bài tập”
1.1.1.1.2 Thành viên nhấn vào bài tập muốn làm
1.1.1.1.3 Người dùng chọn đáp án cho từng câu hỏi
1.1.1.1.4 Người dùng nhấn vào nút “Nộp bài”
1.1.1.1.5 Hệ thống hiển thị kết quả của bài tập
3.4.1.28.2.2 Các dòng sự kiện khác
3.4.1.28.3 Các yêu cầu đặc biệt
Sơ đồ lớp
3.5.2 Danh sách các lớp đối tượng và quan hệ
STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
3 NGUOIQUANLY public Người quản lý
9 FILEDINHKEM public File đính kèm
12 CAUTRALOI public Câu trả lời
13 KETQUABAITAP public Kết quả bài tập
14 CHITIETKETQUA public Chi tiết kết quả
3.5.3 Mô tả chi tiết từng lớp đối tượng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaNguoiDung Protected Khoá chính Mã người dùng
2 TenTaiKhoan Protected Phân biệt, từ 6 – 32 ký tự Tên tài khoản
4 MatKhau Protected Từ 6 – 32 ký tự Mật khẩu
5 NgaySinh Protected Không Ngày sinh
6 SDT Protected Không Số điện thoại
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaChuDe Private Khoá chính Mã chủ đề
2 TenChuDe Private Không Tên chủ đề
3 MoTa Private Tối đa 255 ký tự Mô tả
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
Mã người dùng tạo bài viết
Mã chủ đề của bài viết
5 NoiDung Private Không Nội dung bài viết
6 TrangThaiKiemDuyet Private Không Trạng thái kiểm duyệt
(Chưa duyệt/Đã duyệt/Không duyệt)
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaBinhLuan Private Khoá chính Mã bình luận
2 MaBaiViet Private Khoá ngoại Mã bài viết của bình luận
3 MaNguoiDung Private Khoá ngoại Mã người dùng đăng bình luận
4 NoiDung Private Không Nội dung bình luận
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaThe Private Khoá chính Mã thẻ (tag)
2 TenThe Private Không Tên thẻ
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaFile Private Khoá chính Mã file đính kèm
2 MaNguoiDung Private Khoá ngoại Mã người dùng thêm file
3 TenFile Private Tối đa 100 ký tự Tên file đính kèm
4 KichThuoc Private Không Kích thước của file đính kèm
5 MaBaiViet Private Khoá ngoại Mã bài viết của file đính kèm
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaPhanHoi Private Khoá chính Mã phản hồi
2 MaNguoiDung Private Khoá ngoại Mã người dùng gửi phản hồi
3 NoiDung Private Không Nội dung
4 ThoiGianGui Private Không Thời gian gửi
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaBaiTap Private Khoá chính Mã bài tập
2 MaNguoiDung Private Khoá ngoại Mã người dùng thêm bài tập
3 TenBaiTap Private Tối đa 100 ký tự
4 MoTa Private Tối đa 255 ký tự
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 MaBaiTap Private Khoá ngoại Mã bài tập của câu hỏi
2 MaCauHoi Private Khoá chính Mã câu hỏi
3 NoiDung Private Tối đa 255 ký tự Nội dung câu hỏi
Loại Ràng buộc Ý nghĩa/ghi chú
1 MaCauTraLoi Private Khoá chính Mã câu trả lời
2 MaCauHoi Private Khoá ngoại Mã câu hỏi
3 NoiDung Private Tối đa 255 ký tự
4 DungSai Private Không Đúng/sai (Câu trả lời là đúng/sai)
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
Mã kết quả bài tập
Mã bài tập của kết quả bài tập
Mã người dùng làm bài tập
4 ThoiGianLam Private Không Thời gian người dùng làm bài tập
5 SoCauDung Private Không Số câu hỏi người dùng trả lời đúng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
Mã kết quả bài tập
Mã câu hỏi của kết quả bài tập
Mã câu trả lời người dùng dùng chọn
Sơ đồ hoạt động
Sơ đồ tuần tự
THIẾT KẾ
Thiết kế dữ liệu
Thiết kế kiến trúc
Phần mềm được xây dựng theo mô hình client-server:
Các thành phần trong client:
UI Screen: Thành phần màn hình giao diện người dùng, nhiệm vụ chính là hiển thị dữ liệu và nhận dữ liệu từ người dùng
BLOC (Business Logic Components) là các thành phần chịu trách nhiệm xử lý nghiệp vụ của chương trình, nhận sự kiện từ giao diện người dùng (UI) và thực hiện các thao tác xử lý để trả về kết quả cho UI.
Repository: Thành phần tập trung các nguồn dữ liệu, cung cấp khả năng bảo trì và mở rộng tốt hơn cho chương trình
Network Provider: Thành phần cung cấp dữ liệu, chịu trách nhiệm truy xuất dữ liệu từ máy chủ thông qua Web API
Các thành phần trong server:
Web API là giao diện lập trình phần mềm có thể truy cập qua web bằng giao thức HTTP Nó nhận và xử lý các yêu cầu từ client, sau đó trả lại kết quả cho client.
DBMS (Database Management System): Hệ quản trị cơ sở dữ liệu, dùng để lưu trữ và quản lý dữ liệu
4.2.2 Mô tả chi tiết từng thành phần trong hệ thống
UI Screen Màn hình giao diện người dùng
BLOC Thành phần xử lý nghiệp vụ logic
Repository Nơi chứa nguồn dữ liệu
Network Provider Cung cấp dữ liệu
Web API Giao diện lập trình ứng dụng truy cập qua web
DBMS Hệ quản trị cơ sở dữ liệu
Thiết kế giao diện
Màn hình hiển thị thông tin tài khoản bao gồm tên, ảnh đại diện, email và ngày sinh của người dùng Người dùng có thể thay đổi mật khẩu tài khoản qua tùy chọn "Đổi mật khẩu" Ngoài ra, tùy chọn "Đăng xuất" cho phép người dùng thoát khỏi tài khoản của mình.
4.3.2 Màn hình Diễn đàn Ở màn hình này sẽ hiển thị các chủ đề để người dùng lựa chọn
Người dùng chọn một chủ đề nào đấy thì sẽ được chuyển đến màn hình chủ đề
Người dùng muốn tìm kiếm thì chọn vào thanh tìm kiếm và nhập chủ đề muốn tìm kiếm
Nếu như là người quản lý thì sẽ có thêm chức năng thêm chủ đề
Ngoài ra người dùng còn có thể gửi phản hồi bằng chức năng phản hồi
Trên màn hình này, người dùng sẽ thấy các bài viết từ các tài khoản khác nhau Mỗi bài viết có thể kèm theo file đính kèm hoặc không, và người dùng có thể tải xuống file đó thông qua chức năng được cung cấp.
Bình luận: Dùng khi người dùng muốn đăng lên bài viết đấy nình luận của mình
Người dùng có thể tìm kiếm bài viết bằng các thẻ(Tag1,Tag2,Tag3,Tag4,…)
56 Ở màn hình này sẽ hiển thị các bình luận của người dủng và các câu trả lời của các người dùng khác đối với một bình luận nào đấy
Trả lời: Dùng cho những người dùng khác đăng ý kiến của mình về một bình luận nào đấy
Nhập bình luận: Dùng để nhập bình luận của người dùng và sau đó đăng lên bài viết bằng chức năng
57 Ở màn hình này sẽ hiển thị các bài tập để người dùng lựa chọn
Sau khi chọn được một bài tập thì người dùng sẽ được bắt đầu làm bài
Người dùng chọn “Kế tiếp” để chuyển sang trang kế tiếp “trở lại” để quay lại trang trước “Nộp bài” để kết thúc làm bài và nộp bài
4.3.6 Màn hình Sửa Chủ đề
Để chỉnh sửa một chủ đề, người quản lý cần nhấn giữ chủ đề đó để hiển thị các tùy chọn Sau khi chọn chức năng “Sửa”, hệ thống sẽ chuyển đến màn hình chỉnh sửa tiếp theo.
Người quản lý sẽ chỉnh sửa chủ đề sau đó nếu muốn lưu lại thay đổi thì sẽ chọn
“Lưu”, nếu không thì chọn “Thoát”
4.3.7 Màn hình Xóa Chủ đề
Để chỉnh sửa một chủ đề, người quản lý cần nhấn giữ chủ đề đó để hiển thị các tùy chọn Khi chọn chức năng “Xóa”, hệ thống sẽ chuyển đến màn hình tiếp theo.
Người quản lý nếu muốn xóa chủ đề thì sẽ chọn “Xóa”, nếu không thì chọn
4.3.8 Màn hình Sửa Bài Viết
Khi muốn chỉnh sửa một bài viết, người dùng chỉ cần nhấn giữ bài viết của mình để hiển thị các tùy chọn Sau đó, chọn chức năng "Sửa" để chuyển đến màn hình chỉnh sửa tiếp theo.
Người dùng sẽ chỉnh sửa bài viết sau đó nếu muốn lưu lại thay đổi thì sẽ chọn
“Lưu”, nếu không thì chọn “Thoát”
4.3.9 Màn hình Xóa Bài Viết
Khi người dùng muốn chỉnh sửa một bài viết, họ chỉ cần nhấn giữ bài viết đó để hiển thị các tùy chọn Sau khi chọn chức năng “Xóa”, người dùng sẽ được chuyển đến màn hình tiếp theo.
Người dùng nếu muốn xóa bài viết thì chọn “Xóa”, nếu không chọn “Thoát”
4.3.10 Màn hình Sửa Bình Luận
Để chỉnh sửa một bình luận, người dùng chỉ cần nhấn giữ bình luận của mình để hiển thị các tùy chọn Sau khi chọn chức năng “Sửa”, người dùng sẽ được chuyển đến màn hình chỉnh sửa bình luận.
Người dùng sẽ chỉnh sửa bình luận sau đó nếu muốn lưu lại thay đổi thì sẽ chọn
“Lưu”, nếu không thì chọn “Thoát”
4.3.11 Màn hình Xóa Bình Luận
Để chỉnh sửa bình luận, người dùng chỉ cần nhấn giữ bình luận của mình để hiện ra các tùy chọn Khi chọn chức năng “Xóa”, người dùng sẽ được chuyển đến màn hình tiếp theo.
Người dùng nếu muốn xóa bình luận sẽ chọn “Xóa”, nếu không chọn “Thoát”.
CÀI ĐẶT VÀ THỬ NGHIỆM
Môi trường cài đặt: Android
Ngôn ngữ cài đặt: Dart, Flutter
Thử nghiệm cho thấy ứng dụng được xuất file apk và chạy thành công trên các giả lập Android cũng như trên điện thoại di động Tuy nhiên, một số dòng điện thoại gặp tình trạng lag nhẹ khi sử dụng.