Các yêu cầu đặc biệt Không có Hậu điều kiện Người dùng đăng ký thành công tài khoản để truy cập vào hệ thống 3.1.3.2.. Các yêu cầu đặc biệt Không có Hậu điều kiện Người dùng đăng nhập th
THÔNG TIN CHUNG
Thông tin đề tài
- Phần mềm hỗ trợ học và luyện thi IELTS (Reading+Listening)
Môi trường phát triển ứng dụng
- Hệ điều hành: Microsoft Windows, Linux
- Hệ quản trị cơ sở dữ liệu: MongoDB
- Công cụ phân tích thiết kế: Draw.io, Figma
- Công cụ xây dựng ứng dụng: Visual Studio Code
Thông tin nhóm
STT MSSV Họ và tên Email
1 18521381 Lữ Ngọc Vĩnh Thái 18521381@gm.uit.edu.vn
2 18521482 Bùi Nhật Tiến 18521482@gm.uit.edu.vn
PHÁT BIỂU BÀI TOÁN
Nhu cầu thực tế của đề tài
Hiện nay nhu cầu học và luyện thi IELTS ngày càng tăng, đặc biệt ở học sinh cần IELTS để thi vào trường mong muốn hoặc du học, ở sinh viên mới ra trường để dễ xin việc và ở người đi làm nhằm nâng cao mức lương Đối diện với thực tế này, các trung tâm luyện thi IELTS và nhiều website, ứng dụng được phát triển song chất lượng chưa đáp ứng kỳ vọng do phí cao hoặc miễn phí lại thiếu chức năng và có cộng đồng hỗ trợ kém Vì vậy, nhóm chúng tôi quyết định xây dựng một website hỗ trợ học và luyện thi IELTS nhằm giải quyết những vấn đề trên và mang lại giải pháp học tập hiệu quả, tối ưu chi phí, đa chức năng và hỗ trợ người dùng tốt hơn.
Khảo sát
❖ Phương thức khảo sát: Phỏng vấn trực tuyến + Khảo sát qua google biểu mẫu
❖ Đối tượng khảo sát: cô Hà Chúc Ly (giáo viên giảng dạy IELTS tại IvyPrep)
IELTS là viết tắt của International English Language Testing System, hay Hệ thống Kiểm tra Anh ngữ Quốc tế, được thiết kế để đánh giá 4 kỹ năng tiếng Anh: nghe, nói, đọc và viết Đây là kỳ thi quan trọng và phổ biến nhất thế giới dành cho mục đích học tập, làm việc và định cư, với hơn hai triệu thí sinh dự thi mỗi năm.
Câu 2 Cấu trúc của bài thi Listening IELTS là gì?
➢ Các bạn sẽ phải trả lời 40 câu hỏi trong 40 phút
➢ Bạn sẽ phải nghe 4 đoạn băng tương ứng với 4 phần trong bài thi (mỗi phần 10 câu hỏi) Bạn chỉ được nghe duy nhất 1 lần
Câu 3 Chi tiết về từng phần trong bài thi Listening IELTS?
➢ Section 1: Thường là dễ nhất, là đoạn hội thoại giữa 2 người xoay quanh các tình huống đời thường trong cuộc sống
➢ Section 2: Đoạn độc thoại giới thiệu về một dịch vụ, địa điểm,… nào đó
An: Trong cuộc thảo luận hôm nay, chúng ta tập trung vào giáo dục và học tập, bàn về bài tập khó, chọn đề tài nghiên cứu khoa học và chủ đề khoá luận; Bình: Mình nghĩ bài tập nên gắn với thực tiễn để kích thích động lực học tập và giúp định hình vấn đề nghiên cứu cho đề tài; Dũng: Để chọn đề tài khoa học phù hợp, chúng ta cần rà soát tài liệu, xác định khoảng trống và đặt mục tiêu rõ ràng; Loan: Em thấy các chủ đề khoá luận nên xoay quanh câu chuyện của người học, phương pháp giảng dạy và hiệu quả đánh giá; An: Vậy chúng ta có thể đề xuất ví dụ như ảnh hưởng của học tập từ xa tới kết quả học tập, hay một khung phân tích chất lượng bài tập và tác động của nó lên kết quả thi; Bình: Chúng ta nên xây dựng tiêu chí đánh giá, thời gian biểu, vai trò từng người và cách trình bày kết quả để đảm bảo tiến độ; Dũng: Đồng ý, mình sẽ tổng hợp đề cương và danh sách đề tài dựa trên nhu cầu của người học và yêu cầu của giáo viên để tiến tới một khoá luận có chất lượng.
➢ Section 4: Bạn sẽ được nghe một đoạn độc thoại (thuyết trình)
Câu 4: Cấu trúc của bài thi Reading IELTS là gì?
➢ Trong bài thi Đọc, bạn sẽ cần phải trả lời 40 câu hỏi trong vòng 60 phút
Câu 5: Các dạng câu hỏi trong đề thi Reading IELST?
Multiple choice questions (trắc nghiệm) là dạng câu hỏi yêu cầu bạn chọn đáp án đúng từ các lựa chọn được đánh dấu bằng chữ cái in hoa A, B, C Loại câu hỏi này kiểm tra khả năng hiểu thông tin chi tiết và cụ thể có trong đề bài, đồng thời rèn khả năng đọc hiểu và phân tích sự khác biệt giữa các đáp án để đưa ra lựa chọn đúng.
➢ True/ False /Not given questions (Câu hỏi xác định thông tin) Đây là các loại câu hỏi yêu cầu bạn phải xác định xem thông tin đã cho là đúng hay không để trả lời Yes/No/Not Given hoặc True/ False /Not given
➢ Information matching (Nối thông tin)
Những loại câu hỏi này đưa ra cho bạn 4 đến 5 câu trong bài đọc và yêu cầu bạn tìm đoạn văn trong bài có chứa thông tin đã cho Thông tin được đưa ra có thể không phải ý chính của đoạn nên nếu chỉ đọc câu đầu và cuối của mỗi đoạn sẽ không thể tìm được câu trả lời
➢ Head Matching (Chọn tiêu đề)
Loại câu hỏi này yêu cầu bạn chọn một tiêu đề từ danh sách có sẵn và ghép vào từng đoạn văn cho đúng ý hoặc sao cho tiêu đề phản ánh đúng nội dung của đoạn đó Khi bạn hiểu rõ văn bản, bạn có thể tự tạo tiêu đề phù hợp cho mỗi đoạn để tăng tính mạch lạc và dễ đọc cho người đọc Độ khó của dạng bài này không cao, chỉ cần vận dụng kỹ năng đọc nhanh và đánh dấu từ khóa quan trọng để nhận diện ý chính và liên kết các phần của bài viết Đây là cách kiểm tra khả năng nắm nội dung, tóm tắt và sắp xếp thông tin một cách có hệ thống, phù hợp với yêu cầu tối ưu hóa SEO nhờ từ khóa và cấu trúc tiêu đề rõ ràng.
➢ Sentence completion (Hoàn thành câu)
Trong loại câu hỏi điền từ còn thiếu, bạn sẽ gặp một câu chưa hoàn chỉnh và phải điền từ đúng từ bài đọc Để làm bài nhanh và chính xác, hãy nhanh chóng định vị đoạn văn chứa câu trả lời, từ đó chọn từ thích hợp để điền vào chỗ trống Quá trình này đòi hỏi bạn rà soát kỹ nội dung bài đọc, nhận diện ngữ cảnh và các từ liên quan để hoàn thiện câu một cách mạch lạc và chuẩn xác.
➢ Summary completion (Hoàn thành đoạn tóm tắt)
Để hoàn thành một đoạn tóm tắt từ bài đọc được giao, bạn cần sử dụng không quá 3 từ hoặc 1 con số lấy từ bài văn để điền các chỗ trống Lưu ý rằng chỉ được dùng các từ có sẵn trong bài và không được vượt quá số từ được cho phép.
Features matching (Nối đặc điểm) là loại câu hỏi đòi hỏi bạn tìm thông tin cụ thể về đặc điểm nổi bật của một người, một địa điểm hoặc một sự vật được đề cập trong bài Đề bài sẽ cung cấp danh từ riêng và bạn cần nối danh từ đó với các câu miêu tả đặc điểm nổi bật nhất của nó Để làm tốt kiểu câu hỏi này, hãy xác định đặc điểm nổi bật nhất, sử dụng câu ngắn gọn, súc tích và chính xác, đồng thời gắn kết với từ khóa liên quan để tối ưu hóa cho SEO và tăng tính rõ ràng cho người đọc Việc kết nối danh từ với mô tả phù hợp sẽ giúp bài viết trở nên dễ hiểu, sinh động và phù hợp với yêu cầu của đề bài.
➢ Matching sentence endings (Nối câu kết thúc)
Matching sentence endings là một dạng đề thi luyện đọc hiểu và ngữ pháp trong đó người học được cung cấp một chuỗi câu chưa hoàn chỉnh (thường đánh số 1, 2, 3, 4) và một danh sách đáp án để kết thúc các câu này (thường đánh chữ A, B, C, D) Nhiệm vụ là ghép nối từng câu chưa hoàn chỉnh với phần kết thúc phù hợp dựa trên nội dung bài đọc có sẵn, nhằm tạo thành những câu hoàn chỉnh và có nghĩa Dạng bài này rèn kỹ năng nhận diện ngữ cảnh, xác định ý chính và liên kết thông tin giữa các phần câu, đồng thời tăng cường vốn từ vựng và cấu trúc câu tiếng Anh Để làm tốt, người học nên phân tích bài đọc, đối chiếu các đáp án với ngữ cảnh, và chọn đáp án phù hợp nhất dựa trên sự mạch lạc và độ tương thích của nội dung.
➢ Short answer questions ( Câu trả lời ngắn)
Trong dạng câu hỏi này, bạn cần trả lời với số từ nhất định "NO MORE THAN WORDS", nên đặc biệt lưu ý giới hạn từ và trình bày câu trả lời ngắn gọn, cô đọng Hãy gạch chân từ khóa có liên quan trong đề để dễ nhận diện mục tiêu và dùng kỹ năng đọc lướt để tìm thông tin nhanh chóng Để tối ưu cho SEO và người đọc, tập trung vào ý chính, tìm cách diễn đạt súc tích và có cấu trúc mạch lạc, đồng thời nhấn mạnh từ khóa mục tiêu trong câu trả lời Cách thực hiện là đọc lướt đề, xác định ý trả lời và loại bỏ phần thừa để giữ đúng giới hạn từ, giúp bài viết ngắn gọn, đủ ý và dễ hiểu.
➢ Notes/table/diagram completion (Hoàn thành các ghi chú/ biểu đồ/ bảng tóm tắt)
Trong các câu hỏi dạng này, bạn sẽ được cung cấp một đoạn ghi chú, một biểu đồ hoặc một đoạn tóm tắt có các từ còn trống Hãy vận dụng từ đồng nghĩa và từ trái nghĩa để nhận diện nghĩa và chọn đáp án chính xác nhất Phương pháp làm bài gồm phân tích ngữ cảnh, xác định từ khóa và so sánh các lựa chọn dựa trên ngữ pháp và mục tiêu diễn đạt của đoạn Việc hiểu rõ cách trình bày thông tin của từng loại dữ liệu (ghi chú, biểu đồ, tóm tắt) sẽ giúp rút ngắn thời gian làm bài và nâng cao tỷ lệ đúng Luyện tập đều đặn với kỹ thuật điền từ bằng từ đồng nghĩa và từ trái nghĩa sẽ tối ưu hóa quá trình ôn tập và cải thiện hiệu quả nội dung bài viết cho SEO.
Câu 6: Các tiêu chí chấm điểm bài thi Listening & Reading IELTS?
Cả hai phần thi nghe và thi đọc đều có 40 câu hỏi để thí sinh trả lời; mỗi câu đúng được 1 điểm, tổng điểm tối đa là 40 và được quy đổi sang thang điểm 1.0–9.0 dựa trên tổng số câu trả lời đúng.
2.3 Kết quả khảo sát qua Google Biểu Mẫu
2.4 Xác định yêu cầu của hệ thống
1 Tìm kiếm, truy xuất các thông tin nhanh
2 Đáp ứng được các chức năng như xem thông tin kỳ thi, làm bài thi mẫu
3 Giao diện trực quan, thân thiện với người dùng
PHÂN TÍCH
Sơ đồ Use case
STT Tên Actor Ý nghĩa/Ghi chú
1 Quản trị viên Người chịu trách nhiệm quản lý, điều hành hệ thống
2 Người dùng Người sử dụng các chức năng của trang web
STT Tên Use case Ý nghĩa/Ghi chú
1 Đăng ký Đăng ký tài khoản
2 Đăng nhập Đăng nhập vào hệ thống
3 Luyện thi IELTS Làm các đề thi thử IELTS
4 Xem đáp án đề thi Xem giải thích đáp án của câu hỏi trong đề thi
5 Đặt câu hỏi thảo luận Thảo luận trao đổi về đề thi và các kiến thức liên quan đến tiếng Anh và kì thi IELTS
6 Trả lời thảo luận Trả lời các câu hỏi, thảo luận
7 Xem thông tin thi IELTS Xem thông tin về kỳ thi IELTS
8 Chỉnh sửa thông tin tài khoản
User chỉnh sưaủ thông tin tài khoản
9 Thêm đề thi Thêm đề thi vào hệ thống
10 Thay đổi thông tin đề thi Cập nhật thông tin đề thi thử
11 Xóa đề thi Xóa đề thi ra khỏi hệ thống
12 Thêm người dùng Thêm người dùng vào hệ thống
13 Cập nhật thông tin người dùng
Admin cập nhật thông tin người dùng
3.1.3.1 Đặc tả use case “Đăng ký”
Tóm tắt Dùng để đăng ký tài khoản truy cập vào hệ thống
Dòng sự kiện chính 1 Người dùng chọn nút “Đăng ký” trên giao diện
2 Hệ thống hiển thị form đăng ký
3 Người dùng nhập thông tin đăng ký
4 Hệ thống kiểm tra thông tin
5 Lưu thông tin người dùng vào hệ thống
Dòng sự kiện khác 4.1 Thông tin không hợp lệ: Hệ thống hiển thị thông báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Không có
Hậu điều kiện Người dùng đăng ký thành công tài khoản để truy cập vào hệ thống Điểm mở rộng Không có
3.1.3.2 Đặc tả use case “Đăng nhập”
Tóm tắt Dùng để đăng nhập vào hệ thống
Dòng sự kiện chính 1 Người dùng chọn nút “Đăng nhập”
2 Hệ thống hiển thị form đăng nhập
3 Người dùng nhập thông tin đăng nhập
4 Hệ thống kiểm tra thông tin
5 Đăng nhập người dùng vào hệ thống
Dòng sự kiện khác 4.1 Thông tin đăng nhập sai: Hệ thống hiển thị thông báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Không có
Hậu điều kiện Người dùng đăng nhập thành công vào hệ thống, có thể sử dụng các quyền mà hệ thống cho phép Điểm mở rộng Không có
3.1.3.3 Đặc tả use case “Luyện thi IELTS”
Tên usecase Luyện thi IELTS
Tóm tắt Làm các đề thi thử IELTS
Dòng sự kiện chính 1 Tại trang chủ hoặc trang danh sách đề thi chọn đề thi muốn thi thử
2 Hệ thống hiện thị đề thi và bắt đầu tính giờ làm bài
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng là thành viên đã đăng nhập vào hệ thống
Hậu điều kiện Kết quả thi được lưu vào lịch sử làm bài của người dùng Điểm mở rộng Không có
3.1.3.4 Đặc tả use case “Xem đáp ấn đề thi”
Tên usecase Xem đáp án đề thi
Tóm tắt: Xem phần giải thích đáp án cho từng câu hỏi trong đề thi sau khi làm bài Dòng sự kiện chính là sau khi hoàn thành bài thi, người dùng chọn "Nộp bài" để nộp bài thi.
2 Hệ thốn tính toán điểm số và hiển thị giải thích cho từng câu hỏi
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng là thành viên đã đăng nhập vào hệ thống
Hậu điều kiện Không có Điểm mở rộng Không có
3.1.3.5 Đặc tả use case “Đặt câu hỏi thảo luận”
Tên usecase Đặt câu hỏi thảo luận
Tóm tắt: Tạo thảo luận để trao đổi về đề thi hoặc kiến thức liên quan đến tiếng Anh và kỳ thi IELTS, giúp người học nắm bắt các mẹo làm bài, củng cố kiến thức và mở rộng vốn từ vựng Dòng sự kiện chính là ấn vào “Thảo luận” để tham gia các cuộc trao đổi, chia sẻ kinh nghiệm làm bài thi IELTS và cập nhật các thông tin mới nhất về đề thi tiếng Anh Bài viết tập trung vào các từ khóa SEO như đề thi, tiếng Anh, IELTS, thảo luận và kiến thức thi để tối ưu hóa khả năng tìm kiếm và mang lại nội dung hữu ích cho người học.
2 Hệ thống hiển thị diễn đàn thảo luận
3 Người dùng nhập chủ đề và nội dung muốn thảo luận sau đó ấn “Gửi”
4 Nếu muốn thảo luận topic của thành viên khác thì ấn
“Trả lời” sau đó nhập nội dung trả lời và ấn “Gửi”
5 Hệ thống kiểm tra thông tin người dùng nhập
6 Nếu người dùng tạo câu hỏi mới hoặc câu trả lời thành công, câu hỏi sẽ được lưu vào hệ thống và cập nhật trên diễn đàn thảo luận
Dòng sự kiện khác 4.1 Nếu chủ đề hoặc nội dung câu hỏi thảo luận không hợp lệ, hệ thống sẽ báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Không có Điểm mở rộng Không có
3.1.3.6 Đặc tả use case “Trả lời thảo luận”
Tên usecase Trả lời thảo luận
Tóm tắt Tả lời các thảo luận trên diễn đàng
Dòng sự kiện chính 1 Tại trang danh sách thảo luận trên diễn đàng chọn thảo luận cần trả lời
2 Người dùng nhập thông tin trả lời và chọn “Bình luận”
3 Hệ thống kiểm tra và lưu thông tin bình luận của người dùng
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng là thành viên đã đăng nhập vào hệ thống
Hậu điều kiện Bình luận được lưu vào hệ thống và hiển thị trên bài thảo luận Điểm mở rộng Không có
3.1.3.7 Đặc tả use case “Xem thông tin kỳ thi IELTS”
Tên usecase Xem thông tin kỳ thi IELTS
Tóm tắt Xem thông tin về thời gian, địa điểm, thủ tục thi IELTS Dòng sự kiện chính 1 Chọn mục “Thông tin”
2 Hệ thống hiển thị thông tin kỳ thi
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng là thành viên đã đăng nhập vào hệ thống
Hậu điều kiện Thông tin câu hỏi đóng góp được lưu vào hệ thống Điểm mở rộng Không có
3.1.3.8 Đặc tả use case “Chỉnh sửa thông tin tài khoản”
Tên usecase Thay đổi thong tin tài khoản
Tóm tắt Cập nhật thông tin tài khoản người dùng
Dòng sự kiện chính 1 Chọn cập nhật thông tin
2 Hệ thống hiện thị form thay đổi thông tin người dùng
3 Người dùng nhập thông tin mới và xác nhận
4 Hệ thống kiểm tra và cập nhật thông tin người dùng Dòng sự kiện khác 4.1 Thông tin không hợp lệ: Hệ thống hiển thị thông báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng là thành viên đã đăng nhập vào hệ thống
Hậu điều kiện Thông tin vủa người dùng được cập nhật Điểm mở rộng Không có
3.1.3.9 Đặc tả use case “Thêm đề thi”
Tên usecase Thêm đề thi
Tóm tắt Thêm đề thi vào hệ thống
Dòng sự kiện chính 1 Tại trang quản lý đề thi người dùng nhập thông tin đề thi và xác nhận lưu
2 Hệ thống kiểm tra thông tin và lưu đề thi vào cow sở dữ liệu
Dòng sự kiện khác 2.1 Thông tin không chính xác: Hệ thống hiển thị thông báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng là admin đã đăng nhập vào hệ thống và có quyền quản trị
Hậu điều kiện Đề thi được thêm vào hệ thống Điểm mở rộng Không có
3.1.3.10 Đặc tả use case “Thay đổi thông tin đề thi”
Tên usecase Thay đổi thông tin đề thi
Tóm tắt Thay đổi thông tin cho đề thi
Dòng sự kiện chính 1 Tại trang quản lý, trong danh sách đề thi chọn đề thi cần thay đổi thông tin
2 Hệ thống hiển thị form thông tin đề thi
3 Người dùng nhập thông tin thay đổi và xác nhận
4 Hệ thống kiểm tra và cập nhật thông tin đề thi Dòng sự kiện khác 4.1 Thông tin không hợp lệ: Hệ thống hiển thị thông báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng đã đăng nhập và có quyền quản trị
Hậu điều kiện Thông tin đề thi được cập nhật Điểm mở rộng Không có
3.1.3.11 Đặc tả use case “Xóa đề thi”
Tên usecase Xóa đề thi
Tóm tắt Xóa đề thi ra khỏi cơ sở dữ liệu
Dòng sự kiện chính 1 Tại trang quản lý đề thi, trong danh sách đề cho chọn nút “Xóa” trên đề thi cần xóa
2 Hệ thống yêu cầu xác nhận
3 Người dùng xác nhận xóa đề thi
4 Hệ thống xóa đề thi ra khỏi cơ sở dữ liệu
Dòng sự kiện khác 4.1 Hệ thống gặp sự cố khi xóa đề thi: Hệ thống hiển thị thông báo lỗi và yêu cầu thao tác lại
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng đã đăng nhập và có quyền quản trị
Hậu điều kiện Đề thi bị xóa khỏi cơ sở dữ liệu Điểm mở rộng Không có
3.1.3.12 Đặc tả use case “Thêm người dùng”
Tên usecase Thêm người dùng
Tóm tắt Thêm người dùng vào hệ thống
Dòng sự kiện chính 1 Tại trang quản lý người dùng, nhập thông tin người dùng cần thêm vào form “Thêm người dùng”
2 Xác nhận thêm người dùng
3 Hệ thống kiểm tra thông tin và thêm người dùng vào cơ sở dữ liệu
Dòng sự kiện khác 3.1 Thông tin không hợp lệ: Hệ thống hiển thị thông báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng đã đăng nhập và có quyền quản trị
Hậu điều kiện Người dùng mới được thêm vào hệ thống Điểm mở rộng Không có
3.1.3.13 Đặc tả use case “Cập nhật thông tin người dùng”
Tên usecase Cập nhật thông tin người dùng
Tóm tắt Cập nhật thông tin mới cho người dùng
Dòng sự kiện chính 1 Tại trang quản lý người dùng chọn nút “Thông tin” của người dùng cần thay đổi thông tin
2 Hệ thống hiển thị form thông tin người dùng
3 Người dùng nhập thông tin mới và xác nhận
4 Hệ thống kiểm tra thông tin và cập nhật thông tin người dùng
Dòng sự kiện khác 4.1 Thông tin không hợp lệ hệ thống hiển thị thông báo lỗi
Các yêu cầu đặc biệt Không có
Tiền điều kiện Người dùng đã đăng nhập và có quyền quản trị
Hậu điều kiện Thông tin người dùng được cập nhật Điểm mở rộng Không có
Sơ đồ lớp (mức phân tích)
3.2.1 Danh sách các lớp đối tượng và quan hệ
STT Tên lớp/Quan hệ Loại Ý ghĩa/Ghi chú
1 User Lớp Lớp người dùng(sử dụng cho kế thừa)
2 Admin Lớp Lớp quản lý
3 Test Lớp Lớp bài thi
5 Question Lớp Lớp câu hỏi
6 Answer Lớp Lớp câu trả lời
7 Disussion Lớp Lớp vấn đề thảo luận
8 Comment Lớp Lớp bình luận
Quan hệ người dung với các vấn đề thảo luận của người dùng
Quan hệ người dùng với các bình luận của người dùng
Quan hệ bài thi với các phần thi
Quan hệ phần thi với câu hỏi
Quan hệ câu hỏi với các câu trả lời
Quan hệ quản lý với bài thi
16 Admin-User Quan hệ kế thừa
3.2.2 Mô tả chi tiết lớp đối tượng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú
1 id String Public Mã người dùng
2 name String Public Tên người dùng
3 username String Public Tên tài khoản
4 password String Public Mật khẩu
5 email String Public Địa chỉ thư điện tử
6 badge String Public Huy hiệu
STT Tên phương thức Loại Ràng buộc Ý nghĩa/Ghi chú
1 signUp() Bool Public Đăng ký
2 logIn() User Public Đăng nhập
3 logOut() Bool Public Đăng xuất
5 doTest() Int Public Làm test
6 createDiscussion () Bool Public Tạo vấn đề thảo luận
7 comment() Bool Public Bình luận
8 editProfile() Bool Public Chỉnh sửa thông tin người dùng
STT Tên phương thức Loại Ràng buộc Ý nghĩa/Ghi chú
1 addTest() Bool Public Thêm đề thi
2 deleteTest() Bool Public Xóa đề thi
3 updateTest() Bool Public Chỉnh sửa đề thi
4 addUser() Bool Public Thêm người dung
5 updateUser() Bool Public Chỉnh sửa thông tin người dùng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú
1 idDiscussion String Public Mã cuộc thảo luận
2 content String Public Nội thảo luận
3 like Int Public Số lượng like
4 dislike Int Public Số lượng dislike
STT Tên phương thức Loại Ràng buộc Ý nghĩa/Ghi chú
1 displayDiscussion() Problem Public Hiển thị thảo luận
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú
1 idComment String Public Mã bình luận
2 content String Public Nội dung bình luận
3 like Int Public Số lượng like
4 dislike Int Public Số lượng dislike
STT Tên phương thức Loại Ràng buộc Ý nghĩa/Ghi chú
1 displayComment() Comment Public Hiển thị bình luận
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú
1 idTest String Public Mã bài thi
2 name String Public Tên bài thi
3 duration String Public Thời gian cho phép làm bài thi
4 type String Public Loại bài thi
5 sections Array Public Danh sách các phần thi
STT Tên phương thức Loại Ràng buộc Ý nghĩa/Ghi chú
1 displayTest() Test Public Hiển thị bài thi
2 calcScore() Int Public Chấm điểm làm bài của người dùng
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú
1 idSection String Public Mã phần thi
2 questions Array Public Danh sách câu hỏi
3 script File Public File nghe
4 paragraph String Public Danh sách câu trả lời
5 number String Public Số phần thi
STT Tên phương thức Loại Ràng buộc Ý nghĩa/Ghi chú
1 displaySection() Section Public Hiển thị phần thi
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú
1 idQuestion String Public Mã bài thi
2 content String Public Thời gian bài thi
3 answers Array Public Danh sách câu trả lời
4 explanation String Public Lời giải thích
5 type String Public Dạng câu hỏi
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/Ghi chú
1 idAnswer String Public Mã câu trả lời
2 content String Public Nội dung câu trả lời
3 isTrue Bool Public Câu trả lời đúng
Thiết Kế
Công nghệ sử dụng
NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” của Google Nền tảng này được phát triển bởi Ryan Lienhart Dahl vào năm 2009
Phần lõi bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý và hiệu năng khá cao
Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện, cơ chế non- blocking I/O làm cho nó nhẹ và hiệu quả
Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên Mac –Windows –Linux, hơn nữa cộng đồng Nodejs rất lớn, các package đều hoàn toàn miễn phí
Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, thời gian thực
Node.js phù hợp cho các sản phẩm có lượng truy cập lớn và cần mở rộng nhanh, đồng thời hỗ trợ đổi mới công nghệ và triển khai các dự án Startup một cách nhanh nhất có thể Với kiến trúc bất đồng bộ và hiệu suất xử lý cao, Node.js giúp rút ngắn thời gian ra mắt sản phẩm, tối ưu hoá chi phí vận hành và dễ dàng mở rộng khi lưu lượng người dùng tăng lên Đây là lựa chọn lý tưởng cho các dự án startup muốn thử nghiệm ý tưởng nhanh chóng, triển khai MVP hiệu quả và liên tục đổi mới công nghệ để duy trì cạnh tranh.
React là một thư viện UI do Facebook phát triển nhằm hỗ trợ xây dựng các thành phần giao diện người dùng (UI components) có tính tương tác cao, có trạng thái và có thể tái sử dụng, từ đó giúp phát triển ứng dụng web phức tạp trở nên dễ quản lý và tối ưu hiệu suất Với React, các nhà phát triển có thể tái sử dụng các component, kết nối chúng với nhau một cách linh hoạt và duy trì luồng dữ liệu thống nhất, mang lại trải nghiệm người dùng mượt mà và khả năng mở rộng cao.
React hấp dẫn vì có thể render cả trên server lẫn phía client và kết nối liền mạch giữa hai môi trường, giúp tối ưu hoá hiệu suất và SEO cho ứng dụng Nó so sánh sự thay đổi giữa lần render hiện tại với lần render trước và chỉ cập nhật những thay đổi ít nhất trên DOM, nhờ cơ chế diffing và reconciliation để tối ưu hoá quá trình cập nhật giao diện.
Redux is a predictable state management library for JavaScript applications that enables consistent behavior across client, server, and native environments and makes testing easier It was inspired by the Elm language’s ideas and Facebook’s Flux architecture.
MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở thuộc dạng NoSql và được hàng triệu người sử dụng
MongoDB là một cơ sở dữ liệu hướng tài liệu, lưu trữ dữ liệu ở dạng tài liệu JSON (thực tế là BSON) thay vì bảng như cơ sở dữ liệu quan hệ, nên các truy vấn được thực hiện nhanh và linh hoạt hơn; thiết kế theo hướng tài liệu giúp dễ mở rộng và tối ưu cho các ứng dụng xử lý dữ liệu phi cấu trúc.
So với RDBMS thì với MongoDB collection ứng với table, còn document sẽ ứng với row, MongoDB sẽ dùng các document thay cho row trong RDBMS
Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định.
Mô tả các thành phần trong hệ thống
Giao diện của mỗi trang web được cấu thành từ nhiều component ghép lại với nhau, tạo nên cấu trúc và chức năng cho trang Các component này được xây dựng dựa trên sự kết hợp giữa JavaScript và HTML, giúp tăng khả năng tái sử dụng, tối ưu hiệu suất và dễ bảo trì cho giao diện người dùng.
Actions là các javascript object mỗi action sẽ có một thuộc tính gọi là type, thuộc tính này cho biết cần phải thực hiện những store queries nào
Dispach nhận vào một action và chuyển action này cho hàm callback, hàm này sẽ thực hiện các thay đổi trên store dựa vào type của action
Trong Redux, store là nơi lưu trữ toàn bộ state của ứng dụng một cách thuận tiện và nhất quán Nó là nguồn dữ liệu duy nhất cho giao diện người dùng, và khi dữ liệu trong state thay đổi, các component liên quan sẽ tự động cập nhật để phản ánh sự thay đổi đó, đảm bảo đồng bộ và hiệu suất cho trải nghiệm người dùng.
Middleware là một lớp ở giữa request và response, nhận thông tin từ request và thực thi các đoạn mã xử lý tương ứng với yêu cầu đó, chẳng hạn xác thực tài khoản, mã hóa token và gửi/nhận email.
Là lớp tương tác với model để thực hiện xử lý logic, đồng thởi gửi trả response lại cho client
❖ Model Đại diện cho các đối tượng dữ liệu của ứng dụng, model tương tác với cơ sở dữ liệu để truy vấn các dữ liệu cần thiết.
Thiết kế giao diện
4.4.1 Danh sách các màn hình
STT Tên màn hình Ý nghĩa / Ghi chú
1 Đăng nhập Cho phép người dùng đăng nhập vào hệ thống
2 Đăng ký Cho phép người dùng đăng ký tài khoản để tương tác với hệ thống
3 Trang chủ Hiển thị màn hình chính của hệ thống để người dùng sử dụng
4 Thông tin kỳ thi Hiển thị những thông tin liên quan đến kỳ thi
5 Thông tin tài khoản Xem chi tiết thông tin tài khoản, đổi thông tin, đăng xuất
6 Thảo luận là nơi người dùng trao đổi mọi thông tin liên quan đến kỳ thi IELTS, nội dung bài học và các kỳ thi tiếng Anh nói chung, kết nối cộng đồng ôn luyện và chia sẻ kinh nghiệm làm bài thi, đề thi, tài liệu học tập cũng như mẹo thi để nâng cao kết quả.
7 Danh sách đề thi Hiển thi danh sách đề thi thử
8 Trang luyện thi (Reading) Hiển thị đề thi câu hỏi phần reading
9 Trang luyện thi (Listening) Hiển thị câu hỏi phần listening
10 Giao diện chính trang quản lý Giao diện chính cho phép người quản lý hệ thống thao tác các tác vụ liên quan đến đề thi, người dùng
11 Chỉnh sửa đề thi Người quản lý dùng để chỉnh sửa đề thi
12 Thêm đề thi mới Người quản lý dùng để thêm đề thi mới
13 Quản lý người dùng Chỉnh sửa thông tin người dùng
14 Chi tiết thảo luận Nội dung thảo luận và các bình luận
4.4.2 Mô tả chi tiết các màn hình 4.4.2.1 Màn hình “Đăng nhập”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
Khi hành động onblur xảy ra
Kiểm tra Email nếu rỗng thì sẽ báo lỗi
Khi hành động onblur xảy ra
Kiểm tra mật khẩu nếu rỗng thì sẽ báo lỗi
Khi người dùng click vào “Quên mật khẩu”
Từ người dùng, người dùng click vào nút
“Đăng nhập” hoặc bấm enter
Khi người dùng click vào “Đăng ký ngay”
Khi người dùng click vào nút (X)
Thuật toán cho xử lí “Xác nhận đăng nhập” (xử lý có STT 4)
Bước 1: Người dùng thực hiện điều kiện gọi của xử lý 3
Bước 2: Mở cổng kết nối để gọi Restful API, thực hiện gửi request với phương thức POST
Bước 3: Server nhận gói request, mở kết nối với CSDL để tiến hành xác nhận tính hợp lệ của tên đăng nhập và mật khẩu
Bước 4: Trả về trạng thái 200 OK nếu thành công, ngược lại trả về trạng thái báo lỗi tương ứng
Bước 5: Chuyển về “Trang chủ”
4.4.2.2 Màn hình ”Quên mật khẩu”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Kiểm tra email Kiểm tra email
Khi người dung click button “Send”
Báo lỗi khi để trống input email hoặc không đúng định dạng email
2 Gửi mã code tới email người dung
Gửi mã code tới email người dùng
Khi người dung click button “Send”
4.4.2.3 Màn hình “Đặt lại mật khẩu”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
Khi người dùng click vào button “Send”
Báo lỗi khi người dung bỏ trống verify code input
2 Kiểm tra mật khẩu mới
Kiểm tra mật khẩu mới
Khi người dùng click vào button “Send”
Báo lỗi khi người dùng bỏ trống mật khẩu mới input
3 Cập nhật mật khẩu mới
Cập nhật mật khẩu mới
Khi người dùng click button “Send”
Cập nhật mật khẩu mới của người dùng vào hệ thống
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Kiểm tra Tên Kiểm tra Tên Khi hành động onblur xảy ra
Kiểm tra Tên nếu rỗng thì sẽ báo lỗi
2 Kiểm tra Họ Kiểm tra Họ Khi hành động onblur xảy ra
Kiểm tra Họ nếu rỗng thì sẽ báo lỗi
3 Kiểm tra Tên đăng nhập
Kiểm tra Tên đăng nhập
Khi hành động onblur xảy ra
Kiểm tra Tê đăng nhập nếu rỗng thì sẽ báo lỗi
4 Kiểm tra Kiểm tra Khi hành động onblur Kiểm tra Email nếu rỗng thì sẽ báo lỗi
Khi hành động onblur xảy ra
Kiểm tra mật khẩu nếu rỗng thì sẽ báo lỗi
6 Kiểm tra Mật khẩu xác nhận
Kiểm tra Mật khẩu xác nhận
Khi hành động onblur xảy ra
Kiểm tra mật khẩu nếu rỗng thì sẽ báo lỗi
Từ người dùng, người dùng click vào nút
“Đăng ký” hoặc bấm enter
Mật khẩu và mật khẩu xác nhận phải giống nhau
Khi người dùng click vào nút (X)
Thuật toán cho xử lí “Xác nhận đăng nhập” (xử lý có STT 7)
Bước 1: Người dùng thực hiện điều kiện gọi của xử lý 7
Bước 2: Mở cổng kết nối để gọi Restful API, thực hiện gửi request với phương thức PUT
Bước 3: Server nhận gói request, mở kết nối với CSDL để tiến hành xác nhận tính hợp lệ của tên đăng nhập và email
Bước 4: Trả về trạng thái 200 OK nếu thành công, ngược lại trả về trạng thái báo lỗi tương ứng
Bước 5: Chuyển về “Trang đăng nhập”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Di chuyển tới trang chủ
Di chuyển tới trang chủ
Khi người dùng click vào text
“Trang chủ” hoặc click vào LOGO
2 Di chuyển tới giao diện chính của trang kiểm tra
Di chuyển đến giao diện chính của trang kiểm tra
Khi click vào text kiểm tra
3 Hiển thị danh sách màn hình kiểm tra
Hiển thi danh sách màn hình kiểm tra
Khi người dùng di chuyển chuột vào text kiểm tra thì danh sách màn hình kiểm tra xổ xuống
4 Di chuyển đến trang “Thông tin kỳ thi”
Di chuyển đến trand “Thông tin kỳ thi”
Khi người dùng click vào text
5 Di chuyển đến trang “Thảo luận”
Di chuyển đến trang “Thảo luận”
Khi người dùng click vào “Thảo luận”
6 Mở pop up “Đóng góp”
Pop up “Đóng góp hiện ra”, người dùng có thể thực hiện chức năng đóng góp cho hệ thống
Khi người dùng click vào
Tìm kiếm đề thi theo nội dung được nhập trong input
Khi người dùng nhập thông tin cần tìm kiếm vào input “tìm kiếm” và click vào icon “Tìm kiếm”
8 Hiển thị pop up thông tin tài khoản
Hiển thị pop up thông tin tài khoản
Khi người dùng click vào profile
4.4.2.4 Màn hình “Thông tin kỳ thi”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Di chuyển tới tiêu đề
Di chuyển tới tiêu đề
Khi người dùng click vào tiêu đề bên trái
4.4.2.5 Màn hình “Thông tin tài khoản”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Chỉnh sửa tên người dùng
Chỉnh sửa tên người dùng
Khi hành động onblur xảy ra
Thông báo lỗi nếu tên người dùng trống
2 Chỉnh sửa email người dùng
Chỉnh sửa email người dùng
Khi hành động onblur xảy ra
Thông báo lỗi nếu email người dùng trống
3 Lưu thông tin chỉnh sửa
Lưu thông tin chỉnh sửa
Khi người dùng click vào button “Lưu”
4 Hủy chỉnh sửa Hủy chỉnh sửa thông tin
Khi người dùng click vào button “Hủy”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Hiển thị chi tiết nội dung thảo luận
Hiển thị chi tiết nội dung thảo luận
Khi người dùng click vào tiêu đề
4.4.2.7 Màn hình “Danh sách đề thi”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Sắp xếp danh sách đề thi
Sắp xếp danh sách đề thi theo thứ tự tăng dần hoặc giảm dần
Khi người dùng click vào dropdown thứ tự và chọn thứ tự mong muốn
Chuyển tới trang làm bài test
Khi người dùng click vào một trong những bài test hiện hành
4.4.2.8 Màn hình “Luyện thi Reading”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Điểu khiển thanh menu Ẩn hiện menu làm bài thi
Khi người dùng click vào button điều khiển
2 Chọn câu hỏi Di chuyển tới câu hỏi xác định
Khi người dùng click vào button số câu hỏi
3 Nộp bài thi Nộp bài thi và nhận kết quả làm bài
Khi người dùng click vào button “Nộp bài”
Hiển thị Popup danh sách số câu hỏi và câu trả lời của người dùng
Khi người dùng click vào button “Xem trước”
5 Xem đáp án bài thi
Hiển thị đáp án bài thi
Khi người dùng click vào button “Đáp án” Điều kiện trước đó người dùng đã hoàn thành bài thi
Di chuyển sang phần thi tiếp theo
Khi người dùng click vào button ”Tiếp theo”
4.4.2.9 Màn hình “Luyện thi Listening”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Chạy file nghe Chạy file nghe và bắt đầu thi
Khi người dùng click vào button có biểu tượng Play
2 Chọn câu hỏi Di chuyển tới câu hỏi xác định
Khi người dùng click vào button số câu hỏi
3 Nộp bài thi Nộp bài thi và nhận kết quả làm bài
Khi người dùng click vào button “Nộp bài”
Hiển thị Popup danh sách số câu hỏi và câu trả lời của người dùng
Khi người dùng click vào button “Xem trước”
5 Xem đáp án bài thi
Hiển thị đáp án bài thi
Khi người dùng click vào button “Đáp án”
4.4.2.10 Màn hình “quản lý đề thi”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
Khi sự kiện onblur xảy ra
Thông báo lỗi khi Test name trống
2 Kiểm tra đường dẫn ảnh
Kiểm tra đường dẫn ảnh
Khi sự kiện onblur xảy ra
Thông báo lỗi khi đường dẫn ảnh trống
Thông báo lỗi khi chưa chọn level
4 Kiểm tra thông tin thời gian làm bài
Kiểm tra thông tin thời gian làm bài
Thông báo lỗi khi thông tin thời gian làm bài trống
5 Kiểm tra file Kiểm tra file Thông báo lỗi khi chưa chọn file test
Lưu đề tho đã mới
Khi người dùn click vào button “Lưu”
7 Xóa đề thi Xóa đề thi Khi người dùn click vào button “Xóa”
8 Sửa đề thi Sửa đề thi Khi người dùn click vào button “Sửa”
Hiển thị màn hình chỉnh sửa
4.4.2.11 Màn hình “Chỉnh sửa đề thi”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
Khi sự kiện onblur xảy ra
Thông báo lỗi khi Test name trống
3 Kiểm tra đường dẫn đến ảnh
Kiểm tra đường dẫn ảnh
Khi sự kiện onblur xảy ra
Thông báo lỗi khi đường dẫn link trống
4 Chỉnh sửa mức độ của đề thi
Chỉnh sửa mức độ của đề thi
Khi người dùng click vào button Lưu
5 Lưu đề thi đã chỉnh sửa
Lưu đề thi đã chỉnh sửa
Khi người dùng click vào button Lưu
6 Hủy chỉnh sửa câu hỏi
Hủy chỉnh sửa câu hỏi
Khi người dùng click vào button Đóng
4.4.2.12 Màn hình quản lí người dùng
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Kiểm tra Tên người dùng
Kiểm tra tên người dùng
Khi người dùng click button “Lưu”
Thông báo lỗi khi tên người dùng để trống
Khi người dùng click button “Lưu”
Thông báo lỗi khi email để trống hoặc không đúng định dạng email
3 Phân quyền cho người dùng
Phân quyền cho người dùng
Khi người dùng click vào button
Người dùng phải chọn một trong số các lựa chọn
Khi người dùng click vào button
Báo lỗi khi mật khẩu để trống hoặc quá ngắn
5 Lưu thông tin người dùng mới
Lưu thông tin người dùng mới
Khi người dùng click vào button
Lưu thông tin người dùng mới vào hệ thống
Khi người dùng click vào button
Xóa người dùng đó ra khỏi hệ thống
7 Sửa đề thi Sửa đề thi Khi người dùn click vào button “Sửa”
Hiển thị màn hình chỉnh sửa
4.4.2.13 Màn hình chỉnh sửa thông tin người dùng
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Cập nhật phân quyền cho User
Cập nhật phân quyền cho User
Khi người dùng click button Lưu
2 Cập nhật đánh giá mức độ hoạt động của người dùng
Cập nhật đánh giá mức độ hoạt động của người dùng
Khi người dùng click button
Báo lỗi khi người dùng nhập sai định dạng
3 Cập nhật huy hiệu của học viên
Cập nhật huy hiệu của học viên
Khi người dùng click vào button Lưu
4 Lưu thông tin người dùng đang cập nhật
Lưu thông tin người dùng đang cập nhật
Khi người dùng click vào button Lưu
Cập nhật lại thông tin người dùng vào hệ thống
5 Hủy chỉnh sửa câu hỏi
Hủy chỉnh sửa câu hỏi
Khi người dùng click vào button Đóng
Clear toàn bộ input, tick box
4.4.2.14 Màn hình “Chi tiết chủ đề thảo luận”
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Bình luận trả lời nội dung thảo luận
Bình luận trả lời nội dung thảo luận
Khi người dùng click vào button “Trả lời”.