lOMoARcPSD| 47206417
lOMoARcPSD| 47206417
lOMoARcPSD| 47206417
ii
TRÍCH YẾU
Trường Đại học Hoa Sen luôn hoạt động theo tôn chỉ “Thực học, thực làm”, chú
trọng việc kết hợp giữa thuyết thực hành thực tế. Nhà trường không ngừng tạo điều
kiện để sinh viên nắm vững kiến thức vừa có cơ hội áp dụng kiến thức vào thực tiễn. Đặc
biệt, các ngành thuộc khoa Công nghệ Thông tin đòi hỏi sinh viên cần vừa học vừa m để
thành thạo kỹ năng lập trình. Vì vậy, môn học Đồ án Thực tập Lập trình A đóng vai trò rất
quan trọng. Trong quá trình học, việc thực hiện đồ án của môn này đã mang lại cho chúng
tôi nhiều kiến thức hữu ích cải thiện đáng kể kỹ năng lập trình, đồng thời giúp định
hướng ràng hơn cho tương lai.Với 14 tuần thực hiện sản phẩm mang tên: “Phần mềm
học tiếng Anh trên điện thoại thông minh nền tảng Android”. Trường Đại học Hoa Sen
hướng tới mục tiêu đào tạo theo chuẩn quốc tế, với slogan m nay “Beyond
Boundaries”, luôn nỗ lực cải tiến quốc tế hóa chương trình giảng dạy. Đây cũng chính
động lực để nhóm phát triển một ứng dụng giúp người dùng thuận tiện hơn trong việc
học tiếng Anh. Đồng thời, nhóm muốn thử thách bản thân ở một lĩnh vực mới là phát triển
ứng dụng di động, vì đây là lần đầu tiên các thành viên được tiếp cận và làm việc với lĩnh
vực này. Với mỗi thành viên trong nhóm, quãng thời gian 14 tuần thực hiện môn học này
là một trải nghiệm quý báu, không chỉ giúp chúng tôi rèn luyện mà n trang bị hành trang
cần thiết về sau.
lOMoARcPSD| 47206417
iii
LỜI CẢM ƠN
Lời nói đầu, nhóm chúng tôi xin gửi lời cảm ơn chân thành đến thầy Phan Văn
Trung, người đã tận tình hỗ trợ và hướng dẫn chúng tôi trong suốt quá trình học tập và thực
hiện đồ án. Những lời chỉ dẫn quý báu, sự sửa lỗi tận tâm cùng những kiến thức sâu sắc
thầy chia sẻ không chỉ giúp chúng tôi phát triển về mặt kỹ thuật còn cải thiện kỹ
năng làm việc nhóm, quản lý thời gian, và phân chia công việc hợp lý giữa các thành viên.
Sự động viên định hướng từ thầy đã trở thành nguồn cảm hứng, giúp chúng tôi hoàn
thành dự án một cách nhanh chóng và hoàn thiện nhất. Thứ hai, nhóm cũng xin bày tỏ ng
cảm ơn sâu sắc đến từng thành viên trong nhóm. Sự nhiệt tình, nỗ lực hết mình, tinh
thần hỗ trợ lẫn nhau đã tạo nên một môi trường làm việc tích cực và đầy động lực. Những
ý kiến đóng góp cùng sự chia sẻ kinh nghiệm của từng thành viên không chỉ giúp dự án
phát triển còn hội để mỗi chúng tôi học hỏi thêm nhiều kiến thức mới qua từng
lần trao đổi. Một lần nữa, nhóm chúng tôi xin chân thành cảm ơn thầy tất cả c thành
viên đã đồng hành, hỗ trợ để hoàn thành dự án English Quiz App trong khuôn khổ môn Đồ
án Thực tập Lập trình A.
Xin trân trọng cảm ơn!
lOMoARcPSD| 47206417
iv
NHẬN XÉT CỦA GIẢNG VIÊN
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
Ngày… Tháng… Năm….
lOMoARcPSD| 47206417
v
lOMoARcPSD| 47206417
vi
DANH MỤC BẢNG
Bảng 1: Đăng Nhập.....................................................................................................14
Bảng 2: Đăng Xuất......................................................................................................15
Bảng 3: Xem Quizz.....................................................................................................15
Bảng 4: Thực hiện Quizz.............................................................................................16
Bảng 5: Xem Thống Kê...............................................................................................17
Bảng 6: Đăng nhập......................................................................................................18
Bảng 7: Đăng xuất.......................................................................................................18
Bảng 8: Thêm câu hỏi..................................................................................................19
Bảng 9: Cập nhật câu hỏi.............................................................................................19
Bảng 10: Xóa topic......................................................................................................20
Bảng 11: Kiểm thử đăng nhập.....................................................................................32
Bảng 12:Kiểm thử xem trang hướng dẫn chơi.............................................................32
Bảng 13:Kiểm thử xem lịch sử bài kiểm tra và đáp án................................................32
Bảng 14: Kiểm thử Xem Quizz...................................................................................33
Bảng 15:Kiểm thử thực hiện quizz..............................................................................33
lOMoARcPSD| 47206417
7
1. GIỚI THIỆU CÔNG NGHỆ
1.1. Android studio
Android Studio môi trường phát triển tích hợp (IDE) chính thức để xây dựng
ứng dụng Android, được phát triển dựa trên nền tảng trình soạn thảo mạnh mẽ của
IntelliJ IDEA. Công cụ này cung cấp nhiều tính năng vượt trội nhằm tối ưu hóa năng suất
của các nhà phát triển khi xây dựng ứng dụng Android (Android Studio, 2024). Một số tính
năng nổi bật bao gồm:
Hệ thống xây dựng linh hoạt dựa trên Gradle.
Trình mô phỏng nhanh và nhiều tính năng.
Môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android.
1.2. Git
Git một hệ thống kiểm soát phiên bản phbiến, được tạo ra bởi Linus Torvalds
vào năm 2005 sau đó được duy trì bởi Junio Hamano. ng cụ này được sử dụng để
theo dõi các thay đổi trong mã nguồn và ghi nhận ai đã thực hiện các thay đổi đó. Git hoạt
động như một "người quản lý dự án", hỗ trợ quản lý thông qua Repositories (kho lưu trữ),
nơi lưu trữ toàn bộ mã nguồn và lịch sử thay đổi.
Với Git, bạn có thể:
Clone: Sao chép một dự án từ repository về máy tính để làm việc trên một
bản sao cục bộ.
Staging và Commit: Theo dõi và lưu lại các thay đổi đã hoàn thành, đảm bảo
mã nguồn được tổ chức và kiểm soát tốt.
Hình 1:
Giao diện của Android Studio
lOMoARcPSD| 47206417
8
Branch và Merge:m việc trên các nhánh khác nhau của dự án và kết hợp
chúng lại
khi cần.
Ngoài ra, Git còn cung cấp hai thao tác quan trọng:
Pull: Lấy về phiên bản mới nhất của dự án từ repository để đồng bộ với bản
sao cục bộ.
Push: Đẩy các thay đổi từ bản sao cục bộ lên repository chung, giúp chia sẻ
công việc với các thành viên khác trong nhóm. (TopDev, n.d.)
1.3. Git Hub
GitHub khác với Git ở chỗ nó cung cấp các công cụ hỗ trợ sử dụng Git hiệu quả hơn
và hoạt động như một nền tảng lưu trữ mã nguồn trực tuyến. Đây là kho lưu trữ mã nguồn
lớn nhất thế giới, cho phép các nhà phát triển chia sẻ, quản cộng tác trên các dự án
một cách dễ dàng. GitHub đã được Microsoft mua lại vào năm 2018.(TopDev, n.d.).
1.4. Firebase
Firebase là một nền tảng phát triển ứng dụng được hỗ trợ bởi Google, giúp các nhà
phát triển dễ dàng xây dựng và mở rộng ứng dụng hoặc trò chơi mà người dùng yêu thích.
Đây giải pháp đáng tin cậy, được hàng triệu doanh nghiệp áp dụng. (Phạm Xuân Nam,
2021)
Hình 2: Git
lOMoARcPSD| 47206417
9
Hình 4: Firebase
1.5. Ngôn ngữ Java
Java là một ngôn ngữ lập trình phổ biến, được sử dụng rộng rãi trong việc phát triển
các ứng dụng web. Với hơn hai thập kỷ đồng hành cùng các nhà phát triển, Java đã trở
thành lựa chọn ưu tiên nhờ tính linh hoạt hiệu quả. Hiện nay, hàng triệu ứng dụng
Java đang hoạt động trên toàn cầu.
một ngôn ngữ đa nền tảng, hướng đối tượng, và tập trung vào mạng, Java không chỉ một
ngôn ngữ mà còn có thể được coi như một nền tảng phát triển. Java nổi bật bởi tốc độ, tính
bảo mật, độ tin cậy, phù hợp để viết cho mọi thứ, từ ứng dụng di động đến các hệ
thống phức tạp.(Glints, 2022)
Hình 5: Ngôn Ngữ Java
1.6. Figma
Figma là một công cụ thiết kế quen thuộc trong lĩnh vực thiết kế giao diện. Khác
với các ứng dụng độc lập như Sketch hay Adobe Illustrator, Figma hoạt động hoàn toàn
trên trình duyệt web, cho phép sử dụng linh hoạt trên nhiều hệ điều hành, bao gồm
macOS, Windows, Linux, và thậm chí cả Chromebook. Đặc biệt, Figma còn nổi bật nhờ
việc cung cấp một phiên bản miễn phí, hỗ trợ người dùng tiếp cận và sử dụng.
Hình 6: Figma
2. ĐẶC TẢ YÊU CẦU VỀ ỨNG DỤNG
2.1. Giới thiệu về đề tài
lOMoARcPSD| 47206417
10
Trong thời đại phát triển không ngừng, điện thoại đã trở thành một vật bất ly thân,
đặc biệt đối với giới trẻ. Các ứng dụng trên điện thoại ngày càng phát triển theo hướng tích
cực, với sự xuất hiện của nhiều phần mềm hỗ trợ học tập giải trí, giúp giảm bớt căng
thẳng sau những giờ làm việc hay học tập áp lực. Nhận thấy tiếng Anh kỹ ng quan
trọng cần thiết trong cuộc sống hiện nay, nhóm chúng tôi đã quyết định phát triển một
ứng dụng học tiếng Anh dành cho mọi người. Điều này đã thúc đẩy khả năng tự học, tự
giải quyết vấn đề giúp chúng tôi hoàn thiện sản phẩm bằng chính năng lực của
mình.Nhóm đã đặt tên ứng dụng là English Quizz App, với nội dung đa dạng bao gồm các
chủ đề bộ câu hỏi được phân chia theo mức độ: dễ, trung bình khó, phù hợp với
người dùng mới. Để khuyến khích người dùng chăm chỉ tạo cảm giác vừa học vừa chơi,
ứng dụng chức năng Detail Test, cho phép người dùng xem lại các bài đã làm xác
định những câu trả lời sai để rút kinh nghiệm. Ngoài ra, nhóm cũng xây dựng chức năng
Hướng dẫn chơi ngay trên trang chính để người dùng nắm rõ cách dùng ứng dụng.
2.2. Mục đích
Mục tiêu chính của dự án tạo ra một ứng dụng học tiếng Anh trực tuyến, thân
thiện với người dùng, đáp ứng nhu cầu học tập ngày càng cao của cộng đồng. English
Quizz App không chỉ là một công cụ học tập còn một người bạn đồng hành tin cậy,
giúp người dùng tự tin giao tiếp bằng tiếng Anh trong cuộc sống hàng ngày.
2.3. Phạm vi
Ứng dụng English Quizz App hướng đến đối tượng người dùng đa dạng, từ người
mới bắt đầu đến những người muốn nâng cao trình độ. Với kho u hỏi phong phú, được
phân cấp ràng theo trình độ, ứng dụng cung cấp một lộ trình học tập khoa học, giúp
người dùng đạt được mục tiêu một cách hiệu quả.
2.4. Yêu cầu chức năng
Đối với user:
- Đăng nhập/Đăng ký: Người dùng sẽ sử dụng tài khoản gmail để đăng
nhập, nếu chưa có tàikhoản thì người dùng sẽ bấm đăng ký
- Chọn các topic English làm để rèn luyện tiếng Anh: Sau khi đăng nhập
thành công sẽ chuyểntới trang chính, đây hiển thị các topic cho người dùng
lựa chọn
- Xem lịch sử các bài đã làm: Người dùng bấm vào icon user góc phải
để xem lại điểm số, câuđúng, câu sai của các quiz đã làm
Đối với Admin:
- Đăng nhập: Admin sẽ sử dụng tài khoản được cấp role:Admin để
đăng nhập
- Thêm chủ đề mới, câu hỏi mới: Admin sẽ tạo chủ đề mới và câu hỏi
lOMoARcPSD| 47206417
11
- Cập nhật chủ đề hoặc câu hỏi mới: Admin sẽ lựa chọn 1 chủ đề hoặc
câu hỏi trong chủ để cậpnhật
- Xóa chủ đề: Admin sẽ lựa chọn chủ đề muốn xóa
2.5. Yêu cầu phi chức năng
Độ tin cậy:
Ứng dụng sử dụng Firebase để lưu trữ dữ liệu, do đó yêu cầu thiết bị
phải kết nối mạng để hoạt động. Trong trường hợp mạng yếu, ứng dụng
có thể gặp tình trạng lag hoặc không thể truy xuất dữ liệu.Hiệu năng:
Ứng dụng được xây dựng theo hướng xửbất đồng bộ, tối ưu thời
gian chờ để tải dữ liệu. Nhờ đó, quá trình tải dữ liệu diễn ra một cách mượt
ổn định, đảm bảo trải nghiệm người dùng tốt nhất thể.Tính khả
dụng:
Nhóm tập trung vào việc thiết kế giao diện dễ sử dụng hiệu quả.
Với tông màu chủ đạo là cam cùng font chữ lớn, rõ ràng, ứng dụng phù hợp
cho cả người lớn tuổi và trẻ em, mang lại trải nghiệm thân thiện cho mọi đối
tượng người dùng.
lOMoARcPSD| 47206417
12
3. PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG
3.1. Use case diagram
3.1.1. Mô tả các actor
Trong ứng dụng, chỉ một tài khoản duy nhất có thể được sử dụng tại một thời điểm
và tài khoản đó được gọi là User.
Bảng 1: Đăng Nhập
Use case
Nội dung
Mô tả
Đăng nhập tài khoản
Actor
Người dùng
Use case liên quan
Đăng nhập
Điều kiện
Nhấn nút đăng nhập
Điều kiện trước
Không có
Điều kiện sau
Không có
Luồng sự kiện chính
1. Nhấn nút đăng nhập.
Hình 7: Use case User
lOMoARcPSD| 47206417
13
2. Đăng nhập thành công.
3. Chuyển sang trang chủ.
Luồng sự kiện phụ
Thông báo đăng nhập thành công
Bảng 2: Đăng Xuất
Use case
Nội dung
Mô tả
Đăng xuất tài khoản
Actor
Người dùng
Use case liên quan
Đăng nhập
Điều kiện
Nhấn vào biểu tượng logout bên tay phải
Điều kiện trước
Không có
Điều kiện sau
Không có
Luồng sự kiện chính
1. Nhấn vào biểu tượng logout bên tay
phải
2. Đăng xuất thành công.
3. Chuyển sang trang đăng nhập.
Luồng sự kiện phụ
Thông báo đăng xuất thành công.
Use case
Nội dung
Mô tả
Chọn chủ đề để học
Actor
Người dùng
Use case liên quan
Đăng nhập
Điều kiện
Bấm vào chủ đề
Điều kiện trước
Đăng nhập thành công vào ứng dụng.
Điều kiện sau
Không có.
lOMoARcPSD| 47206417
14
Bảng 3: Xem Quizz
Luồng sự kiện
chính
1. Vào trang chủ.
2. Người dùng nhấn chọn chủ đề
Luồng sự kiện phụ
Không.
Bảng 4: Thực hiện Quizz
Use case
Nội dung
Mô tả
Bắt đầu chơi với loại câu hỏi và chế
độ chơi mà người dùng đã chọn
Actor
Người dùng
Use case liên quan
Đăng nhập, xem quizz
Điều kiện
Chọn chủ đề
Điều kiện trước
Đăng nhập thành công.
Điều kiện sau
Không có
Luồng sự kiện chính
1. Người dùng chọn chủ đề.
2. Bắt đầu chơi
3. Người dùng sẽ chọn 1 trong
4 đáp án từ câu đầu tiên tới
câu cuối cùng
4. Sau khi hoàn thành toàn
bộcâu hỏi sẽ hiển thị kết quả
pass hoặc fail
Luồng sự kiện phụ
Không.
lOMoARcPSD| 47206417
15
Bảng 5: Xem Thống
Use case
Nội dung
Mô tả
Xem thống kê câu hỏi đúng, sai
Actor
Người dùng
Use case liên quan
Đăng nhập, xem quizz và thực hiện quizz
Điều kiện
Vào trang chủ và bấm vào biểu tượng avatar
góc trái
Điều kiện trước
Đăng nhập thành công.
Điều kiện sau
Không có
Luồng sự kiện
chính
1. Người dùng vào trang chủ trò chơi.
2. Nhấn vào biểu tượng avatar góc trái
3. Hiển thị ra lịch sử các bài đã làm
4. Người dùng chọn bài muốn xem câu hỏi
đúngsai và nhấn vào
Luồng sự kiện phụ
Không.
lOMoARcPSD| 47206417
16
Bảng 6: Đăng nhập
Use case
Nội dung
Mô tả
Đăng nhập tài khoản
Actor
Admin
Use case liên quan
Đăng nhập
Điều kiện
Nhấn nút đăng nhập
Điều kiện trước
Không có
Điều kiện sau
Không có
Luồng sự kiện chính
1. Nhấn nút đăng nhập.
2. Đăng nhập thành công.
3. Chuyển sang giao diện Admin
Luồng sự kiện phụ
Thông báo đăng nhập thành công
Admin có các use case như sau
H
ì
n
h
8:
Use case Admin
lOMoARcPSD| 47206417
17
Bảng 7: Đăng xuất
Use case
Nội dung
Mô tả
Đăng xuất tài khoản
Actor
Admin
Use case liên quan
Đăng nhập
Điều kiện
Nhấn vào biểu tượng logout bên tay phải
Điều kiện trước
Không có
Điều kiện sau
Không có
1. Nhấn vào biểu tượng logout bên tảy
phải 2. Đăng xuất thành công.
Luồng sự kiện chính
3. Chuyển sang trang đăng nhập.
Luồng sự kiện phụ
Thông báo đăng xuất thành công.
Bảng 8: Thêm câu hỏi
Use case
Nội dung
Mô tả
Thêm bộ câu hỏi mới
Actor
Admin
Use case liên quan
Đăng nhập
Điều kiện
Nhấn vào mục Add New Question
Điều kiện trước
Phải đăng nhập bằng tài khoản admin
Điều kiện sau
Không có
lOMoARcPSD| 47206417
18
Luồng sự kiện chính
1. Nhấn vào mục Add New Question
2. Nhập title, subtitle, time cho chủ đề
mới
3. Bấm Add new topic
4. Nhập dữ liệu câu hỏi muốn thêm:
question,option1, option2, option3,
correct answer
5. Bấm Add New Question
Luồng sự kiện phụ
3.Thêm topic thành công
4.Thêm câu hỏi thành công
Bảng 9: Cập nhật câu hỏi
Use case
Nội dung
Mô tả
Cập nhật câu hỏi hoặc cập nhật topic
Actor
Admin
Use case liên quan
Đăng nhập
Điều kiện
Nhấn vào mục Update New Question
Điều kiện trước
Phải đăng nhập bằng tài khoản admin
Điều kiện sau
Không có
Luồng sự kiện chính
1. Nhấn vào mục Update New Question
2. Nếu admin muốn update topic thì nhập
lạiQuizTitle, Subtitle, Time.
3. Bấm Update Topic
4. Nếu admin muốn update question thì
chọncâu hỏi muốn update sau đó nhập
lại option1, option2, option3, option4,
chọn đáp án đúng .
5. Bấm Update Question

Preview text:

lOMoAR cPSD| 47206417 lOMoAR cPSD| 47206417 lOMoAR cPSD| 47206417 TRÍCH YẾU
Trường Đại học Hoa Sen luôn hoạt động theo tôn chỉ “Thực học, thực làm”, chú
trọng việc kết hợp giữa lý thuyết và thực hành thực tế. Nhà trường không ngừng tạo điều
kiện để sinh viên nắm vững kiến thức vừa có cơ hội áp dụng kiến thức vào thực tiễn. Đặc
biệt, các ngành thuộc khoa Công nghệ Thông tin đòi hỏi sinh viên cần vừa học vừa làm để
thành thạo kỹ năng lập trình. Vì vậy, môn học Đồ án Thực tập Lập trình A đóng vai trò rất
quan trọng. Trong quá trình học, việc thực hiện đồ án của môn này đã mang lại cho chúng
tôi nhiều kiến thức hữu ích và cải thiện đáng kể kỹ năng lập trình, đồng thời giúp định
hướng rõ ràng hơn cho tương lai.Với 14 tuần thực hiện sản phẩm mang tên: “Phần mềm
học tiếng Anh trên điện thoại thông minh nền tảng Android”. Trường Đại học Hoa Sen
hướng tới mục tiêu đào tạo theo chuẩn quốc tế, với slogan năm nay là “Beyond
Boundaries”, luôn nỗ lực cải tiến và quốc tế hóa chương trình giảng dạy. Đây cũng chính
là động lực để nhóm phát triển một ứng dụng giúp người dùng thuận tiện hơn trong việc
học tiếng Anh. Đồng thời, nhóm muốn thử thách bản thân ở một lĩnh vực mới là phát triển
ứng dụng di động, vì đây là lần đầu tiên các thành viên được tiếp cận và làm việc với lĩnh
vực này. Với mỗi thành viên trong nhóm, quãng thời gian 14 tuần thực hiện môn học này
là một trải nghiệm quý báu, không chỉ giúp chúng tôi rèn luyện mà còn trang bị hành trang cần thiết về sau. ii lOMoAR cPSD| 47206417 LỜI CẢM ƠN
“Lời nói đầu, nhóm chúng tôi xin gửi lời cảm ơn chân thành đến thầy Phan Văn
Trung, người đã tận tình hỗ trợ và hướng dẫn chúng tôi trong suốt quá trình học tập và thực
hiện đồ án. Những lời chỉ dẫn quý báu, sự sửa lỗi tận tâm cùng những kiến thức sâu sắc
mà thầy chia sẻ không chỉ giúp chúng tôi phát triển về mặt kỹ thuật mà còn cải thiện kỹ
năng làm việc nhóm, quản lý thời gian, và phân chia công việc hợp lý giữa các thành viên.
Sự động viên và định hướng từ thầy đã trở thành nguồn cảm hứng, giúp chúng tôi hoàn
thành dự án một cách nhanh chóng và hoàn thiện nhất. Thứ hai, nhóm cũng xin bày tỏ lòng
cảm ơn sâu sắc đến từng thành viên trong nhóm. Sự nhiệt tình, nỗ lực hết mình, và tinh
thần hỗ trợ lẫn nhau đã tạo nên một môi trường làm việc tích cực và đầy động lực. Những
ý kiến đóng góp cùng sự chia sẻ kinh nghiệm của từng thành viên không chỉ giúp dự án
phát triển mà còn là cơ hội để mỗi chúng tôi học hỏi thêm nhiều kiến thức mới qua từng
lần trao đổi. Một lần nữa, nhóm chúng tôi xin chân thành cảm ơn thầy và tất cả các thành
viên đã đồng hành, hỗ trợ để hoàn thành dự án English Quiz App trong khuôn khổ môn Đồ
án Thực tập Lập trình A.”
“Xin trân trọng cảm ơn!” iii lOMoAR cPSD| 47206417
NHẬN XÉT CỦA GIẢNG VIÊN
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
.........................................................................................................................................
......................................................................................................................................... Ngày… Tháng… Năm…. iv lOMoAR cPSD| 47206417 v lOMoAR cPSD| 47206417 DANH MỤC BẢNG
Bảng 1: Đăng Nhập.....................................................................................................14
Bảng 2: Đăng Xuất......................................................................................................15
Bảng 3: Xem Quizz.....................................................................................................15
Bảng 4: Thực hiện Quizz.............................................................................................16
Bảng 5: Xem Thống Kê...............................................................................................17
Bảng 6: Đăng nhập......................................................................................................18
Bảng 7: Đăng xuất.......................................................................................................18
Bảng 8: Thêm câu hỏi..................................................................................................19
Bảng 9: Cập nhật câu hỏi.............................................................................................19
Bảng 10: Xóa topic......................................................................................................20
Bảng 11: Kiểm thử đăng nhập.....................................................................................32
Bảng 12:Kiểm thử xem trang hướng dẫn chơi.............................................................32
Bảng 13:Kiểm thử xem lịch sử bài kiểm tra và đáp án................................................32
Bảng 14: Kiểm thử Xem Quizz...................................................................................33
Bảng 15:Kiểm thử thực hiện quizz..............................................................................33 vi lOMoAR cPSD| 47206417
1. GIỚI THIỆU CÔNG NGHỆ 1.1. Android studio
“Android Studio là môi trường phát triển tích hợp (IDE) chính thức để xây dựng
ứng dụng Android, được phát triển dựa trên nền tảng trình soạn thảo mã mạnh mẽ của
IntelliJ IDEA. Công cụ này cung cấp nhiều tính năng vượt trội nhằm tối ưu hóa năng suất
của các nhà phát triển khi xây dựng ứng dụng Android (Android Studio, 2024). Một số tính
năng nổi bật bao gồm”:
• “Hệ thống xây dựng linh hoạt dựa trên Gradle.”
• “Trình mô phỏng nhanh và nhiều tính năng.”
• “Môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android.”
Hình 1: Giao diện của Android Studio 1.2. “Git”
“Git là một hệ thống kiểm soát phiên bản phổ biến”, được tạo ra bởi “Linus Torvalds
vào năm 2005” và sau đó được duy trì bởi Junio Hamano. Công cụ này được sử dụng để
theo dõi các thay đổi trong mã nguồn và ghi nhận ai đã thực hiện các thay đổi đó. Git hoạt
động như một "người quản lý dự án", hỗ trợ quản lý thông qua Repositories (kho lưu trữ),
nơi lưu trữ toàn bộ mã nguồn và lịch sử thay đổi. Với Git, bạn có thể:
• “Clone: Sao chép một dự án từ repository về máy tính để làm việc trên một bản sao cục bộ.”
• Staging và Commit: Theo dõi và lưu lại các thay đổi đã hoàn thành, đảm bảo
mã nguồn được tổ chức và kiểm soát tốt. 7 lOMoAR cPSD| 47206417
• Branch và Merge: Làm việc trên các nhánh khác nhau của dự án và kết hợp chúng lại khi cần.
Ngoài ra, Git còn cung cấp hai thao tác quan trọng:
• Pull: Lấy về phiên bản mới nhất của dự án từ repository để đồng bộ với bản sao cục bộ.
• Push: Đẩy các thay đổi từ bản sao cục bộ lên repository chung, giúp chia sẻ
công việc với các thành viên khác trong nhóm. (TopDev, n.d.) Hình 2: Git 1.3. Git Hub
GitHub khác với Git ở chỗ nó cung cấp các công cụ hỗ trợ sử dụng Git hiệu quả hơn
và hoạt động như một nền tảng lưu trữ mã nguồn trực tuyến. Đây là kho lưu trữ mã nguồn
lớn nhất thế giới, cho phép các nhà phát triển chia sẻ, quản lý và cộng tác trên các dự án
một cách dễ dàng. GitHub đã được Microsoft mua lại vào năm 2018.(TopDev, n.d.). Hình 3: Git Hub 1.4. Firebase
Firebase là một nền tảng phát triển ứng dụng được hỗ trợ bởi Google, giúp các nhà
phát triển dễ dàng xây dựng và mở rộng ứng dụng hoặc trò chơi mà người dùng yêu thích.
Đây là giải pháp đáng tin cậy, được hàng triệu doanh nghiệp áp dụng. (Phạm Xuân Nam, 2021) 8 lOMoAR cPSD| 47206417 Hình 4: Firebase 1.5. Ngôn ngữ Java
Java là một ngôn ngữ lập trình phổ biến, được sử dụng rộng rãi trong việc phát triển
các ứng dụng web. Với hơn hai thập kỷ đồng hành cùng các nhà phát triển, Java đã trở
thành lựa chọn ưu tiên nhờ tính linh hoạt và hiệu quả. Hiện nay, có hàng triệu ứng dụng
Java đang hoạt động trên toàn cầu. Là
một ngôn ngữ đa nền tảng, hướng đối tượng, và tập trung vào mạng, Java không chỉ là một
ngôn ngữ mà còn có thể được coi như một nền tảng phát triển. Java nổi bật bởi tốc độ, tính
bảo mật, và độ tin cậy, phù hợp để viết mã cho mọi thứ, từ ứng dụng di động đến các hệ
thống phức tạp.(Glints, 2022) Hình 5: Ngôn Ngữ Java 1.6. Figma
Figma là một công cụ thiết kế quen thuộc trong lĩnh vực thiết kế giao diện. Khác
với các ứng dụng độc lập như Sketch hay Adobe Illustrator, Figma hoạt động hoàn toàn
trên trình duyệt web, cho phép sử dụng linh hoạt trên nhiều hệ điều hành, bao gồm
macOS, Windows, Linux, và thậm chí cả Chromebook. Đặc biệt, Figma còn nổi bật nhờ
việc cung cấp một phiên bản miễn phí, hỗ trợ người dùng tiếp cận và sử dụng. Hình 6: Figma
2. ĐẶC TẢ YÊU CẦU VỀ ỨNG DỤNG
2.1. Giới thiệu về đề tài 9 lOMoAR cPSD| 47206417
“Trong thời đại phát triển không ngừng, điện thoại đã trở thành một vật bất ly thân,
đặc biệt đối với giới trẻ. Các ứng dụng trên điện thoại ngày càng phát triển theo hướng tích
cực, với sự xuất hiện của nhiều phần mềm hỗ trợ học tập và giải trí, giúp giảm bớt căng
thẳng sau những giờ làm việc hay học tập áp lực. Nhận thấy tiếng Anh là kỹ năng quan
trọng và cần thiết trong cuộc sống hiện nay, nhóm chúng tôi đã quyết định phát triển một
ứng dụng học tiếng Anh dành cho mọi người. Điều này đã thúc đẩy khả năng tự học, tự
giải quyết vấn đề và giúp chúng tôi hoàn thiện sản phẩm bằng chính năng lực của
mình.Nhóm đã đặt tên ứng dụng là English Quizz App, với nội dung đa dạng bao gồm các
chủ đề và bộ câu hỏi được phân chia theo mức độ: dễ, trung bình và khó, phù hợp với
người dùng mới. Để khuyến khích người dùng chăm chỉ và tạo cảm giác vừa học vừa chơi,
ứng dụng có chức năng Detail Test, cho phép người dùng xem lại các bài đã làm và xác
định những câu trả lời sai để rút kinh nghiệm. Ngoài ra, nhóm cũng xây dựng chức năng
Hướng dẫn chơi ngay trên trang chính để người dùng nắm rõ cách dùng ứng dụng.” 2.2. Mục đích
Mục tiêu chính của dự án là tạo ra một ứng dụng học tiếng Anh trực tuyến, thân
thiện với người dùng, đáp ứng nhu cầu học tập ngày càng cao của cộng đồng. English
Quizz App không chỉ là một công cụ học tập mà còn là một người bạn đồng hành tin cậy,
giúp người dùng tự tin giao tiếp bằng tiếng Anh trong cuộc sống hàng ngày. 2.3. Phạm vi
Ứng dụng English Quizz App hướng đến đối tượng người dùng đa dạng, từ người
mới bắt đầu đến những người muốn nâng cao trình độ. Với kho câu hỏi phong phú, được
phân cấp rõ ràng theo trình độ, ứng dụng cung cấp một lộ trình học tập khoa học, giúp
người dùng đạt được mục tiêu một cách hiệu quả.
2.4. Yêu cầu chức năng Đối với user:
- Đăng nhập/Đăng ký: Người dùng sẽ sử dụng tài khoản gmail để đăng
nhập, nếu chưa có tàikhoản thì người dùng sẽ bấm đăng ký
- Chọn các topic English làm để rèn luyện tiếng Anh: Sau khi đăng nhập
thành công sẽ chuyểntới trang chính, ở đây hiển thị các topic cho người dùng lựa chọn
- Xem lịch sử các bài đã làm: Người dùng bấm vào icon user ở góc phải
để xem lại điểm số, câuđúng, câu sai của các quiz đã làm Đối với Admin:
- Đăng nhập: Admin sẽ sử dụng tài khoản được cấp có role:Admin để đăng nhập
- Thêm chủ đề mới, câu hỏi mới: Admin sẽ tạo chủ đề mới và câu hỏi 10 lOMoAR cPSD| 47206417
- Cập nhật chủ đề hoặc câu hỏi mới: Admin sẽ lựa chọn 1 chủ đề hoặc
câu hỏi trong chủ để cậpnhật
- Xóa chủ đề: Admin sẽ lựa chọn chủ đề muốn xóa
2.5. Yêu cầu phi chức năng Độ tin cậy:
• “Ứng dụng sử dụng Firebase để lưu trữ dữ liệu, do đó yêu cầu thiết bị
phải có kết nối mạng để hoạt động. Trong trường hợp mạng yếu, ứng dụng
có thể gặp tình trạng lag hoặc không thể truy xuất dữ liệu.” Hiệu năng:
• “Ứng dụng được xây dựng theo hướng xử lý bất đồng bộ, tối ưu thời
gian chờ để tải dữ liệu. Nhờ đó, quá trình tải dữ liệu diễn ra một cách mượt
mà và ổn định, đảm bảo trải nghiệm người dùng tốt nhất có thể.” Tính khả dụng:
• “Nhóm tập trung vào việc thiết kế giao diện dễ sử dụng và hiệu quả.
Với tông màu chủ đạo là cam cùng font chữ lớn, rõ ràng, ứng dụng phù hợp
cho cả người lớn tuổi và trẻ em, mang lại trải nghiệm thân thiện cho mọi đối tượng người dùng.” 11 lOMoAR cPSD| 47206417
3. PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG 3.1. Use case diagram 3.1.1. Mô tả các actor
Trong ứng dụng, chỉ một tài khoản duy nhất có thể được sử dụng tại một thời điểm
và tài khoản đó được gọi là User. Hình 7: Use case User Bảng 1: Đăng Nhập Use case Nội dung Mô tả Đăng nhập tài khoản Actor Người dùng Use case liên quan Đăng nhập Điều kiện Nhấn nút đăng nhập Điều kiện trước Không có Điều kiện sau Không có Luồng sự kiện chính 1. Nhấn nút đăng nhập. 12 lOMoAR cPSD| 47206417
2. Đăng nhập thành công. 3. Chuyển sang trang chủ. Luồng sự kiện phụ
Thông báo đăng nhập thành công Bảng 2: Đăng Xuất Use case Nội dung Mô tả Đăng xuất tài khoản Actor Người dùng Use case liên quan Đăng nhập Điều kiện
Nhấn vào biểu tượng logout bên tay phải Điều kiện trước Không có Điều kiện sau Không có
1. Nhấn vào biểu tượng logout bên tay phải
2. Đăng xuất thành công. Luồng sự kiện chính
3. Chuyển sang trang đăng nhập. Luồng sự kiện phụ
Thông báo đăng xuất thành công. Use case Nội dung Mô tả
Chọn chủ đề để học Actor Người dùng Use case liên quan Đăng nhập Điều kiện Bấm vào chủ đề Điều kiện trước
Đăng nhập thành công vào ứng dụng. Điều kiện sau Không có. 13 lOMoAR cPSD| 47206417 Bảng 3: Xem Quizz 1. Vào trang chủ.
2. Người dùng nhấn chọn chủ đề Luồng sự kiện chính Luồng sự kiện phụ Không. Bảng 4: Thực hiện Quizz Use case Nội dung Mô tả
Bắt đầu chơi với loại câu hỏi và chế
độ chơi mà người dùng đã chọn Actor Người dùng Use case liên quan Đăng nhập, xem quizz Điều kiện Chọn chủ đề Điều kiện trước Đăng nhập thành công. Điều kiện sau Không có
1. Người dùng chọn chủ đề. 2. Bắt đầu chơi
3. Người dùng sẽ chọn 1 trong
4 đáp án từ câu đầu tiên tới câu cuối cùng 4. Sau khi hoàn thành toàn
bộcâu hỏi sẽ hiển thị kết quả Luồng sự kiện chính pass hoặc fail Luồng sự kiện phụ Không. 14 lOMoAR cPSD| 47206417 Bảng 5: Xem Thống Kê Use case Nội dung Mô tả
Xem thống kê câu hỏi đúng, sai Actor Người dùng Use case liên quan
Đăng nhập, xem quizz và thực hiện quizz
Vào trang chủ và bấm vào biểu tượng avatar Điều kiện góc trái Điều kiện trước Đăng nhập thành công. Điều kiện sau Không có
1. Người dùng vào trang chủ trò chơi.
2. Nhấn vào biểu tượng avatar góc trái
3. Hiển thị ra lịch sử các bài đã làm Luồng sự kiện
4. Người dùng chọn bài muốn xem câu hỏi chính đúngsai và nhấn vào Luồng sự kiện phụ Không. 15 lOMoAR cPSD| 47206417
Admin có các use case như sau H ì n h 8: Use case Admin Bảng 6: Đăng nhập Use case Nội dung Mô tả Đăng nhập tài khoản Actor Admin Use case liên quan Đăng nhập Điều kiện Nhấn nút đăng nhập Điều kiện trước Không có Điều kiện sau Không có Luồng sự kiện chính 1. Nhấn nút đăng nhập.
2. Đăng nhập thành công.
3. Chuyển sang giao diện Admin Luồng sự kiện phụ
Thông báo đăng nhập thành công 16 lOMoAR cPSD| 47206417 Bảng 7: Đăng xuất Use case Nội dung Mô tả Đăng xuất tài khoản Actor Admin Use case liên quan Đăng nhập Điều kiện
Nhấn vào biểu tượng logout bên tay phải Điều kiện trước Không có Điều kiện sau Không có
1. Nhấn vào biểu tượng logout bên tảy
phải 2. Đăng xuất thành công. Luồng sự kiện chính
3. Chuyển sang trang đăng nhập. Luồng sự kiện phụ
Thông báo đăng xuất thành công. Bảng 8: Thêm câu hỏi Use case Nội dung Mô tả Thêm bộ câu hỏi mới Actor Admin Use case liên quan Đăng nhập Điều kiện
Nhấn vào mục Add New Question Điều kiện trước
Phải đăng nhập bằng tài khoản admin Điều kiện sau Không có 17 lOMoAR cPSD| 47206417 Luồng sự kiện chính
1. Nhấn vào mục Add New Question
2. Nhập title, subtitle, time cho chủ đề mới 3. Bấm Add new topic
4. Nhập dữ liệu câu hỏi muốn thêm:
question,option1, option2, option3, correct answer 5. Bấm Add New Question Luồng sự kiện phụ 3.Thêm topic thành công
4.Thêm câu hỏi thành công
Bảng 9: Cập nhật câu hỏi Use case Nội dung Mô tả
Cập nhật câu hỏi hoặc cập nhật topic Actor Admin Use case liên quan Đăng nhập Điều kiện
Nhấn vào mục Update New Question Điều kiện trước
Phải đăng nhập bằng tài khoản admin Điều kiện sau Không có Luồng sự kiện chính
1. Nhấn vào mục Update New Question
2. Nếu admin muốn update topic thì nhập
lạiQuizTitle, Subtitle, Time. 3. Bấm Update Topic
4. Nếu admin muốn update question thì
chọncâu hỏi muốn update sau đó nhập
lại option1, option2, option3, option4, chọn đáp án đúng . 5. Bấm Update Question 18