Trường đại học
Trường Đại Học Công Nghệ Thông TinChuyên ngành
Lập Trình Ứng Dụng Di ĐộngNgười đăng
Ẩn danhThể loại
Đồ án thực tập2023
Phí lưu trữ
30.000 VNĐMục lục chi tiết
Tóm tắt
Đồ án thực tập lập trình A với chủ đề Ứng Dụng Mobile Trắc Nghiệm Flags Quiz App là một dự án tiêu biểu, phản ánh triết lý học đi đôi với hành của Trường Đại học Hoa Sen. Dự án này không chỉ là một bài tập kỹ thuật mà còn là cơ hội để sinh viên khoa Công Nghệ Thông Tin áp dụng kiến thức lý thuyết vào việc phát triển một sản phẩm thực tế. Mục tiêu chính của đồ án là xây dựng một ứng dụng game trắc nghiệm đoán quốc kỳ, vừa mang tính giải trí, vừa cung cấp kiến thức địa lý bổ ích. Theo báo cáo, dự án được thực hiện trong 8 tuần, là kết quả của quá trình học tập và làm việc nhóm, vận dụng các kiến thức từ Lập trình Hướng đối tượng đến thiết kế giao diện để tạo ra một sản phẩm hoàn chỉnh. Báo cáo đồ án này trình bày chi tiết toàn bộ quá trình, từ khâu lên ý tưởng, tìm hiểu công nghệ, xây dựng ứng dụng quiz, thiết kế cơ sở dữ liệu, cho đến kiểm thử và sửa lỗi. Đây là một tài liệu tham khảo giá trị cho các đồ án tốt nghiệp CNTT trong tương lai, đặc biệt là các dự án liên quan đến lập trình game trắc nghiệm trên nền tảng di động. Sản phẩm hướng đến đối tượng người dùng đa dạng, không giới hạn độ tuổi, với mục tiêu giúp họ cải thiện kiến thức về các quốc gia một cách thú vị. Việc hoàn thành báo cáo thực tập lập trình mobile này thể hiện năng lực vận dụng kiến thức và kỹ năng làm việc nhóm hiệu quả.
Mục tiêu chính của Ứng Dụng Mobile Trắc Nghiệm Flags Quiz App là tạo ra một công cụ học tập và giải trí hiệu quả. Ứng dụng được thiết kế để giúp người dùng cải thiện kiến thức về địa lý và quốc kỳ các nước thông qua một trò chơi tương tác. Các mục tiêu cụ thể bao gồm: rèn luyện khả năng phán đoán, tăng cường trí nhớ, và đo lường sự tiến bộ qua hệ thống tính điểm và thời gian. Phạm vi của dự án hướng đến mọi đối tượng người dùng, từ học sinh, sinh viên đến những người muốn tìm hiểu thêm về thế giới. Ứng dụng không giới hạn độ tuổi và được xây dựng như một công cụ bổ sung kiến thức một cách nhẹ nhàng, thú vị. Đây là một ví dụ điển hình cho các đồ án mẫu android trong lĩnh vực game giáo dục.
Để hiện thực hóa dự án, nhóm đã lựa chọn và sử dụng một bộ công cụ công nghệ hiện đại. React Native được chọn làm framework chính, cho phép phát triển ứng dụng trên cả hai nền tảng iOS và Android từ một mã nguồn JavaScript duy nhất. Môi trường phát triển tích hợp (IDE) chính là Android Studio và Visual Studio Code. Expo Go được sử dụng để kiểm thử ứng dụng trên thiết bị thật một cách nhanh chóng. Về mặt thiết kế, Figma là công cụ chủ đạo để xây dựng giao diện và trải nghiệm người dùng (UI/UX). Hệ thống quản lý phiên bản Git và nền tảng lưu trữ source code GitHub được dùng để quản lý mã nguồn và cộng tác nhóm. Cuối cùng, Firebase cho ứng dụng mobile được chọn làm giải pháp backend, cung cấp cơ sở dữ liệu NoSQL và dịch vụ xác thực người dùng.
Việc phân tích yêu cầu là giai đoạn nền tảng, quyết định sự thành công của dự án xây dựng ứng dụng quiz. Giai đoạn này bao gồm việc xác định rõ ràng các chức năng mà ứng dụng cần có (yêu cầu chức năng) và các tiêu chuẩn về chất lượng mà ứng dụng phải đạt được (yêu cầu phi chức năng). Đối với một game kiến thức địa lý như Flags Quiz App, các chức năng phải được tối ưu hóa để không gây cảm giác rườm rà, đảm bảo trải nghiệm người dùng mượt mà và ổn định. Đặc tả yêu cầu (Requirement Specification) được trình bày chi tiết trong báo cáo, làm cơ sở cho các giai đoạn thiết kế và phát triển sau này. Việc phân tích kỹ lưỡng giúp nhóm xác định được các đối tượng chính trong hệ thống như User (Người chơi), Quiz, và QNA (Bộ câu hỏi), từ đó mô hình hóa ứng dụng một cách chính xác. Các yêu cầu này không chỉ định hình cấu trúc của ứng dụng mà còn là tiêu chí để kiểm thử và đánh giá sản phẩm cuối cùng. Một báo cáo thực tập lập trình mobile chất lượng phải thể hiện rõ quá trình phân tích và đặc tả yêu cầu một cách bài bản.
Các yêu cầu chức năng là những hành động cụ thể mà người dùng có thể thực hiện trên ứng dụng. Đối với Flags Quiz App, các chức năng chính bao gồm: Đăng nhập/Đăng xuất (sử dụng tài khoản Google), Xem và chọn chế độ chơi (ví dụ: nhìn cờ đoán tên nước), Thực hiện quiz (trả lời câu hỏi, tính điểm, chuyển câu), Xem điểm và bảng xếp hạng tổng, và Xem thông tin cá nhân. Mỗi chức năng được mô tả chi tiết thông qua các use-case, xác định rõ actor (Người chơi), điều kiện kích hoạt, luồng sự kiện chính và phụ. Ví dụ, use-case 'Thực hiện quiz' mô tả quá trình từ lúc người chơi chọn chế độ, độ khó, trả lời câu hỏi, cho đến khi hệ thống hiển thị kết quả. Những yêu cầu này đảm bảo ứng dụng cung cấp đầy đủ tính năng của một lập trình game trắc nghiệm hoàn chỉnh.
Yêu cầu phi chức năng định nghĩa các tiêu chuẩn chất lượng của hệ thống. Về hiệu suất, ứng dụng cần xử lý bất đồng bộ để tải dữ liệu từ Firebase một cách mượt mà, ngay cả khi kết nối mạng không ổn định. Về khả năng mở rộng, mã nguồn được cấu trúc đơn giản, dễ hiểu, cho phép phát triển thêm các tính năng mới trong tương lai như tạo bộ quiz riêng hoặc chỉnh sửa thông tin người dùng. Về khả năng sử dụng, thiết kế UI/UX cho app game được ưu tiên với tiêu chí đơn giản, dễ tiếp cận. Giao diện sử dụng màu sắc đơn sắc, font chữ lớn, dễ đọc, phù hợp với mọi lứa tuổi và không gây khó chịu khi sử dụng trong thời gian dài. Những yếu tố này đảm bảo ứng dụng không chỉ hoạt động tốt mà còn mang lại trải nghiệm tích cực cho người dùng.
Thiết kế hệ thống là bước chuyển hóa các yêu cầu đã phân tích thành một cấu trúc phần mềm cụ thể. Trong đồ án Android Studio này, nhóm đã áp dụng mô hình phát triển tăng trưởng (Incremental Model), cho phép xây dựng ứng dụng từng bước, bổ sung tính năng mới vào các phiên bản cũ cho đến khi hoàn thiện. Phương pháp này đặc biệt phù hợp với các dự án có thời gian và nhân lực hạn chế. Thiết kế chi tiết tập trung vào ba đối tượng chính: User, Quiz và QNA, với các thuộc tính và phương thức được định nghĩa rõ ràng. Sơ đồ Class Diagram trực quan hóa mối quan hệ giữa các đối tượng này. Phần quan trọng nhất của thiết kế là cơ sở dữ liệu câu hỏi trắc nghiệm. Nhóm đã sử dụng Firebase để lưu trữ thông tin người dùng, điểm số, và đặc biệt là các bộ câu hỏi. Cấu trúc dữ liệu được tối ưu hóa cho việc truy vấn nhanh chóng, hỗ trợ các cấp độ khó khác nhau và đảm bảo tính ngẫu nhiên khi hiển thị câu hỏi, tạo nên một code game đoán quốc kỳ linh hoạt và hiệu quả.
Hệ thống được thiết kế dựa trên ba lớp (class) chính. Class User
chứa các thuộc tính như họ tên, email, ảnh đại diện, điểm số cao nhất, và xếp hạng; cùng các phương thức như Đăng nhập, Đăng xuất, Thực hiện Quiz. Class Quiz
đại diện cho các chế độ chơi, có thuộc tính tên và mô tả. Class QNA
(Question and Answer) là hạt nhân của trò chơi, chứa các thuộc tính như câu hỏi, đáp án đúng, và mảng các đáp án sai. Sơ đồ Class Diagram trong báo cáo đã mô tả rõ mối quan hệ 'chứa' và 'có' giữa các lớp này, tạo thành một cấu trúc logic và dễ quản lý cho toàn bộ ứng dụng.
Việc lựa chọn Firebase cho ứng dụng mobile là một quyết định chiến lược. Nhóm đã thiết kế một cơ sở dữ liệu câu hỏi trắc nghiệm trên nền tảng NoSQL của Firebase. Dữ liệu được cấu trúc theo từng chế độ chơi và cấp độ khó (Dễ, Trung Bình, Khó). Mỗi câu hỏi là một đối tượng JSON chứa các trường như correct_answer
, incorrect_answers
, và img
(link ảnh cờ) hoặc question
(tên quốc gia). Cấu trúc này không chỉ giúp lưu trữ dữ liệu một cách có tổ chức mà còn cho phép ứng dụng dễ dàng truy xuất, xáo trộn và hiển thị các bộ câu hỏi phù hợp với lựa chọn của người dùng, đảm bảo tính đa dạng và thử thách cho trò chơi.
Quá trình phát triển ứng dụng là giai đoạn hiện thực hóa các bản thiết kế. Giai đoạn này đòi hỏi sự kết hợp nhuần nhuyễn giữa kỹ năng lập trình và tư duy sáng tạo trong thiết kế UI/UX cho app game. Nhóm đã bắt đầu bằng việc lên kế hoạch chi tiết và phân chia công việc rõ ràng. Quá trình này được mô tả trong báo cáo thực tập lập trình mobile, bao gồm các bước từ lên ý tưởng, thiết kế giao diện trên Figma, lập trình các màn hình bằng React Native quiz app, kết nối với database, và thử nghiệm các chức năng. Một trong những điểm nhấn kỹ thuật của dự án là việc xây dựng thuật toán 'trộn' (shuffle) để ngẫu nhiên hóa thứ tự câu hỏi và vị trí các đáp án mỗi lần chơi. Điều này giúp tăng tính tái trải nghiệm và tránh sự nhàm chán. Toàn bộ source code app đoán cờ được quản lý chặt chẽ trên GitHub, đảm bảo sự phối hợp nhịp nhàng giữa các thành viên. Giao diện ứng dụng được thiết kế với tông màu chủ đạo là trắng, đen và xanh, tạo cảm giác thân thiện và chuyên nghiệp, góp phần nâng cao trải nghiệm người dùng.
Nhóm đã thống nhất chọn React Native làm framework chính vì nhiều lý do. Thứ nhất, nó cho phép phát triển ứng dụng đa nền tảng, tiết kiệm thời gian và công sức. Thứ hai, React Native có cộng đồng hỗ trợ lớn và thư viện component phong phú. Quyết định này còn dựa trên yếu tố tương thích phần cứng của các thành viên, vì React Native được đánh giá là khá dễ tiếp cận và không yêu cầu cấu hình máy quá cao so với các framework khác như Flutter. Việc sử dụng ngôn ngữ JavaScript cũng là một lợi thế, giúp nhóm nhanh chóng bắt tay vào phát triển.
Trước khi viết code, toàn bộ giao diện ứng dụng đã được thiết kế chi tiết trên Figma. Quá trình này bắt đầu bằng việc xác định bảng màu chủ đạo và font chữ. Sau đó, nhóm đã thiết kế từng màn hình, từ màn hình Đăng nhập, Trang chủ, Chọn chế độ, màn hình chơi game (ingame), đến màn hình Kết quả và Bảng xếp hạng. Các bản thiết kế trên Figma đóng vai trò như một bản vẽ kỹ thuật, giúp các lập trình viên hình dung rõ ràng về sản phẩm cuối cùng và đảm bảo tính nhất quán trong toàn bộ ứng dụng. Đây là một bước không thể thiếu trong quy trình thiết kế UI/UX cho app game hiện đại.
Để tăng độ khó và sự hấp dẫn, một thuật toán 'trộn' (shuffle) đơn giản đã được thiết kế. Thuật toán này có nhiệm vụ xáo trộn ngẫu nhiên thứ tự của các câu hỏi trong một bộ quiz mỗi khi người dùng bắt đầu chơi. Đồng thời, nó cũng xáo trộn vị trí của đáp án đúng và các đáp án sai trong 4 lựa chọn. Đoạn mã shuffleArray
được trình bày trong báo cáo là một ví dụ cụ thể về việc áp dụng kỹ thuật này. Việc ngẫu nhiên hóa giúp mỗi lần chơi đều là một trải nghiệm mới, tránh việc người dùng ghi nhớ vị trí đáp án.
Giai đoạn cuối cùng của dự án là kiểm thử và đánh giá. Đây là bước quan trọng để đảm bảo chất lượng sản phẩm trước khi hoàn thiện báo cáo thực tập lập trình mobile. Nhóm đã xây dựng một chiến lược kiểm thử thủ công chi tiết, tập trung vào các chức năng cốt lõi của ứng dụng. Các mục cần kiểm thử bao gồm luồng đăng nhập/đăng xuất, hiển thị câu hỏi và câu trả lời, tính chính xác của hệ thống điểm số và hoạt động của bảng xếp hạng. Mỗi chức năng được kiểm tra thông qua các Test Case cụ thể, với các bước hành động, kết quả mong đợi và kết quả thực tế được ghi nhận rõ ràng. Ví dụ, Test Case 4 'Thực hiện quiz' bao gồm 8 bước chi tiết, từ việc chọn chế độ chơi đến khi hoàn thành và xem kết quả. Quá trình kiểm thử kỹ lưỡng đã giúp nhóm phát hiện và sửa chữa các lỗi còn tồn tại, đảm bảo ứng dụng hoạt động ổn định và đáp ứng đúng các yêu cầu đã đề ra. Kết quả cuối cùng là một Ứng Dụng Mobile Trắc Nghiệm Flags Quiz App hoàn chỉnh, sẵn sàng cho việc demo và trình bày.
Sản phẩm hoàn thiện có đầy đủ các chức năng đã được đặc tả. Người dùng có thể đăng nhập bằng Google, vào màn hình chính và chọn 'Chơi ngay'. Sau đó, ứng dụng cho phép chọn chế độ (nhìn cờ đoán tên/nhìn tên đoán cờ) và độ khó. Trong quá trình chơi, hệ thống hiển thị câu hỏi, ghi nhận câu trả lời, thông báo đúng/sai và tính điểm. Sau khi hoàn thành, màn hình kết quả hiển thị tổng số câu đúng, sai. Tính năng Bảng xếp hạng cho phép người dùng so sánh điểm số của mình với những người chơi khác theo từng chế độ, tạo ra tính cạnh tranh và động lực. Các chức năng này được minh họa rõ qua các hình ảnh chụp màn hình trong báo cáo.
Chiến lược kiểm thử được thực hiện thủ công theo từng bước. Báo cáo đã trình bày 4 Test Case chính: Đăng nhập, Xem thông tin cá nhân, Xem bảng xếp hạng, và Thực hiện quiz. Mỗi Test Case đều có tiêu chí đạt/không đạt rõ ràng. Ví dụ, trong 'Test case 3: Xem bảng xếp hạng', tiêu chí đạt là ứng dụng phải chuyển sang đúng màn hình và render được dữ liệu xếp hạng theo từng loại. Phương pháp này tuy đơn giản nhưng hiệu quả trong việc xác minh các luồng chức năng chính của ứng dụng, đảm bảo rằng mọi thành phần hoạt động như mong đợi.
Dự án Ứng Dụng Mobile Trắc Nghiệm Flags Quiz App đã kết thúc thành công, đạt được các mục tiêu đề ra ban đầu. Đây không chỉ là một sản phẩm phần mềm mà còn là một trải nghiệm học tập quý báu, giúp nhóm củng cố kiến thức kỹ thuật và rèn luyện kỹ năng mềm. Quá trình thực hiện đồ án đã mang lại kinh nghiệm thực tiễn trong việc phát triển ứng dụng bằng React Native và JavaScript, hiểu biết sâu sắc về thiết kế giao diện, quản lý dữ liệu với Firebase, và tầm quan trọng của việc kiểm thử. Những thách thức gặp phải đã được giải quyết thông qua kế hoạch cẩn thận và nỗ lực hợp tác. Dự án này là một minh chứng cho thấy tầm quan trọng của việc kết hợp lý thuyết và thực hành, là một tài liệu tham khảo hữu ích cho các sinh viên đang tìm kiếm ý tưởng cho đồ án tốt nghiệp CNTT. Hướng phát triển trong tương lai có thể bao gồm việc mở rộng bộ câu hỏi, thêm các chế độ chơi mới, hoặc tích hợp các tính năng mạng xã hội để tăng tương tác người dùng, biến nó thành một sản phẩm thương mại tiềm năng.
Qua dự án, nhóm đã rút ra nhiều bài học quan trọng. Về mặt kỹ thuật, đó là kinh nghiệm thực chiến với React Native, quản lý trạng thái ứng dụng, và làm việc với API của Firebase. Về quy trình, nhóm nhận thấy tầm quan trọng của việc lập kế hoạch, phân chia công việc rõ ràng và giao tiếp hiệu quả. Đặc biệt, việc thiết kế UI/UX kỹ lưỡng trên Figma trước khi lập trình đã giúp tiết kiệm rất nhiều thời gian và công sức chỉnh sửa sau này. Quá trình gỡ lỗi cũng củng cố kỹ năng giải quyết vấn đề và sự kiên trì. Đây là những kỹ năng thiết yếu cho bất kỳ lập trình viên nào trong tương lai.
Ứng dụng Flags Quiz App hiện tại là một nền tảng vững chắc và có nhiều tiềm năng để phát triển. Hướng phát triển trong tương lai có thể tập trung vào việc làm phong phú thêm nội dung, ví dụ như thêm các bộ câu hỏi về thủ đô, di tích lịch sử hoặc các chủ đề kiến thức khác. Các tính năng nâng cao có thể được xem xét bao gồm: chế độ chơi đối kháng thời gian thực, cho phép người dùng tự tạo và chia sẻ bộ câu hỏi, hoặc tích hợp hệ thống thành tựu (achievements) để khuyến khích người dùng. Việc cung cấp tải source code miễn phí cho cộng đồng cũng là một hướng đi để nhận được sự đóng góp và cải tiến từ các lập trình viên khác.
Bạn đang xem trước tài liệu:
Báo cáo đồ án a ên đề tài flag quiz app
Tài liệu Ứng Dụng Mobile Trắc Nghiệm Flags Quiz App - Đồ Án Thực Tập Lập Trình A là một báo cáo chi tiết về quy trình xây dựng một ứng dụng game trắc nghiệm kiến thức về quốc kỳ trên nền tảng di động. Đây là nguồn tham khảo vô cùng hữu ích cho sinh viên và những người mới bắt đầu trong lĩnh vực lập trình, mang đến cái nhìn thực tế về cách cấu trúc một dự án, các bước cần thiết để phát triển một ứng dụng hoàn chỉnh từ khâu lên ý tưởng, thiết kế đến triển khai.
Bên cạnh việc phát triển một ứng dụng giải trí đơn giản, lĩnh vực lập trình di động còn vô cùng rộng lớn với nhiều ứng dụng phục vụ các mục đích khác nhau. Để mở rộng kiến thức, bạn có thể tìm hiểu sâu hơn về việc xây dựng một hệ thống phức tạp trong lĩnh vực dịch vụ qua đề tài Đồ án hcmute xây dựng app khám bệnh online với react native và nodejs. Nếu quan tâm đến việc ứng dụng công nghệ để hỗ trợ kinh doanh, Đồ án chuyên ngành xây dựng ứng dụng di động bán hoa dflower cho cửa hàng ld ở bình dương sẽ là một ví dụ thực tiễn đầy giá trị. Ngoài ra, để đi sâu vào các tính năng cụ thể và tích hợp backend, việc khám phá Luận văn tốt nghiệp xây dựng ứng dụng chat trong android với firebase sẽ giúp bạn hiểu rõ hơn về cách xây dựng chức năng giao tiếp theo thời gian thực. Mỗi tài liệu là một cơ hội để bạn đào sâu hơn vào các khía cạnh đa dạng của ngành phát triển ứng dụng di động.