Tải bản đầy đủ (.docx) (71 trang)

đồ án 1 xây dựng ứng dụng luyện toeic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (451.29 KB, 71 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN </b>

<b>SINH VIÊN THỰC HIỆN: NGUYỄN CÁT TƯỜNG - 21521655 </b>

<b>NGÔ THỊ BẢO LINH - 21522288 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>TP. HỒ CHÍ MINH, 2023</b>

<b>LỜI CẢM ƠN </b>

Chúng em xin gửi lời cảm ơn chân thành và sự tri ân đến ThS.Trần Thị Hồng Yếnđã hướng dẫn, tạo điều kiện cho nhóm em hồn thành đồ án 1– đề tài Xây dựng ứngdụng luyện TOEIC. Trong thời gian một học kỳ thực hiện đồ án, nhóm em đã học hỏithêm được nhiều kiến thức, kinh nghiệm, biết được thêm về nhiều cơng nghệ mới.Những nhận xét, góp ý chân tình của cơ chính là cơ sở để nhóm có thể cải tiến và hồnthiện đề tài này một cách tốt nhất.

Tuy nhiên, trong quá trình thực hiện đề tài, do còn thiếu kinh nghiệm trong việcxây dựng sản phẩm, nhóm có thể khơng tránh khỏi những thiếu sót. Chính vì vậy,chúng em rất mong nhận được những sự góp ý, hỗ trợ từ phía cơ nhằm hồn thiện đồán một cách tốt nhất, và cũng là hành trang để em thực hiện tiếp các đề tài khác trongtương lai.

Một lần nữa, chúng em xin chân thành cảm ơn sâu sắc. Chúng em xin kính chúc cơln dồi dào sức khỏe, thành công trong sự nghiệp và cuộc sống!

Tp. HCM, ngày 23 tháng 12 năm 2023 Sinh viên thực hiện

Nguyễn Cát Tường – Ngô Thị Bảo Linh

<b>MỤC LỤC </b>

<b>TÓM TẮT ĐỒ ÁN 1 Chương 1. GIỚI THIỆU ĐỀ TÀI 2 1.1. Lý do chọn đề</b>

tài ...2 1.2. Mụctiêu...2 1.3. Đối tượngnghiên cứu ...3 1.4. Phạm vi nghiêncứu ...3 1.5. Phân tích một số ứngdụng hiện có liên quan đến đề tài ...4 1.5.1. Ứng dụng TOEICTest...4 1.5.2. Ứng dụng MigiiTOEIC...5 1.6. Những vấn đề còn tồntại...6 1.7. Những vấn đề cần tập trung

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>nghiên cứu giải quyết...6 Chương 2. CƠ SỞ LÝ THUYẾT 7</b>

2.1. Ngơn ngữ lập trình Javascript...7

2.1.1. Giới thiệu Javascript [1] ...7 2.1.2.Cú pháp Javascript cơ bản ...7 2.1.2.1. Cáchđặt tên biến, hàm và khai báo biến ...7 2.1.2.2. Toán tử trongJavascript...8 2.2. Ngôn ngữHTML...8 2.2.1. Giớithiệu ...8 2.2.2. Ưu điểm[2]...8 2.2.3. Nhượcđiểm ...9 2.3.React.js ...9

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

cầu...14 3.1.1. Yêu cầu chứcnăng...14 3.1.2. Yêu cầu phi chức

3.2.3.3. Usecase quên mật khẩu ...23

3.2.3.4. Usecase luyện tập kỹ năng nghe ...25

3.2.3.5. Usecase luyện tập kỹ năng đọc ...26

3.2.3.6. Usecase luyện tập kỹ năng nói...27

3.2.3.7. Usecase luyện tập kỹ năng viết...28

3.2.3.8. Usecase luyện thi ...29

3.2.3.9. Usecase xem lịch sử...29

3.2.3.10. Usecase xem từ vựng, câu hỏi đã lưu ...30

3.2.3.11. Usecase học từ vựng qua card...31

3.2.3.12. Usecase học từ vựng qua game...32

3.2.3.13. Usecase xem bài viết trên diễn đàn...33

3.2.3.14. Usecase xem hồ sơ cá nhân...34

3.2.3.15. Usecase lọc bài viết...35

3.2.3.16. Usecase tìm kiếm bài viết ...35

3.2.3.22. Usecase đăng bài viết...41

3.2.3.23. Usecase tạo đề thi...42

3.2.3.24. Usecase thêm câu hỏi...43

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>phát triển...84 TÀI LIỆUTHAM KHẢO 85</b>

<b>MỤC LỤC HÌNH </b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Hình 1.1. Logo ứng dụng TOEIC Test ...4

Hình 1.2. Logo ứng dụng Migii TOEIC ...5

Hình 2.1. Ví dụ về cách đặt tên biến, hàm trong JavaScript...7

Hình 2.2. Tất cả các tốn tử được JavaScript hỗ trợ...8

Hình 3.1. Sơ đồ usecase cho người dùng chưa đăng nhập ...17

Hình 3.2. Sơ đồ usecase cho người dùng đã đăng nhập ...18

Hình 3.3. Sơ đồ usecase cho admin ...19

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Bảng 3.1. Danh sáchusecase. ...19 Bảng 3.2. Usecaseđăng nhập ...21 Bảng 3.3. Usecaseđăng ký ...22 Bảng 3.4. Usecasequên mật khẩu ...23 Bảng 3.5. Usecaseluyện tập kỹ năng nghe...25 Bảng 3.6. Usecaseluyện tập kỹ năng đọc...26 Bảng 3.7. Usecaseluyện tập kỹ năng nói ...27 Bảng 3.8. Usecaseluyện tập kỹ năng viết ...28 Bảng 3.9. Usecaseluyện thi...29 Bảng 3.10.Usecase xem lịch sử ...29 Bảng 3.11.Usecase xem từ vựng, câu hỏi đã lưu...30 Bảng 3.12.Usecase học từ vựng qua card ...31 Bảng3.13. Usecase học từ vựng qua game ...32 Bảng3.14. Usecase xem bài viết trên diễn đàn ...33 Bảng

3.15. Usecase xem hồ sơ cá nhân ...34

Bảng 3.16. Usecase lọc bài viết ...35

Bảng 3.17. Usecase tìm kiếm bài viết...36

Bảng 3.23. Usecase đăng bài viết ...41

Bảng 3.24. Usecase tạo đề thi...42

Bảng 3.25. Usecase thêm câu hỏi ...43

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Bảng 4.11. Bảng mô tả giao diện từ vựng ...68

Bảng 4.12. Bảng mô tả giao diện game ...69

Bảng 4.13. Bảng mô tả giao diện chủ đề từ vựng...70

Bảng 4.14. Bảng mô tả giao diện lộ trình ...71

Bảng 4.15. Bảng mơ tả giao diện kế hoạch ...72

Bảng 4.16. Bảng mô tả giao diện chọn lộ trình ...73

Bảng 4.17. Bảng mơ tả giao diện diễn đàn ...74

Bảng 4.18. Bảng mô tả giao diện tạo bài viết...75

Bảng 4.19. Bảng mô tả giao diện hồ sơ ...76

Bảng 4.20. Bảng mơ tả giao diện phântích ...77 Bảng 4.21. Bảng mô tả giao diệnquản lý câu hỏi ...78 Bảng 4.22. Bảng mô tả giao diệntạo đề thi...79

Bảng 4.23. Bảng mô tả giao diện quản lý chủ đề từ vựng...80

Bảng 4.24. Bảng mô tả giao diện từ vựng trong chủ đề ...81

Bảng 4.25. Bảng mơ tả giao diện quản lý người dùng...82

<b>TĨM TẮT ĐỒ ÁN </b>

<b>Vấn đề nghiên cứu: </b>

Đồ án này tập trung vào việc tìm hiểu thị trường ngơn ngữ và kỳ thi TOEIC sauđó xây dựng một ứng dụng di động luyện thi hiệu quả. Thị trường ngôn ngữ đang trảiqua sự biến đổi nhanh chóng, đặt ra thách thức lớn đối với những người muốn nâng caokỹ năng tiếng Anh của mình để thích ứng với môi trường làm việc quốc tế. Đồng thời,kỳ thi TOEIC, là công cụ đánh giá phổ biến trong doanh nghiệp và giáo dục, đòi hỏimột phương tiện học tập linh hoạt và chất lượng.

<b>Các hướng tiếp cận: </b>

Hướng tiếp cận chủ yếu xoay quanh việc tìm hiểu sâu sắc về nhu cầu và mongmuốn của người học tiếng Anh trong thị trường hiện tại. Chúng em cũng đặt sự chú ývào nhận thức về đặc điểm cụ thể của kỳ thi TOEIC và cách mà người học có thể đượchỗ trợ hiệu quả.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

hoạt, tích hợp các tính năng và nội dung được tối ưu hóa dựa trên thơng tin thị trường.

<b>Một số kết quả đạt được: </b>

Kết quả đạt được của dự án bao gồm việc xây dựng một ứng dụng di động luyệnthi TOEIC, hỗ trợ nâng cao kỹ năng tiếng Anh chuẩn bị cho kỳ thi, và một trang webquản lý dành cho admin giúp quản lý tài liệu, bài thi, diễn đàn và người dùng một cáchhiệu quả. Điều này mang lại trải nghiệm toàn diện cho cả người học và quản trị viên.

<b>1.2. Mục tiêu </b>

- Xây dựng một ứng dụng di động linh hoạt và tương tác, cung cấp bài thi thửTOEIC và bài tập đa dạng. Cùng với đó là thiết kế giao diện thân thiện, dễ sửdụng để khuyến khích người học duy trì sự hứng thú và kiên nhẫn.

- Giúp người dùng ôn tập và bồi dưỡng thêm kiến thức về TOEIC. - Giúpngười dùng làm quen với cấu trúc đề thi, nội dung thi TOEIC.

2

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

- Hỗ trợ giải đáp câu hỏi, thắc mắc của người dùng thông qua diễn đàn. - Tạo trang web quản lý dành cho admin, giúp quản lý nội dung, bài thi, tài liệu, từ vựng và hỗ trợ diễn đàn một cách hiệu quả.

<b>1.3. Đối tượng nghiên cứu </b>

<b>- Các công nghệ </b>

• Ngơn ngữ lập trình: JavaScript.

• Cơ sở dữ liệu và một vài dịch vụ khác: Firebase.

• Frontend: React Native (app cho người dùng), ReactJS (web cho admin). • Backend: NodeJS, ExpressJS.

<b>- Đối tượng sử dụng </b>

<b>• Người dùng: Học tập thơng qua các câu hỏi, luyện thi qua các đề với cấu </b>

trúc và thời gian thật, học ơn từ vựng…

• Quản trị viên: Quản lý các bài học, kho kiến thức, các bài luyện tập, diễn đàn và người dùng.

<b>+ Luyện tập kỹ năng nghe, nói đọc viết của các phần trong bài thi TOEIC + </b>

Mục lưu trữ câu hỏi và từ vựng

<b>+ Thống kê tiến trình + Kiểm tra và đánh giá + Tích hợp xã hội</b>

3

<b>+ Quản lý người dùng + Quản lý tài liệu + Quản lý từ vựng + Quản lý diễn đàn </b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

+ Một số chức năng khác như xây dựng lộ trình và trị chơi ơn từ vựng

<b>1.5. Phân tích một số ứng dụng hiện có liên quan đến đề tài </b>

<b>1.5.1.Ứng dụng TOEIC Test </b>

<i>Hình 1.1. Logo ứng dụng TOEIC Test </i>

- Ứng dụng khơng cung cấp lộ trình học cụ thể hoặc hướng dẫn đặc biệt cho người học.

<b>1.5.2. Ứng dụng Migii TOEIC </b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i>Hình 1.2. Logo ứng dụng Migii TOEIC </i>

<b>• Ưu điểm: </b>

- Ứng dụng cung cấp luyện tập cho cả 4 kỹ năng tiếng Anh (Nghe, Nói, Đọc, Viết). - Có bài thi mơ phỏng và các bài tập luyện tập giúp người học làm quen với định

dạng của kỳ thi TOEIC.

- Cung cấp một kho từ vựng đa dạng và quản lý học từ vựng một cách có tổ chức. - Cung cấp lộ trình học cụ thể và hướng dẫn đặc biệt.

- Tích hợp chức năng tự động nhắc nhở. - Giao diện người dùng thân thiện, dễ sử dụng.

- Cung cấp rõ hướng dẫn sử dụng cho từng chức năng của ứng dụng.

5

<b>• Nhược điểm: </b>

- Thiếu diễn đàn trao đổi có thể làm giảm sự tương tác và chia sẻ thông tin giữangười học, làm giảm tính tương tác và hỗ trợ cộng đồng. Điều này có thể làmgiảm sự đa dạng và giàu tính học thuật của trải nghiệm học tập.

<b>1.6. Những vấn đề cịn tồn tại </b>

• Thiếu tích hợp hiệu quả các kỹ năng: Một số ứng dụng vẫn chưa có cách tích hợphiệu quả giữa cả bốn kỹ năng (Nghe, Nói, Đọc, Viết), làm giảm khả năng toàndiện trong việc chuẩn bị cho kỳ thi TOEIC.

• Chưa có hệ thống xây dựng lộ trình học: Một số ứng dụng vẫn chưa cung cấp lộtrình học cụ thể và hiệu quả, làm cho người học có thể cảm thấy thiếu hướngdẫn và khó khăn trong việc quyết định cách họ nên học.

• Chưa có giao tiếp và hỗ trợ cộng đồng: Sự thiếu diễn đàn trao đổi và cộng đồnghỗ trợ có thể làm mất đi sự tương tác và chia sẻ thơng tin giữa người học, gâythiếu sót trong khía cạnh học thuật và xã hội.

<b>1.7. Những vấn đề cần tập trung nghiên cứu giải quyết </b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

• Xây dựng lộ trình học: Xây dựng hệ thống xây dựng lộ trình học để hỗ trợ người học có định hướng ơn luyện.

• Tích hợp cộng đồng: Xây dựng mơi trường giao tiếp và hỗ trợ cộng đồng trongứng dụng để tạo nên sự tương tác và chia sẻ thông tin giữa người học. • Đa dạng

nguồn tài ngun: Tích hợp đa dạng nguồn tài nguyên học liệu như câu hỏi trong tất cả các phần của bốn kỹ năng, bài thi, từ vựng để làm phong phú nội dung luyện tập.

• Giao diện thân thiện: Phát triển giao diện người dùng thân thiện, dễ sử dụng để tốiưu hóa trải nghiệm học tập.

• Hiệu suất ứng dụng: Tối ưu hóa hiệu suất để đảm bảo ứng dụng chạy mượt mà. • Đảm bảo bảo mật thông tin: Bảo vệ thông tin cá nhân của người học để đảm bảo

an toàn và tin cậy khi sử dụng ứng dụng.6

<b>Chương 2. CƠ SỞ LÝ THUYẾT 2.1. Ngơn ngữ lập trình Javascript </b>

<b>2.1.1. Giới thiệu Javascript [1] </b>

- JavaScript là một ngơn ngữ lập trình dành cho việc tạo và phát triển web. Nó đượcnhúng vào trong file HTML giúp cho website trở nên sống động và đẹp hơn.JavaScript có thể cập nhật và thay đổi cả HTML và CSS.

- JavaScript còn là một ngơn ngữ lập trình đa nền tảng, ngồi dành cho việc lập trìnhfrontend trên nền tảng web ra thì nó cịn được sử dụng cho việc lập trình và pháttriển ứng dụng trên nền tảng mobile.

<b>2.1.2. Cú pháp Javascript cơ bản </b>

<b>2.1.2.1. Cách đặt tên biến, hàm và khai báo biến </b>

- Trong Javascript, định danh (identifiers) được sử dụng để đặt tên biến, từ khóa, hàm và labels.

<i>Hình 2.1. Ví dụ về cách đặt tên biến, hàm trong JavaScript </i>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

- Javascript hỗ trợ 3 cách để khai báo một biến, đó là sử dụng các từ khóa sau:

• Const: được dùng để khai báo hằng số, giá trị của nó khơng thay đổi trong suốt chương trình.

• var: biến được khai báo với từ khóa var sẽ được truy cập ở bất kể đâu trong chương trình.

• let: từ khóa này giúp cho biến chỉ có thể được truy xuất bên trong phạm viblok quanh nó (block được định nghĩa bởi dấu ngoặc nhọn {}).

7

<b>2.1.2.2. Toán tử trong Javascript </b>

<i>Hình 2.2. Tất cả các tốn tử được JavaScript hỗ trợ </i>

<b>2.2. Ngôn ngữ HTML </b>

<b>2.2.1. Giới thiệu </b>

HTML viết tắt cho Hypertext Markup Language, tạm dịch là ngôn ngữ đánh dấusiêu văn bản. HTML được sử dụng để tạo và cấu trúc các thành phần trong trang webhoặc ứng dụng, phân chia các đoạn văn, heading, links, blockquotes,… HTML khơngphải là ngơn ngữ lập trình. Điều này có nghĩa là nó khơng thể tạo ra các chức năng"động". Hiểu một cách đơn giản hơn, HTML cũng tương tự như phần mềm MicrosoftWord, nó chỉ có tác dụng bố cục và định dạng trang web. Một tài liệu HTML đượchình thành bởi các phần tử HTML (HTML Elements) được quy định bằng các cặp thẻ(tag và attributes). Các cặp thẻ này được bao bọc bởi dấu ngoặc < > và thường là sẽđược khai báo thành một cặp, bao gồm thẻ mở và thẻ đóng.

<b>2.2.2. Ưu điểm [2] </b>

- HTML là chuẩn mực Internet do tổ chức W3C (World Wide Web Consortium) duy trì.

- Có mã nguồn mở, cho phép dữ liệu được cơng khai và miễn phí sử dụng.

- Dễ dàng tìm hiểu và sử dụng nên HTML trở nên rất phổ biến, nhờ đó có được nguồn

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

tài nguyên phong phú

8

<b>2.2.3. Nhược điểm </b>

Nhược điểm lớn nhất mà HTML cịn tồn tại đó chính là chỉ có thể sử dụng ởnhững trang web tĩnh. Đây là những trang web chỉ hiển thị thơng tin mà khơng có sựtương tác của người dùng. Chính vậy, khi xây dựng những tính năng động hoặc hướngđối tượng người dùng thì lập trình viên cần phải sử dụng Javascript hoặc ngơn ngữbackend khác của bên thứ 3 mới có thể thực hiện được.

<b>2.3. React.js </b>

<b>2.3.1. Giới thiệu [3] </b>

React.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xuhướng Single Page Application. Trong khi những framework khác cố gắng hướng đếnmột mơ hình MVC hồn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợpvới những thư viện Javascript khác. React là một library cho phép nhúng code htmltrong code javascript nhờ vào JSX, có thể dễ dàng lồng các đoạn HTML vào trong JS.Việc tích hợp giữa javascript và HTML vào trong JSX làm cho các component dễ hiểuhơn.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

- React Native sử dụng một ngôn ngữ và mơ hình phát triển chung để xây dựng ứngdụng cho cả hai hệ điều hành, điều này giúp giảm bớt công sức và thời gian cầnthiết để phát triển và duyệt ứng dụng trên nhiều nền tảng. Điều này có nghĩa rằngbạn có thể chia sẻ nhiều mã nguồn giữa ứng dụng iOS và Android, đồng thời vẫncó khả năng tùy chỉnh và điều chỉnh từng phiên bản ứng dụng cho từng nền tảngmột.

<b>2.4.2. Ưu điểm </b>

<small>- Tiết kiệm thời gian và công sức: React Native cho phép các nhà phát triển viết mã</small>một lần và chạy ứng dụng trên cả hai hệ điều hành, giúp tiết kiệm thời gian và côngsức đáng kể.

<small>- Hiệu suất cao: React sử dụng cơ chế virtual DOM để cải thiện hiệu suất ứng dụng.</small>Thay vì cập nhật tồn bộ DOM mỗi khi có sự thay đổi, React chỉ cập nhật các phầntử cần thiết, giúp giảm tải cho trình duyệt và làm cho ứng dụng chạy nhanh hơn. <small>- Học dễ dàng: React sử dụng JSX (JavaScript XML) để định nghĩa giao diện người</small>

dùng, và nó có cú pháp rất giống với HTML. Điều này làm cho việc học Reacttương đối dễ dàng cho những người đã có kinh nghiệm về HTML và JavaScript. <small>- Cộng đồng phát triển lớn: React Native có một cộng đồng phát triển lớn và tích cực,</small>

giúp các nhà phát triển dễ dàng tìm kiếm sự hỗ trợ và chia sẻ kiến thức.

10

<b>2.4.3. Nhược điểm </b>

<small>- Hỗ trợ nền tảng hạn chế: React chỉ hỗ trợ hai nền tảng phổ biến nhất là iOS và</small>Android thông qua React Native. Điều này có nghĩa rằng nếu bạn muốn phát triểnứng dụng cho các nền tảng khác bạn sẽ phải tìm kiếm các giải pháp khác.

<small>- Hiệu suất không bằng ứng dụng native thuần: Mặc dù React Native đã cải thiện hiệu</small>suất so với việc sử dụng các framework cross-platform truyền thống, nhưng ứngdụng viết bằng ngơn ngữ và cơng nghệ native thường có hiệu suất tốt hơn.

<b>2.5. Node.js </b>

<b>2.5.1. Giới thiệu [6] </b>

- NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trình thơng dịchthực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn giản và dễdàng mở rộng.

- Phần Core 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.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

- NodeJS tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gian thực.

<b>2.6.3. Nhược điểm </b>

- Thiếu cấu trúc: Do Express.js không áp đặt một cấu trúc nghiêm ngặt, việc tổ chứcdự án và quản lý mã nguồn có thể trở nên khó khăn, đặc biệt khi ứng dụng pháttriển lớn và phức tạp.

<b>2.7. Firebase </b>

<b>2.7.1. Giới thiệu </b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

- Firebase là nền tảng được phát triển bởi Google cho việc tạo ra các ứng dụng di độngvà web.

- Không phải mã nguồn mở.

- Chỉ hoạt động trên cơ sở dữ liệu NoSQL.

- Không phải tất cả các dịch vụ trên Firebase đều miễn phí.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>- Bài kiểm tra mơ phỏng TOEIC </b>

• Cung cấp bài kiểm tra mô phỏng TOEIC theo định dạng và thời gian thực tế của kỳ thi.

<b>- Học từ vựng TOEIC qua các card từ vựng theo từng chủ đề. - Kỹ năng nghe </b>

• Bài nghe TOEIC: Cung cấp bài nghe và câu hỏi tương ứng, cho phép người dùng luyện tập kỹ năng nghe.

• Phân tích câu hỏi nghe: Đưa ra phân tích, dịch nghĩa và các gợi ý giúp người dùnghiểu rõ hơn về nội dung của bài nghe.

<b>- Kỹ năng đọc </b>

<b>• Bài đọc TOEIC: Cung cấp các câu hỏi ngữ pháp, đoạn văn và câu hỏi tương ứng </b>

để người dùng luyện tập kỹ năng đọc.

• Từ vựng và ngữ pháp: Cung cấp các bài học về từ vựng và ngữ pháp liên quan đến đoạn văn.

• Người dùng có thể chia sẻ bài nói của mình lên diễn đàn và nhờ người dùng khác đánh giá và sửa chữa

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>- Kiểm tra và đánh giá </b>

• Cung cấp các bài kiểm tra thực tế sát với đề thi TOEIC hàng tháng để đánh giá kỹnăng tổng thể và sự tiến bộ của người dùng.

• Quản lý thơng tin tài khoản người dùng

• Xác định và quản lý các quyền truy cập của người dùng, bao gồm cấp bậc và vai trò.

<b>- Quản lý tài liệu </b>

• Thêm, sửa, xóa tài liệu

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

- Một số chức năng khác:

• Đưa ra bài test nhỏ để kiểm tra đầu vào của người dùng, từ đó xác định cấp bậc vàgợi ý lộ trình học phù hợp.

• Tích hợp game vui để ôn tập dễ dàng hơn.

<b>3.1.2. Yêu cầu phi chức năng </b>

<small>- Tính bảo mật: Phải đảm bảo an tồn thông tin dữ liệu của người dùng, ngăn chặn các</small>cuộc tấn cơng từ bên ngồi, giảm thiểu tối đa rủi ro, rị rỉ thơng tin tài khoản ngườidùng.

<small>- Tính tiện dụng: Phần mềm thân thiện với người dùng, dễ sử dụng. - </small>Tính hiệu quả: Đảm bảo tốc độ xử lý ổn định, nhanh chóng.

<small>- Tính tương thích: Ứng dụng có thể chạy ổn định.</small>

16

<b>3.2. Thiết kế hệ thống </b>

<b>3.2.1. Sơ đồ usecase </b>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i>Hình 3.1. Sơ đồ usecase cho người dùng chưa đăng nhập</i>

17

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<i>Hình 3.2. Sơ đồ usecase cho người dùng đã đăng nhập</i>

18

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<i>Hình 3.3. Sơ đồ usecase cho admin </i>

<b>3.2.2. Danh sách usecase </b>

<i>Bảng 3.1. Danh sách usecase.</i>

<b>STT Tên Use-case Actor Mô tả</b>

1 Đăng nhập Người dùng chưa đăng nhập

Đăng nhập bằng tài khoản đã đăng ký.

2 Đăng ký Người dùng chưa đăng nhập

Tạo tài khoản mới để sử dụng App.

3 Quên mật khẩu Người dùng Người sử dụng App quên mật khẩu tài

Người dùng chọn 1 trong 4 phần để luyện nghe, chọn số câu cần luyện.5 Luyện tập kỹ

năng đọc

Người dùng đã đăng nhập

Người dùng chọn 1 trong 3 phần để luyện đọc, chọn số câu cần luyện.6 Luyện tập kỹ

năng nói

Người dùng đã đăng nhập

Người dùng chọn 1 trong 6 phần để luyện nói, chọn số câu cần luyện.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

7 Luyện tập kỹ năng viết

Người dùng đã đăng nhập

Người dùng chọn 1 trong 3 phần để luyện viết, chọn số câu cần luyện.8 Luyện thi Người dùng đã

đăng nhập

Người dùng chọn đề thi và tiến hành thi

9 Xem lịch sử luyện tập, thi

Người dùng đã đăng nhập

Người dùng xem lịch sử luyện tập, thi

10 Xem từ vựng, câu hỏi đã lưu

Người dùng đã đăng nhập

Người dùng xem lại những từ vựng, câu hỏi đã lưu

11 Học từ vựng qua card

Người dùng đã đăng nhập

Người dùng học từ vựng theo chủ đề

12 Học từ vựng qua game

Người dùng đã đăng nhập

Người dùng học từ vựng qua các game

13 Xem bài viết trên diễn đàn

Người dùng đã đăng nhập

Người dùng xem các bài viết hiện có trêndiễn đàn

14 Xem hồ sơ cá nhân

Người dùng đã đăng nhập

Người dùng xem trang cá nhân của mìnhhoặc người khác

15 Lọc bài viết Người dùng đã Người dùng lọc bài viết theo các

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

20 đăng nhập

16 Tìm kiếm bài viết

Người dùng đã đăng nhập

Người dùng tìm kiếm bài viết

17 Chọn lộ trình Người dùng đã đăng nhập

Người dùng chọn mục tiêu điếm và số ngày luyện tập mong muốn và hợp lệ18 Xem lộ trình Người dùng đã

đăng nhập

Người dùng xem lộ trình mà hệ thống đã thiết lập theo nhu cầu của mình

19 Chia sẻ câu hỏi Người dùng đã đăng nhập

Người dùng chia sẻ bài nói hoặc bài viết của mình qua diễn đàn

20 Lưu từ vựng Người dùng đã đăng nhập

Người dùng lưu lại từ vựng

21 Nhắc nhở từ vựng

Người dùng đã đăng nhập

Người dùng chọn từ vựng cần nhắc nhở hàng ngày

22 Đăng bài viết Người dùng đã đăng nhập

Người dùng đăng bài viết lên diễn đàn

23 Tạo đề thi Admin Admin thêm đề thi cho ứng dụng24 Thêm câu hỏi Admin Admin thêm câu hỏi cho ứng dụng

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

25 Thêm từ vựng Admin Admin thêm từ vựng cho chủ đề từ vựng

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

Trạng thái hệ thống trướckhi bắt đầu Usecase

Người dùng chưa đăng nhập trước đó hoặc đã đăng xuất

Trạng thái hệ thống sau khi thực hiện Usecase

Người dùng đăng nhập ứng dụng thành cơng

Luồng sự kiện chính 1. Người dùng truy cập vào ứng dụng.

2. Người dùng nhập Email, mật khẩu và chọn lệnh đăng nhập.

3. Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng truy cập ứng dụng.

Luồng sự kiện phụ - Người dùng muốn đăng nhập bằng Google 2a) Người dùng chọn đăng nhập với Google

3a) Người dùng lựa chọn tài khoản liên kết với Google và bắt đầu thực hiện xác thực

Mở rộng KhôngCác yêu cầu đặc biệt Không

<b>3.2.3.2. Usecase đăng ký </b>

<i>Bảng 3.3. Usecase đăng ký</i>

Tên Usecase Đăng ký

Mục đích Tạo tài khoản mới để sử dụng App

22

Người dùng Người dùng chưa đăng nhập

Điều kiện kích hoạt Người dùng vào trang “Đăng ký tài khoản” và nhấn nút đăng ký.

Trạng thái hệ thống trướckhi bắt đầu Usecase

Người dùng chưa có tài khoản.

Trạng thái hệ thống sau khi thực hiện Usecase

Người dùng đăng ký tài khoản mới thành công. Hệ thống lưu thông tin tài khoản mới vào dữ liệu.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

-Luồng sự kiện chính 1. Người dùng truy cập vào ứng dụng. 2. Người dùng chọn lệnh đăng ký tài khoản.

3. Người dùng nhập Email, tên hiển thị, mật khẩu, xác nhận mật khẩu và chọn lệnh đăng ký.

Luồng sự kiện phụ KhôngMở rộng Không

Các yêu cầu đặc biệt Email phải là Email hợp lệ, mật khẩu phải có tối thiểu ít nhất 6 ký tự.

<b>3.2.3.3. Usecase quên mật khẩu </b>

<i>Bảng 3.4. Usecase quên mật khẩu</i>

Tên Usecase Quên mật khẩu

Mục đích Cấp lại mật khẩu mới cho người dùng.Người dùng Người dùng chưa đăng nhập

Điều kiện kích hoạt Người dùng nhấn vào nút quên mật khẩu ở trang “Quên mật khẩu”.

23 Trạng thái hệ thống trước

khi bắt đầu Usecase

Người dùng chưa đăng nhập.

Trạng thái hệ thống sau khi thực hiện Usecase

- Người dùng đổi mật khẩu cho tài khoản thành công.- Hệ thống lưu thông tin mật khẩu mới vào dữ liệu.

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

Luồng sự kiện chính 1. Người dùng truy cập vào ứng dụng. 2. Người dùng chọn lệnh quên mật khẩu.

3. Người dùng nhập Email tài khoản và chọn lệnh gửi 4. Hệ thống kiểm tra tính hợp lệ của Email, đảm bảoEmail này đã được đăng ký tài khoản trước đó, sau đóhệ thống tiến hành gửi tới Email đó tới địa chỉ đã đượcđăng ký.

5. Người dùng bấm vào đường dẫn trong Email và dẫn đến trang Web thay đổi mật khẩu.

6. Người dùng thay đổi mật khẩu.

7. Trang Web thông báo thay đổi mật khẩu thành công.

Luồng sự kiện phụ Không

Mở rộng - Hệ thống xác thực thông tin Email không thành công và hiển thị thông báo

+ TH1: Người dùng nhập lại thông tin Use Case quay lại bước 3

+ TH2: Người dùng chọn lệnh quay lại Use Case quay lại bước 2

Các yêu cầu đặc biệt Không

<b>3.2.3.4. Usecase luyện tập kỹ năng nghe </b>

<i>Bảng 3.5. Usecase luyện tập kỹ năng nghe</i>

Tên Usecase Luyện tập kỹ năng ngheMục đích Rèn luyện khả năng ngheNgười dùng Người dùng đã đăng nhậpĐiều kiện kích hoạt Người dùng nhấn nút Begin

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

Trạng thái hệ thống trướckhi bắt đầu Usecase

- Người dùng đã đăng nhập - Hệ thống lấy dữ liệu câu hỏi

- Hệ thống chuyển sang màn hình câu hỏi và phát audioTrạng thái hệ thống sau

khi thực hiện Usecase

- Hệ thống hiện trang kết thúc luyện tập với điểm số đạt được

Luồng sự kiện chính 1. Người dùng truy cập vào ứng dụng. 2. Người dùng truy cập trang Home 3. Người dùng chọn mục Listening.

4. Người dùng chọn 1 trong 4 part để luyện nghe 5. Người dùng chọn số câu cần luyện tập và nhấn Begin 6.Sau khi luyện tập xong, người dùng nhấn Submit

Luồng sự kiện phụ - Người dùng nhấn nút có icon thể hiện quay lại trang trước thì hệ thống sẽ hủy kết quả luyện tập hiện tại.Mở rộng Không

Các yêu cầu đặc biệt Không

25

<b>3.2.3.5. Usecase luyện tập kỹ năng đọc </b>

<i>Bảng 3.6. Usecase luyện tập kỹ năng đọc</i>

Tên Usecase Luyện tập kỹ năng đọcMục đích Rèn luyện khả năng đọcNgười dùng Người dùng đã đăng nhậpĐiều kiện kích hoạt Người dùng nhấn nút Begin Trạng thái hệ thống trước

khi bắt đầu Usecase

- Người dùng đã đăng nhập - Hệ thống lấy dữ liệu câu hỏi

- Hệ thống chuyển sang màn hình câu hỏiTrạng thái hệ thống sau

khi thực hiện Usecase

- Hệ thống hiện trang kết thúc luyện tập với điểm số đạt được

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

Luồng sự kiện chính 1. Người dùng truy cập vào ứng dụng. 2. Người dùng truy cập trang Home 3. Người dùng chọn mục Reading.

4. Người dùng chọn 1 trong 3 part để luyện đọc 5. Người dùng chọn số câu cần luyện tập và nhấn Begin 6.Sau khi luyện tập xong, người dùng nhấn Submit

Luồng sự kiện phụ - Người dùng nhấn nút có icon thể hiện quay lại trang trước thì hệ thống sẽ hủy kết quả luyện tập hiện tại.Mở rộng Không

Các yêu cầu đặc biệt Không

26

<b>3.2.3.6. Usecase luyện tập kỹ năng nói </b>

<i>Bảng 3.7. Usecase luyện tập kỹ năng nói</i>

Tên Usecase Luyện tập kỹ năng nóiMục đích Rèn luyện khả năng nóiNgười dùng Người dùng đã đăng nhậpĐiều kiện kích hoạt Người dùng nhấn nút Begin Trạng thái hệ thống trước

khi bắt đầu Usecase

- Người dùng đã đăng nhập - Hệ thống lấy dữ liệu câu hỏi

- Hệ thống chuyển sang màn hình câu hỏiTrạng thái hệ thống sau

khi thực hiện Usecase

- Hệ thống hiện trang kết thúc luyện tập với điểm số đạt được

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Luồng sự kiện chính 1. Người dùng truy cập vào ứng dụng. 2. Người dùng truy cập trang Home 3. Người dùng chọn mục Speaking.

4. Người dùng chọn 1 trong 5 part để luyện nói 5. Người dùng chọn số câu cần luyện tập và nhấn Begin 6.Sau khi luyện tập xong, người dùng nhấn Submit

Luồng sự kiện phụ - Người dùng nhấn nút có icon thể hiện quay lại trang trước thì hệ thống sẽ hủy kết quả luyện tập hiện tại.Mở rộng Không

Các yêu cầu đặc biệt Không

27

<b>3.2.3.7. Usecase luyện tập kỹ năng viết </b>

<i>Bảng 3.8. Usecase luyện tập kỹ năng viết</i>

Tên Usecase Luyện tập kỹ năng viếtMục đích Rèn luyện khả năng viếtNgười dùng Người dùng đã đăng nhậpĐiều kiện kích hoạt Người dùng nhấn nút Begin Trạng thái hệ thống trước

khi bắt đầu Usecase

- Người dùng đã đăng nhập - Hệ thống lấy dữ liệu câu hỏi

- Hệ thống chuyển sang màn hình câu hỏiTrạng thái hệ thống sau

khi thực hiện Usecase

- Hệ thống hiện trang kết thúc luyện tập với điểm số đạt được

</div>

×