Tên chức năng Luyện phát âm
Tóm tắt Người dùng sẽ đọc lại mẫu câu cho trước và hệ thống sẽ đưa ra kết quả cho biết người đọc phát âm đúng sai chỗ nào so với mẫu câu
Dòng sự kiện chính 1. Người dùng đăng nhập vào ứng dụng
2. Hệ thống sẽ hiển thị danh sách các mẫu câu thuộc nhiều chủ đề đa dạng khác nhau
3. Người dùng chọn bất kì mẫu câu để luyện phát âm 4. Sau đó họ bấm vào nút micro để bắt đầu nói
5. Hệ thống sẽ hiện ra kết quả thông báo so sánh giữa giọng của người đọc và mẫu câu
Dòng sự kiện khác Không có
Các yêu cầu đặc biệt Người dùng đã đăng nhập vào ứng dụng Trạng thái hệ thống trước
khi thực hiện use case
Actor: Người dùng
Điều kiện: Người dùng đăng nhập vào hệ thống. Trạng thái hệ thống sau
khi thực thiện use case
Hệ thống sẽ hiện ra kết quả thông báo so sánh giữa giọng của người đọc và mẫu câu
Điểm mở rộng Không có
18
Chương 4: PHÂN TÍCH 4.1 Sơ đồ lớp (mức phân tích)
Hình 4.1 Sơ đồ lớp tổng quát của ứng dụng
4.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ú
1 User Lớp Lớp tài khoản
2 Video Lớp Lớp video
3 EntryTest Lớp Lớp kiểm tra đầu vào
4 EntryTestDetail Lớp Lớp chi tiết bài kiểm tra đầu vào
5 VideoOutline Lớp Lớp đề cương video (bao gồm các từ vựng và mẫu câu đáng chú ý)
6 User – Video Quan hệ Association
Quan hệ tài khoản – video 7 User – EntryTest Quan hệ
Association
19 8 EntryTest –
EntryTestDetail Quan hệ Composition Quan hệ kiểm tra đầu vào – chi tiết kiểm tra đầu vào 9 Video –
VideoOutline Quan hệ Aggregation Quan hệ video – đề cương video
10 Vocabulary Lớp Lớp từ vựng để lưu các thông tin về từ vựng 11 Sentence Lớp Dùng để lưu thông tin của mẫu câu cho
người dùng luyện phát âm
Bảng 4.1 Danh sách các lớp và mối quan hệ trong ứng dụng
4.3 Mô tả chi tiết từng lớp đối tượng
4.3.1 Lớp “User”
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 fullName String Public Tên người dùng
2 email String Public Email người dùng
3 dateOfBirth String Public Ngày sinh người dùng 4 gender String Public Giới tính người dùng 5 address String Public Địa chỉ người dùng
Bảng 4.2 Bảng mô tả thuộc tính lớp "User"
b) Danh sách phương thức
STT Tên phương thức Loại Ràng buộc Ý nghĩa/ghi chú
1 createUser Bool Public Tạo tài khoản người dùng. 2 updateUser Bool Public Cập nhật thông tin người dùng
20
4.3.2 Lớp “EntryTest”
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 numberOfQuestions Number Public Số lượng câu hỏi
2 result String Public Kết quả bài kiểm tra đầu vào
Bảng 4.4 Bảng mô tả thuộc tính lớp "EntryTest"
b) Danh sách phương thức
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 calculateResult Bool Public Tính toán kết quả bài kiểm tra
Bảng 4.5 Bảng mô tả phương thức lớp "EntryTest" 4.3.3 Lớp “EntryTestDetail”
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 question String Public Chủ đề câu hỏi 2 answers Array Public Các câu trả lời 3 rightAswer String Public Câu trà lời đúng
Bảng 4.6 Bảng mô tả thuộc tính lớp "EntryTestDetail"
b) Danh sách phương thức
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 answerQuestion Bool Public Trả lời câu hỏi
2 CheckResult Bool Public Kiểm tra xem câu hỏi có đúng hay không
21
4.3.4 Lớp “VideoOutline”
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 videoDescription String Public Mô tả video 2 videoSubject String Public Chủ đề video
3 Vocabularies Array Public Các từ vựng có trong video 4 Sentences Array Public Các mẫu câu có trong video
Bảng 4.8 Bảng mô tả thuộc tính lớp "VideoOutline" 4.3.5 Lớp “Video”
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 videoURL String Public Đường dẫn để lấy video 2 videoSubtitle String Public Subtitle của video
Bảng 4.9 Bảng mô tả thuộc tính lớp "Video"
b) Danh sách phương thức
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 getVideo Bool Public Lấy video về để chiếu cho người dùng
Bảng 4.10 Bảng mô tả phương thức lớp "Video" 4.3.6 Lớp “Vocabulary”
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 word String Public Từ vựng
2 pronounce String Public Phát âm
22
4 meaningEng String Public Nghĩa tiếng Anh
5 example String Public Ví dụ minh họa về từ đó
6 wordType String Public Loại từ
7 anotherWordOne String Public Từ gây nhiễu để sử dụng trong câu hỏi
8 anotherWordTwo String Public Từ gây nhiễu để sử dụng trong câu hỏi
Bảng 4.11 Bảng mô tả thuộc tính lớp "Vocabulary" 4.3.7 Lớp “Sentence”
a) Danh sách thuộc tính
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 content String Public Nội dung mẫu câu
2 sound Sound Public Giọng đọc cho mẫu câu đó
Bảng 4.12 Bảng mô tả thuộc tính lớp "Sentence"
b) Danh sách phương thức
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 getVoice Void Public Lấy giọng đọc chuẩn của mẫu câu để người dùng luyện theo
23
Chương 5:
THIẾT KẾ DỮ LIỆU 5.1 Sơ đồ logic
Hình 5.1 Sơ đồ dữ liệu tổng quát của ứng dụng
STT Tên bảng dữ liệu Diễn giải
1 Users Thông tin tài khoản người dùng 2 Video Thông tin các video hội thoại 3 Vocabulary Thông tin chi tiết về từ vựng 4 Sentence Thông tin chi tiết về mẫu câu
24
5.2 Mô tả chi tiết các kiểu dữ kiệu trong sơ đồ logic
5.2.1 Bảng “Users”
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú
1 uid string Khóa chính, không
null
Id người dùng
2 username string Không null Tên người dùng
3 email string Không null Email đăng nhập
4 password string Không null Mật khẩu
5 gender string Giới tính người dùng
6 birthDay string Ngày sinh người dùng
7 address string Địa chỉ người dùng
Bảng 5.2 Bảng mô tả chi tiết dữ liệu "User" 5.2.2 Bảng “Video”
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú
1 videoId string Khóa chính, Not null Id của video
2 subject string Not null Chủ đề của video
3 description string Not null Mô tả của video
4 subtitle string Not null Phụ đề của video
5 vocabularies array Not null Từ vựng đáng chú ý
6 Sentences array Not null Mẫu câu đáng chú ý
25
5.2.3 Bảng “Vocabulary”
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú
1 word string Not null, khóa chính Từ vựng 2 type string Not null, khóa chính Loại từ
3 pronounce string Not null Phát âm từ
4 meaningViet string Not null Nghĩa tiếng Việt
5 meaningEng string Not null Nghĩa tiếng Anh
6 example string Not null Ví dụ minh họa
7 anotherWordOne string Not null Từ gây nhiễu 8 anotherWordTwo string Not null Từ gây nhiễu
Bảng 5.4 Bảng mô tả chi tiết dữ liệu "Vocabulary" 5.2.4 Bảng “Sentence”
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú
1 content string Khóa chính, Not null, Nội dung câu
2 sound Sound Not null Âm thanh của câu
26
Chương 6:
THIẾT KẾ GIAO DIỆN ỨNG DỤNG 6.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 Video Hiển thị thông tin video hội thoại
5 Học từ vựng Hiển thị danh sách các flashcard giúp cho người dùng học từ vựng mới
6 Ôn tập từ vựng Ôn tập các từ vựng đã học theo dạng câu hỏi trắc nghiệm 7 Luyện phát âm Người dùng luyện phát âm theo mẫu câu cho sẵn và kết quả
so sánh cho người dùng
27
6.2 Mô tả chi tiết mỗi màn hình
6.2.1 Đăng nhập
Hình 6.1 Màn hình đăng nhập
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Kiểm tra email đăng nhập Kiểm tra email đăng nhập Người dùng bấm vào nút “Sign in”
Kiểm tra chuỗi rỗng và email có khả dụng hay không. 2 Kiểm tra mật khẩu Kiểm tra mật khẩu Người dùng bấm vào nút “Sign in”
Kiểm tra chuỗi rỗng và mật khẩu có khả dụng hay không.
28 3 Xác nhận đăng nhập Xác nhận đăng nhập Người dùng bấm vào nút “Sign in”
4 Tạo tài khoản Chuyển sang
màn hình tạo tại khoản
Khi người dùng click vào nút.
Bảng 6.2 Bảng mô tả các thao tác trong màn hình đăng nhập 6.2.2 Đăng ký
29
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 dùng bấm vào “Sign up”
Kiểm tra format email và chuỗi rỗng, nếu không thỏa sẽ báo lỗi
2 Kiểm tra mật khẩu Kiểm tra mật khẩu Khi người dùng bấm vào “Sign up”
Kiểm tra độ mạnh mật khẩu và chuỗi rỗng, nếu không thỏa sẽ báo lỗi 3 Kiểm tra xác nhận mật khẩu Kiểm tra xác nhận mật khẩu Khi người dùng bấm vào “Sign up”
Kiểm tra xác nhận mật khẩu phải trùng với mật khẩu đăng ký
4 Đăng ký Đăng ký tài
khoản cho người dùng
Khi người dùng bấm vào “Sign up”
Xử lý gửi email verification cho người dùng và lưu thông tin tài khoản vào database.
30
6.2.3 Trang chủ
Hình 6.3 Màn hình trang chủ
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Hiển thị các từ
mới lưu
Hiển thị các từ mới lưu
Người dùng lưu từ mới
2 Hiển thị các
chủ video gợi ý cho từng ngày
Hiển thị các chủ video gợi ý cho từng ngày
Người dùng đăng nhập vào ứng dụng
31
6.2.4 Video
Hình 6.4 Màn hình học qua video
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Hiển thị video
cho người dùng
Hiển thị video cho người dùng
Người dùng đã làm bài kiểm tra đầu vào và đủ trình độ vào xem video
2 Hiển thị mô tả
video cho
người dùng
Hiển thị mô tả video cho người dùng
Người dùng đã làm bài kiểm tra đầu vào và đủ trình độ vào xem video
32 3 Hiển thị các từ vựng đáng chú ý cho người dùng Hiển thị các từ vựng đáng chú ý cho người dùng Người dùng đã làm bài kiểm tra đầu vào và đủ trình độ vào xem video
4 Hiển thị các mẫu câu đáng chú ý cho người dùng Hiển thị các mẫu câu đáng chú ý cho người dùng Người dùng đã làm bài kiểm tra đầu vào và đủ trình độ vào xem video
Bảng 6.5 Bảng mô tả các thao tác trong màn hình học qua video 6.2.5 Thông tin cá nhân
33
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Cập nhật Cập nhật thông
tin tài khoản
Khi người dùng nhấn vào nút “Save Profile”
Khi đó thông tin mới mà người dùng nhập vào sẽ được cập nhật trên database
2 Đăng
xuất
Đăng xuất khỏi ứng dụng
Khi người dùng nhấn vào nút “Sign out”
3 Hiển thị Hiển thị thông
tin tài khoản
Người dùng chuyển sang tab “Profile”
Bảng 6.6 Bảng mô tả các thao tên trên màn hình thông tin cá nhân 6.2.6 Học từ vựng
34
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Xem nội dung Xem các nội dung khác của từ vựng Khi người dùng nhấn vào thẻ từ vựng đó (hoặc thẻ flashcard)
Khi đó thông tin khác của từ vựng như nghĩa tiếng Anh, tiếng Việt, ví dụ minh họa sẽ xuất hiện
2 Học từ vựng qua flashcard Học từ mới qua flashcard như thẻ thật Khi người dùng nhấn vào nút "Learn Vocabulary" Màn hình gồm các flashcard từ vựng sẽ xuất hiện 3 Học thuộc từ vựng Chuyển từ vựng mới sang đã học Người dùng nhấn vào nút "Remember this word" Khi đó, từ vựng sẽ được chuyển sang mục đã học 4 Bỏ lưu từ vựng Xóa từ vựng ra khỏi danh sách từ chưa học Người dùng nhấn vào biểu tượng lá cờ
Từ vựng sẽ được xóa khỏi danh sách
35
6.2.7 Ôn tập từ vựng
Hình 6.7 Màn hình ôn tập từ vựng
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Xem nội dung Xem các nội dung khác của từ vựng Khi người dùng nhấn vào thẻ từ vựng đó
Khi đó thông tin khác của từ vựng như nghĩa tiếng Anh, tiếng Việt, ví dụ minh họa sẽ xuất hiện
2 Ôn tập từ vựng Luyện tập lại những từ đã học Người dùng nhấn vào nút "Review"
Màn hình gồm các câu hỏi ôn tập từ vựng gồm có 3 đáp án xuất hiện
36 3 Bỏ lưu từ vựng Xóa từ vựng ra khỏi danh sách từ chưa học Người dùng nhấn vào biểu tượng lá cờ
Từ vựng sẽ được xóa khỏi danh sách
Bảng 6.8 Bảng mô tả các thao tác trên màn hình ôn tập từ vựng 6.2.8 Luyện phát âm
37
STT Tên xử lí Ý nghĩa Điều kiện gọi Ghi chú
1 Lưu lại
giọng đọc
Lưu lại giọng đọc của người dùng
Khi người dùng nhấn vào biểu tượng micro
Sau khi nhấn, người dùng sẽ nói mẫu câu và hệ thống sẽ ghi lại 2 So sánh và đưa ra kết quả So sánh giọng đọc của người dùng với mẫu câu
Sau khi người dùng đã nói xong và nhấn lại biểu tượng micro
Hệ thống sẽ phân tích giọng nói của người dùng và mẫu câu, sau đó đưa ra kết quả trên màn hình
38
Chương 7: KẾT LUẬN
7.1 Môi trường phát triển và môi trường triển khai
7.1.1 Môi trường phát triển ứng dụng
● Hệ điều hành: Microsoft Windows, macOS
● Hệ quản trị CSDL: Cloud Firestore Firebase
● Công cụ xây dựng ứng dụng: Visual Studio Code
● Các thư viện đã sử dụng: Redux, React Native, Expo
7.1.2 Môi trường triển khai ứng dụng
● Hệ điều hành: Android, iOS
● Cài đặt Android Studio để chạy máy ảo Android, XCode để chạy máy ảo iOS
7.2 Ưu điểm
• Xây dựng được ứng dụng hỗ trợ học tiếng Anh giao tiếp với các chức năng cơ bản như: học từ vựng, ngữ pháp, các mẫu câu giao tiếp hằng ngày, trong công việc, luyện nghe các đoạn hội thoại, luyện phát âm với mẫu câu cho trước, giúp ôn luyện từ vựng, quản lý thông tin người dùng
• Ứng dụng hoạt động trên các nền tảng di động phổ biến hiện nay • Giao diện dễ sử dụng cho những người mới bắt đầu sử dụng
7.3 Nhược điểm
• Chưa hướng đến nhiều đối tượng sử dụng như trẻ em, học sinh • Ứng dụng chỉ tập trung vào 2 kĩ năng nghe và nói trong giao tiếp
7.4 Hướng phát triển
Ứng dụng hỗ trợ học tiếng anh giao tiếp cho người đi làm sẽ dự kiến mở rộng đối tượng người dùng. Không chỉ hướng đến những người đi làm, mà ứng dụng sẽ được hướng đến trẻ em hay học sinh ở mọi lứa tuổi có nhu cầu học tiếng Anh.
Hiện tại, ứng dụng chỉ hỗ trợ 2 kĩ năng nghe và nói cho người dùng vì đây là ứng dụng thực hành giao tiếp. Trong tương lai, nhóm em sẽ hỗ trợ cho người dùng 2 kĩ năng còn lại là nói và viết giúp cho người dùng phát triển toàn bộ các kĩ năng trong tiếng Anh.
39
7.5 Bảng phân công công việc
STT Tên công việc
Thành viên Trần Thanh
Hiền
Lê Khải Hoàn
1 Xác định yêu cầu bài toán x x