ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN ĐỀ TÀI: ỨNG DỤNG TRAO ĐỔI NGÔN NGỮ GVHD: Ths Nguyễn Thị Thanh Trúc Sinh viên thực hiện: Lâm Sơn Hải - 18520699 Phan Hồng Quân - 18520239 TP.Thủ Đức, tháng năm 2021 Copyright © 2020 by HOMIES team Báo cáo đồ án ii LỜI CẢM ƠN Lời đầu tiên, nhóm tác giả xin chân thành cảm ơn q thầy khoa Công nghệ Phần mềm, trường Đại Học Công Nghệ Thơng Tin, ĐHQG TP.HCM, tận tình hướng dẫn nhóm suốt thời gian qua Những kiến thức mà thầy cô truyền đạt tảng quan trọng để nhóm hồn thành đề tài Nhóm tác giả xin gửi lời cảm ơn chân thành lòng biết ơn sâu sắc đến ThS Nguyễn Thị Thanh Trúc, cảm ơn thầy tận tình hướng dẫn tạo điều kiện tốt cho nhóm hồn thành đề tài Những lời động viên, góp ý chân tình thầy động lực quý báu để nhóm vượt qua khó khăn tìm hiểu thực đề tài Trong thời gian tháng thực đề tài, nhóm tác giả cố gắng vận dụng kiến thức tảng học, kết hợp học hỏi tìm hiểu cơng nghệ để ứng dụng xây dựng đề tài mơn học Tuy nhiên q trình thực hiện, kiến thức kinh nghiệm nhiều hạn chế, khó tránh khỏi thiếu sót Chính vậy, nhóm tác giả mong nhận góp ý từ q thầy để nhóm hồn thiện thêm kiến thức mà nhóm học tập, làm hành trang q báu cho nhóm cơng việc sau Xin chân thành cảm ơn quý thầy cô ! Copyright © 2021 by Hải Quân team Báo cáo đồ án iii NHẬN XÉT (Của giáo viên hướng dẫn) Copyright © 2021 by Hải Quân team Báo cáo đồ án iv DANH SÁCH THÀNH VIÊN Tên thành viên MSSV Lâm Sơn Hải 18520699 Phan Hồng Quân 18520239 Copyright © 2021 by Hải Quân team Báo cáo đồ án v MỤC LỤC TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề 1.2 Lý chọn đề tài 1.3 Nhiệm vụ nghiên cứu 1.4 Mục đích nghiên cứu 1.5 Phương pháp nghiên cứu 1.6 Công cụ sử dụng PHÂN TÍCH ĐẶC TẢ YÊU CẦU 10 2.1 Khảo sát thị trường 10 Các ứng dụng học tiếng anh 10 Một số ứng dụng trao đổi ngôn ngữ 12 Tổng kết 13 2.2 Sơ đồ usecase 14 Sơ đồ 14 Danh sách Actor 14 Danh sách usecase 14 Đặc tả usecase 15 2.3 Sơ đồ trạng thái 20 Đăng nhập 20 Đăng xuất 20 Tìm kiếm người dùng 20 Nhắn tin 21 Thiết lập ngôn ngữ 21 Thiết lập thói quen 22 Gửi yêu cầu kết bạn 22 Xóa bạn 23 Đồng ý yêu cầu kết bạn 23 2.4 Sơ đồ hoạt động 23 Đăng nhập 23 Đăng ký 24 Copyright © 2021 by Hải Quân team Báo cáo đồ án vi Tìm kiếm 24 Thiết lập ngôn ngữ 24 Thiết lập sở thích 25 Nhắn tin 25 2.5 Sơ đồ lớp 27 TÌM HIỀU VỀ FLUTTER VÀ FIREBASE 30 3.1 Flutter Framework 30 Flutter gì? 30 Tại lại Flutter? 30 Đặc điểm bật 31 3.2 FIREBASE 32 Firebase gì? 32 Tại lại Firebase? 32 Đặc điểm bật 32 THIẾT KẾ HỆ THỐNG 33 THIẾT KẾ GIAO DIỆN 33 5.1 Màn hình đăng nhập 34 5.2 Màn hình đăng ký 35 5.3 Màn hình Danh sách tin nhắn 36 5.4 Màn hình nhắn tin 37 5.5 Màn hình tìm kiếm người dùng 38 5.6 Màn hình thiết lập thơng tin tài khoản 39 PHÁT TRIỂN VÀ CÀI ĐẶT ỨNG DỤNG 40 6.1 Môi trường phát triển ứng dụng 40 6.2 Môi trường triển khai ứng dụng 40 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41 7.1 Kết luận 41 7.2 Hướng phát triển 41 Copyright © 2021 by Hải Quân team Báo cáo đồ án TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề Trong suốt chiều dài phát triển lịch sử, ngôn ngữ trở thành phần khơng thể thiếu việc gìn giữ, trì phát triển văn minh nhân loại Mặt khác, ngôn ngữ dần trở thành đường ngắn đưa văn hoá lại gần Do vậy, việc học ngoại ngữ coi hội để người tự mở cánh cửa đến với văn hoá, đất nước, người ngồi phạm vi sinh sống Tuy nhiên, việc học ngôn ngữ việc dễ dàng, đa phần người học khơng có hội tiếp xúc với văn hố khác để tìm hiểu lối sống, đặc điểm ngơn ngữ đó, chán nản điều dễ xảy Mặc cho công nghệ phát triển, giới ngày trở nên "phẳng" hơn, người dễ dàng giao tiếp với người khác dù cách xa ngàn số, đa phần người học ngoại ngữ khơng có nhiều phương tiện (cơ hội) để học ngôn ngữ từ người ngữ (hay thành thạo) Vậy, làm để không mang người học có định hướng, mong muốn học ngoại ngữ trao đổi kinh nghiệm, hiểu biết ngôn ngữ cho nhau? Đề tài thực nhằm tìm câu trả lời giải vấn đề 1.2 Lý chọn đề tài Ngày nay, xã hội phát triển, công nghệ len lỏi vào ngóc ngách, khơng khó để tìm thấy phần mềm học ngoại ngữ với tính năng, cách tiếp cận lạ, độc đáo Cùng với đó, người dùng trở nên ngày khó tính việc lựa chọn phần mềm xứng đáng để đầu tư thời gian, tiền bạc công sức vào suốt q trình phát triển thân lĩnh vực Đa phần phần mềm học ngoại ngữ xây dựng với nhiệm vụ giúp người dùng nâng cao (hoặc số) kỹ định thơng qua Copyright © 2021 by Hải Quân team Báo cáo đồ án giảng, học, kiểm tra nhỏ (mini test), ôn luyện với giao diện từ đơn giản đến phức tạp, lôi người dùng theo cách khác Có số ứng dụng kích thích người dùng trì thói quen luyện tập ngoại ngữ hàng ngày, hay chiến đấu để đạt mục tiêu (nâng cấp nhân vật, tích luỹ điểm ) Không thể phủ nhận nhà phát triển ngày có bước sáng tạo đóng góp khơng nhỏ vào q trình luyện tập ngoại ngữ nhiều người Tuy nhiên, người học học thông qua ứng dụng hay sách vở, khơng dễ để họ trao đổi, nói chuyện tốt sinh hoạt, học tập làm việc môi trường nước ngồi thiếu kinh nghiệm nói chuyện, trao đổi văn hoá với người đến từ văn hố khác Việc tìm kiếm người địa hay người có khả tinh thần muốn giúp đỡ q trình học ngoại ngữ khơng phải chuyện đơn giản, kể mạng xã hội hay ngồi đời thực Bên cạnh đó, nhu cầu trải nghiệm, trao đổi văn hố vơ lớn điều giúp người học có thêm động lực việc học ngoại ngữ Đồng thời, nâng cao yêu thích thân đất nước, người hiểu sống hay nét đặc trưng quốc gia 1.3 Nhiệm vụ nghiên cứu - Nghiên cứu ứng dụng học ngôn ngữ có thị trường cách tiếp cận chúng nhằm giải nhu cầu học người dùng; - Nghiên cứu lợi ích việc trao đổi ngôn ngữ chéo hai người; - Nghiên cứu xây dựng sở liệu kết nối phần mềm; - Nghiên cứu lập trình, bố trí mục thiết kế ứng dụng; - Nghiên cứu uỷ quyền, bảo mật vấn đề liên quan; - 1.4 Mục đích nghiên cứu - Giúp người học ngoại ngữ có hội tiếp cận với người chung chí hướng, kết bạn trao đổi vấn đề liên quan đến văn hố, ngơn ngữ sống; Copyright © 2021 by Hải Quân team Báo cáo đồ án - Tạo không gian mạng xã hội để người học ngoại ngữ phát triển khả ngôn ngữ, cải thiện mức độ linh hoạt, tự nhiên việc sử dụng ngoại ngữ; - Phá bỏ rào cản địa lý người học ngoại ngữ đến từ nhiều quốc gia giới; - Việc kết hợp dạy (ngôn ngữ mình) dạy (ngoại ngữ cần học) giúp người dùng học cách diễn đạt trình bày ý kiến mình, lắng nghe hiểu ý mà đối phương muốn truyền thụ; 1.5 Phương pháp nghiên cứu - Tìm hiểu thông tin ứng dụng tương đương thị trường - Tìm hiểu thơng tin tài liệu có liên quan đến hệ thống trao đổi ngôn ngữ - Tổng hợp, đánh giá thơng tin tìm hiểu đưa tính cần thiết cho ứng dụng - Áp dụng kiến thức lập trình Flutter, Firebase, Rest API để xây dựng ứng dụng dựa thông tin nghiên cứu - 1.6 Công cụ sử dụng - Cơng cụ dùng để phân tích, thiết kế: draw.io, Figma - Công cụ dung để xây dựng ứng dụng: Visual Studio Code, Android studio - Công cụ quản lý dự án: Github, Notion, Messenger, Microsoft Teams - Công cụ soạn thảo: Google Sheet, Excel, Word, Notepad - Cơng cụ quản lý Database: Firebase Copyright © 2021 by Hải Quân team Báo cáo đồ án 10 PHÂN TÍCH ĐẶC TẢ YÊU CẦU 2.1 Khảo sát thị trường Các ứng dụng học tiếng anh 2.1.1.1 Duolingo Duolingo phần mềm học tiếng Anh tốt phủ Mỹ khuyên sử dụng Đây công cụ học tiếng Anh miễn phí 100% Có thể tải điện thoại học bạn rảnh Ưu điểm phần mềm học tiếng Anh Douling có số lượng học lớn Được thiết kế đầy đủ từ level đến nâng cao Giao diện rõ ràng, dễ hiểu, nội dung học phù hợp với đối tượng Vì ứng dụng khơng giới hạn độ tuổi Tuy nhiên, Douling có nhược điểm phù hợp cho người gốc muốn học lại từ đầu người chưa biết Vậy nên dễ gây nhàm chán người có kiến thức từ trước Tuy nhiên, muốn giao tiếp tương tác người với người ứng dụng cịn hạn chế 2.1.1.2 TWO MIN ENGLISH Two English - phút học tiếng Anh ngày Nhưng khác với ứng dụng khác, Two English rèn luyện khả học việc cung cấp cho người dùng đoạn video ngắn có phụ đề Copyright © 2021 by Hải Quân team Báo cáo đồ án 27 2.5 Sơ đồ lớp User Tên thuộc tính Kiểu liệu userId String Ràng buộc Giải thích UID - ID người dùng Nickname String Tên hiển thị người dùng profilePicture String Đường dẫn đến ảnh đại diện người dùng coverPhoto String Đường dẫn đến ảnh bìa người dùng Copyright © 2021 by Hải Quân team Báo cáo đồ án Hobbies 28 Danh sách sở List thích (tham chiếu đến bảng Hobby) người dùng languages List Danh sách ngôn ngữ (tham chiếu đến bảng Language) người dùng Language Tên thuộc tính Kiểu liệu languageId String Ràng buộc Giải thích ID ngơn ngữ Firestore name Tên hiển thị String ngôn ngữ description Mơ tả ngơn String ngữ level Trình độ int mà người dùng (được tham chiếu đến Language) có Hobby Tên thuộc tính hobbyId Kiểu liệu Ràng buộc String Giải thích ID thói quen Firestore name String Tên thói quen description String Mơ tả thói Copyright © 2021 by Hải Qn team Báo cáo đồ án 29 quen additionalInfo Các thông tin bổ String sung mà người dùng muốn đưa vào để mơ tả chi tiết thói quen hay gắn bó với thói quen Relationship Tên thuộc tính Kiểu liệu relationshipId String Ràng buộc Giải thích ID relationship Firestore name String Tên relationship description String Mô tả relationship additionalInfo String Các thông tin bổ sung mà người dùng muốn đưa vào để mô tả chi tiết relationship hay gắn bó với thói quen Copyright © 2021 by Hải Quân team Báo cáo đồ án 30 TÌM HIỀU VỀ FLUTTER VÀ FIREBASE 3.1 Flutter Framework Flutter gì? Flutter mobile UI framework Google để tạo giao diện chất lượng cao iOS Android khoảng thời gian ngắn Flutter hoạt động với code sẵn có sử dụng lập trình viên, tổ chức Flutter hồn tồn miễn phí mã nguồn mở Tại lại Flutter? Nếu bạn tìm kiếm phương pháp thay để phát triển ứng dụng Android, bạn nên cân nhắc thử Flutter Google, framework dựa ngơn ngữ lập trình Dart Các ứng dụng xây dựng với Flutter phân biệt với ứng dụng xây dựng cách sử dụng Android SDK, giao diện hiệu suất Hơn nữa, với tinh chỉnh nhỏ, chúng chạy thiết bị iOS Chạy 60 fps, giao diện người dùng tạo với Flutter thực thi tốt nhiều so với ứng dụng tạo với framework phát triển đa tảng khác chẳng hạn React Native Ionic Một số lí khiến bạn hứng thú với Flutter: Flutter sử dụng Dart, ngôn ngữ nhanh, hướng đối tượng với nhiều tính hữu ích mixin, generic, isolate, static type Flutter có thành phần UI riêng nó, với chế để kết xuất chúng tảng Android iOS Hầu hết thành phần giao diện người dùng, sẵn dùng, phù hợp với nguyên tắc Material Design Các ứng dụng Flutter phát triển cách4 sử dụng IntelliJ IDEA, IDE giống với Android Studio Copyright © 2021 by Hải Quân team Báo cáo đồ án 31 Đặc điểm bật Fast Development: Tíng Hot Reload hoạt động milliseconds để thị giao diện tới bạn Sử dụng tập hợp widget customizable để xây dựng giao diện vài phút Ngồi Hot Reload cịn giúp bạn thêm tính năng, fix bug tiết kiệm thời gian mà không cần phải thông qua máy ảo, máy android iOS Expressive and Flexible UI: Có nhiều thành phần để xây dựng giao diện Flutter vô đẹp mắt theo phong cách Material Design Cupertino, hỗ trợ nhiều APIs chuyển động, smooth scrolling Native Performance: Các widget fluter kết hợp khác biệt tảng ví dụ scrolling, navigation, icons, font để cung cấp hiệu tốt tới iOS Android Copyright © 2021 by Hải Quân team Báo cáo đồ án 32 3.2 FIREBASE Firebase gì? Firebase dịch vụ sở liệu hoạt động tảng đám mây – cloud Kèm theo hệ thống máy chủ mạnh mẽ Google Chức giúp người dùng lập trình ứng dụng cách đơn giản hóa thao tác với sở liệu Cụ thể giao diện lập trình ứng dụng API đơn giản Mục đích nhằm tăng số lượng người dùng thu lại nhiều lợi nhuận Đặc biệt, dịch vụ đa bảo mật cực tốt Firebase hỗ trợ hai tảng Android IOS Tại lại Firebase? Firebase cho phép người dùng đăng nhập tài khoản Google đơn giản Gói Spark Firebase miễn phí cung cấp nhiều tính để giúp nhà phát triển bắt đầu sử dụng Thông qua việc sử dụng Firebase Firestore, Frontend Developer quản lý, giảm thời gian cần thiết để hồn thành tất cơng việc Đặc điểm bật Cũng giống lý lựa chọn Firebase, ngồi cịn có số đặc điểm khác bật như: - Firebase cho phép người dùng đăng nhập tài khoản Google đơn giản Gói Spark Firebase miễn phí cung cấp nhiều tính để giúp nhà phát triển bắt đầu sử dụng - Thông qua việc sử dụng Firebase Firestore, Frontend Developer quản lý, giảm thời gian cần thiết để hồn thành tất cơng việc - Firebase kèm với kiến trúc khơng máy chủ (Serverless Architecture) Do đó, bạn không cần lo lắng sở hạ tầng máy chủ - Firebase đảm bảo tính bảo mật tối ưu tính sẵn có liệu nhờ lưu thường xuyên Các ứng dụng bảo vệ khỏi khả liệu cách dựa vào tính lưu tự động tảng Copyright © 2021 by Hải Quân team Báo cáo đồ án 33 THIẾT KẾ HỆ THỐNG Sơ đồ thiết kế hệ thống: THIẾT KẾ GIAO DIỆN Giao diện thiết kế phần mềm Figma Copyright © 2021 by Hải Quân team Báo cáo đồ án 34 5.1 Màn hình đăng nhập Copyright © 2021 by Hải Quân team Báo cáo đồ án 35 5.2 Màn hình đăng ký Copyright © 2021 by Hải Quân team Báo cáo đồ án 36 5.3 Màn hình Danh sách tin nhắn Copyright © 2021 by Hải Quân team Báo cáo đồ án 37 5.4 Màn hình nhắn tin Copyright © 2021 by Hải Qn team Báo cáo đồ án 38 5.5 Màn hình tìm kiếm người dùng Copyright © 2021 by Hải Quân team Báo cáo đồ án 39 5.6 Màn hình thiết lập thơng tin tài khoản Copyright © 2021 by Hải Quân team Báo cáo đồ án 40 PHÁT TRIỂN VÀ CÀI ĐẶT ỨNG DỤNG 6.1 Môi trường phát triển ứng dụng Hệ điều hành: Android/IOS Hệ quản trị sở liệu: Firebase Môi trường chạy thử: Oppo A92, Máy ảo Pixel Framework sử dụng: Flutter 6.2 Môi trường triển khai ứng dụng Hệ điều hành: Android 5+ RAM: 2GB CPU: Snapdragon 439 / MediaTek MT6762 (P22) trở lên Phần cứng: Chipset 64-bit Bộ nhớ: 200MB Copyright © 2021 by Hải Quân team Báo cáo đồ án 41 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 7.1 Kết luận - Ứng dụng thực chức đăng nhập, đăng ký, nhắn tin, nhận tin số tính khác có liên quan ứng dụng - Xây dựng giao diện tương đối dễ nhìn - Ứng dụng hỗ trợ người dùng tìm kiếm đối tượng phù hợp cho việc học ngoại ngữ 7.2 Hướng phát triển - Phát triển thêm số lọc để người dùng thu hẹp phạm vi tìm người phù hợp với (Như lọc theo khu vực, kỹ năng, …) - Thêm số animation cho UI sinh động Copyright © 2021 by Hải Quân team ... quan dựa để đưa chức phù hợp cho ứng dụng 2.2 Sơ đồ usecase Sơ đồ Danh sách Actor STT Tên Actor Ý nghĩa/ ghi Người dùng Người dùng sử dụng ứng dụng trao đổi ngôn ngữ Danh sách usecase STT Tên Usecase... danh giá (theo mô tả ứng dụng Google Store) Ứng dụng ? ?ứng đầu số ứng dụng Google Store, App Store Tuy nhiên, ứng dụng hỗ trợ học phát âm, giao tiếp đọc, viết Ngoài để sử dụng dịch vụ bạn phải... Hải Quân team Báo cáo đồ án 12 Một số ứng dụng trao đổi ngôn ngữ 2.1.2.1 mylanguageexchange.com Đây trang web cho phép bạn tìm kiếm kết bạn với người nước cho việc học ngôn ngữ thông qua giao tiếp,