Mở đầu: Giới thiệu sơ lược về đề tài đã chọn, lý do chọn đề tài này, mục tiêu, phương pháp nghiên cứu, đối tượng và phạm vi nghiên cứu. • Chương 02 – Kiến thức và công nghệ nền tảng: Giới thiệu về các công nghệ được sử dụng, cách thức hoạt động, ưu điểm của các công nghệ đó. • Chương 03 – Xây dựng ứng dụng: Mô tả các sơ đồ đặc tả Use Case, quy trình sử dụng, trình tự hệ thống, thiết kế dữ liệu. • Chương 04 – Cài đặt và triển khai hệ thống: Mô tả môi trường cài đặt và thiết kế giao diện người dùng.
• Chương 05 – Tổng kết: Trình bày ngắn gọn kết quả đạt được trong quá trình thực hiện đồ án, các hạn chế và định hướng phát triển trong tương lai. Giới thiệu về đề tài Trong bối cảnh thế giới ngày càng hội nhập, việc biết nhiều ngôn ngữ là điều tất yếu để có thể kết nối với mọi người trên toàn cầu. Việc học ngôn ngữ tốt nhất nên bắt đầu ngay từ khi ta còn trẻ, vì khi đó chúng ta sẽ tiếp thu kiến thức mới nhanh hơn so với khi chúng ta già đi. Tuy nhiên, không phải người trẻ nào cũng có điều kiện để đầu tư cho bản thân học thêm ngôn ngữ mới, và cũng không đủ kiên nhẫn để theo học ngôn ngữ đó tới cùng, nên dễ xảy ra tâm trạng chán nản, từ bỏ.
Với thực trạng trên, việc phát triển một công cụ để hỗ trợ cho các bạn trẻ có thể dễ dàng tiếp cận với việc học ngôn ngữ là rất cần thiết. Nó không chỉ giúp cho các bạn có những bài học bổ ích, mà còn giúp tiết kiếm thời gian, công sức mà quan trọng nhất là tiền bạc – thứ mà phần lớn những người trẻ như học sinh, sinh viên không có – để đi học ngôn ngữ ở các trung tâm. Chính vì thế, em quyết định đăng ký đề tài “Xây dựng ứng dụng giải trí học ngôn ngữ” để giúp cho các bạn học sinh, sinh viên hay thậm chí là người lớn có thể tự học bất kỳ ngôn ngữ nào mà không cần phải ra trung tâm hoặc mua sách về học. Ứng dụng này không chỉ tạo ra với mục đích học tập mà còn là để giải trí bằng nhiều trò chơi khác nhau, giúp cho người dùng có thể vừa học vừa chơi sau những giờ học tập và làm việc căng thẳng.
Em tin rằng ứng dụng Giải trí luyện ngôn ngữ AtoZ sẽ là công cụ hữu ích cũng như là người bạn đồng hành tốt nhất cho mọi người. Lý do chọn đề tài Lý do mà em chọn đề tài này là vì: 11 - Tầm quan trọng của học ngôn ngữ: Việc học ngôn ngữ không chỉ là một kỹ năng hữu ích mà còn là một cánh cửa mở ra nhiều cơ hội trong cuộc sống nói riêng và trong sự nghiệp nói chung. - Cơ hội tiếp cận thị trường lớn: Ứng dụng AtoZ có khả năng tiếp cận đến đa dạng đối tượng người dùng không chỉ vì AtoZ có giao diện ưa nhìn, bắt mắt mà còn mang đến cho người dùng những game giải trí giải tỏa căng thẳng. Việc kết hợp giải trí và học tập là một cách mạnh mẽ để khích lệ người học, tạo động lực và giữ cho họ cam kết với quá trình học.
- Học tập và nghiên cứu ngôn ngữ mới: Em chọn đề tài này là để cho bản thân cơ hội nghiên cứu và xây dựng, phát triển một ứng dụng trên nền tảng di động, sử dụng công nghệ Flutter. Mục tiêu của đề tài Mục tiêu của đề tài này là xây dựng phần mềm ứng dụng giải trí luyện ngôn ngữ để giúp cho những người có nhu cầu (nhất là các bạn học sinh, sinh viên) có thể dễ dàng tự học ngôn ngữ, cũng như là giải tỏa căng thẳng sau những giờ học và làm việc mệt mỏi. Phương pháp nghiên cứu - Trải nghiệm và quan sát các ứng dụng luyện ngôn ngữ hiện có trên thị trường như “Duolingo”, “Memrise”, “Cake”,… Từ đó, đề ra các yêu cầu chức năng và phi chức năng. - Phân tích ưu và nhược điểm của các ứng dụng nêu trên, từ đó rút kinh nghiệm và áp dụng để phát triển đề tài.
- Khảo sát ý kiến của các bạn sinh viên cùng tuổi và các bạn học sinh về giao diện và nhu cầu chức năng mong muốn của từng đối tượng. - Nghiên cứu tài liệu các công nghệ liên quan, cập nhật phiên bản mới và ứng dụng chúng. - Hoàn thiện sản phẩm. Đối tượng và phạm vi nghiên cứu 1.
Đối tượng nghiên cứu - Học sinh, sinh viên. - Những người đã đi làm. - Quản trị viên. Phạm vi nghiên cứu - Ứng dụng sẽ bao gồm một màn hình chứa các màn chơi, qua đó người dùng sẽ được chọn vòng bất kỳ mà mình muốn chơi.
Ngoài ra sẽ có một màn hình khác giúp cho người sử dụng luyện hai kỹ năng đọc và viết, màn hình theo dõi xếp hạng của người dùng và màn hình hồ sơ cá nhân của người dùng. - Đề tài này sẽ tập trung vào phát triển tính năng cụ thể của người dùng, bao gồm nhiều loại trò chơi đa dạng, tính năng gợi ý bài học phù hợp vào trình độ mà người dùng đã chọn, thuật toán tự động nâng cấp trình độ người dùng sau khi đã hoàn thành đủ số màn chơi tương ứng, và một biểu đồ phân tích quá trình học của người dùng. - Nghiên cứu các công nghệ và framework được sử dụng trong việc phát triển ứng dụng như Flutter và Dart, môi trường xây dựng backend server như NodeJS, hệ quản trị cơ sở dữ liệu MongoDB, công cụ kiểm thử API Postman, và các dịch vụ khác như Firebase, Github, Figma,… - Áp dụng các thư viện khác của Flutter để xây dựng và hoàn thiện giao diện người dùng đẹp, dễ sử dụng, bắt mắt cho người dùng. TỔNG QUAN VỀ CÔNG NGHỆ SỬ DỤNG 2.
Dart Hình 2.1: Ngôn ngữ lập trình Dart Khái niệm: Dart, là một ngôn ngữ lập trình đa mục đích mã nguồn mở, đã được đặt nền móng bởi Google. Đây là một khía cạnh của ngôn ngữ lập trình hướng đối tượng, đặc trưng bởi cú pháp kiểu C. Tinh thần lập trình hướng đối tượng thể hiện qua việc hỗ trợ giao diện và lớp, mở ra khả năng sáng tạo không giới hạn khi đặt lên bàn cân với những ngôn ngữ khác. Sự đa dạng của Dart thể hiện thông qua khả năng phát triển ứng dụng web, di động, máy chủ và máy tính để bàn.
Ưu điểm nổi bật: • Là ngôn ngữ mở rộng, linh hoạt, tạo điều kiện tích cực cho việc biên dịch trở nên nhanh chóng hơn. • Có tính ổn định tốt, được sử dụng để xây dựng các ứng dụng về thời gian thực với hiệu suất cao. • Hỗ trợ cả biên dịch Vừa đúng lúc (JIT) và biên dịch Trước thời hạn (AOT). • Có thể thích ứng nhanh chóng với các quy trình công việc có sự thay đổi.
Flutter Hình 2.2: Framework Flutter Khái niệm: Flutter là một framework phát triển ứng dụng di động open-source được phát triển bởi Google. Nó cho phép lập trình viên xây dựng ứng dụng di động chất lượng cao từ một mã nguồn duy nhất và triển khai chúng trên nhiều nền tảng khác nhau như Android, iOS, web và desktop. Đặc điểm nổi bật: • Ngôn ngữ lập trình Dart: Flutter sử dụng Dart, một ngôn ngữ lập trình được phát triển bởi Google, cho cả lớp logic ứng dụng và giao diện người dùng. • Widget-based UI: Flutter sử dụng mô hình lập trình dựa trên widget, là các thành phần xây dựng giao diện người dùng.
Các widget có thể được kết hợp để tạo thành giao diện người dùng phức tạp. • Đa nền tảng: Với Flutter, bạn có thể xây dựng một ứng dụng và triển khai nó trên nhiều nền tảng khác nhau mà không cần viết lại mã nguồn nhiều lần. Điều này giúp giảm chi phí phát triển và duy trì ứng dụng. • Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ trợ nhiều các APIs chuyển động, smooth scrolling 15 • Fast Development: Tíng năng Hot Reload hoạt động trong milliseconds để hiện thị giao diện tới bạn.
Sử dụng tập hợp các widget có thể customizable để xây dựng giao diện trong vài phút. Ngoài ra Hot Reload còn giúp bạn thêm các tính năng, fix bug tiết kiệm thời gian hơn mà không cần phải thông qua máy ảo, máy android hoặc iOS. Node JS Hình 2.3: Môi trường NodeJS Khái niệm: Node.js là một môi trường chạy mã nguồn mở dựa trên JavaScript, được xây dựng trên V8, động cơ JavaScript của Google Chrome. Nó cho phép phát triển các ứng dụng mạng nhanh chóng và mở rộng quy mô dễ dàng.js được phát triển bởi Ryan Dahl vào năm 2009 và đã trở thành một công cụ phổ biến trong việc phát triển phần mềm, đặc biệt là về phía server-side trong các ứng dụng web.
Ưu điểm nổi bật: • Node.js sử dụng mô hình I/O không chặn (non-blocking I/O), giúp xử lý nhiều kết nối cùng lúc một cách hiệu quả. Điều này làm cho Node.js rất phù hợp cho việc xây dựng các ứng dụng mạng có hiệu suất cao, như chơi game trực tuyến, chat, hoặc các ứng dụng cần xử lý một lượng lớn dữ liệu thời gian thực.js mở rộng khả năng của JavaScript từ client-side đến server-side, giúp các nhà phát triển có thể sử dụng một ngôn ngữ duy nhất cho cả frontend và backend, đơn giản hóa quá trình phát triển. • Với cộng đồng lập trình viên lớn và sôi động, Node.js có một hệ sinh thái thư viện mạnh mẽ, được quản lý thông qua npm (Node Package Manager), giúp dễ dàng tìm và sử dụng hàng ngàn module và công cụ. Mongo DB Hình 2.4: Cơ sở dữ liệu MongoDB Khái niệm: MongoDB là một hệ thống quản lý cơ sở dữ liệu NoSQL mã nguồn mở, sử dụng mô hình dữ liệu dạng tài liệu (document-oriented).
Được ra mắt vào năm 2009, MongoDB được thiết kế để cung cấp một cách lưu trữ dữ liệu linh hoạt, mở rộng quy mô dễ dàng, và dễ dàng tích hợp với ứng dụng hiện đại. Nó lưu trữ dữ liệu dưới dạng tài liệu BSON (một định dạng giống JSON), giúp nó trở thành một lựa chọn phổ biến cho các ứng dụng web và mobile. Ưu điểm nổi bật: • MongoDB không yêu cầu một cấu trúc dữ liệu cố định, cho phép lưu trữ tài liệu có cấu trúc đa dạng. Điều này giúp dễ dàng thích nghi với thay đổi yêu cầu và dữ liệu.
17 • MongoDB cung cấp hiệu suất truy vấn cao, đặc biệt là với các hoạt động đọc và ghi dữ liệu. Các chỉ mục được hỗ trợ tốt giúp tăng cường hiệu suất truy vấn.