Xây dựng mạng xã hội kết nối người học tiếng Anh toàn cầu

MỤC LỤC

Mục tiêu

● Kết nối cộng đồng học tiếng Anh: Dự án này sẽ giúp kết nối những người học tiếng Anh trên toàn cầu, tạo ra một cộng đồng đa dạng về ngôn ngữ và văn hóa, giúp họ học từ nhau và thúc đẩy sự giao lưu văn hóa. ● Hỗ trợ học tập và thực hành: Mạng xã hội kết nối người học tiếng Anh có thể cung cấp các công cụ và tài liệu học tập, cũng như cơ hội thực hành ngôn ngữ qua việc trò chuyện và viết. ● Động viên và thúc đẩy: Dự án này có thể cung cấp hệ thống động viên và thưởng cho người học tiếng Anh, giúp họ duy trì động lực và sự cam kết đối với việc học tiếng Anh.

● Phân tích dữ liệu: Mạng xã hội này có thể thu thập dữ liệu về hoạt động học tập của người dựng, giỳp tổ chức và cỏ nhõn hiểu rừ hơn về tiến trỡnh học tập và cách cải thiện. ● Khả năng thương mại hóa, tạo ra cơ hội kinh doanh: Một mạng xã hội kết nối người học tiếng Anh cũng có thể tạo ra cơ hội kinh doanh thông qua quảng cáo, các khóa học trực tuyến, và các dịch vụ hỗ trợ học tập khác.

Đối tượng

Tinder

    Lấy cảm hứng từ ứng dụng tìm bạn hẹn hò phổ biến nhất hiện nay - Tinder, nhóm nghiên cứu quyết định khảo sát chính ứng dụng mục tiêu để so sánh, phân tích, tìm ra các điểm mạnh và hạn chế để áp dụng vào ứng dụng mục tiêu. Các thuật toán này có thể xác định các mô hình và xu hướng trong hành vi của người dùng mà có thể khụng rừ ràng ngay lập tức, từ đú đưa ra cỏc đề xuất được tinh chỉnh và cá nhân hóa hơn theo thời gian. ● Framework: Framework ứng dụng dành cho thiết bị di động, bao gồm UIKit cho iOS và SDK Android cho Android, được sử dụng để xây dựng giao diện người dùng và quản lý hành vi ứng dụng.

    ● Node.js: Một số báo cáo cho thấy Tinder sử dụng Node.js cho các phần backend của nó, tận dụng kiến trúc không đồng bộ và hướng sự kiện của Javascript, Tinder kết hợp giữa Node và Spring Boot để tối ưu hóa phía Backend. ● Relic mới, Google Analytics hoặc các công cụ tương tự: Những công cụ này giỳp theo dừi hiệu suất ứng dụng, theo dừi mức độ tương tỏc của người dùng và thu thập dữ liệu phân tích.

    Duolingo

    Thêm vào đó, để phù hợp với mục tiêu sử dụng là học tập và luyện tập ngoại ngữ, nhóm nghiên cứu triển khai ứng dụng trên web thay vì trên điện thoại như Tinder. ● Cung cấp ngôn ngữ rộng rãi: Duolingo cung cấp các khóa học bằng nhiều ngôn ngữ, khiến nó trở nên hấp dẫn đối với người dùng có nhu cầu học ngôn ngữ đa dạng. ● Học theo hướng dữ liệu: Duolingo sử dụng phõn tớch dữ liệu để theo dừi tiến trình của người dùng và điều chỉnh trải nghiệm học tập.

    ● Chất lượng của bản dịch nhờ nguồn lực cộng đồng: Độ chính xác và độ tin cậy của các bản dịch được tạo ra thông qua nguồn lực cộng đồng đã bị chỉ trích vì chúng không phải lúc nào cũng đáp ứng các tiêu chuẩn chuyên nghiệp. ● Cạnh tranh: Thị trường ứng dụng học ngôn ngữ có tính cạnh tranh cao, với một số lựa chọn thay thế cung cấp các cách tiếp cận và tính năng khác nhau.

    Quy trình thực hiện Bảng 1 Phân công công việc

    Code giao diện cho màn hình thống kê, màn hình xem danh sách người có thể gửi yêu cầu, danh sách bạn bè, gắn api cho tính năng đăng nhập, đăng ký. Code api cho tính năng quản lý tài khoản, quản lý bài tập, làm bài tập, tìm hiểu socket áp dụng cho tính năng nhắn tin. Code giao diện cho tính năng nhắn tin, gọi điện, làm bài tập, gắn api cho tính năng gửi yêu cầu, từ chối, chấp nhận yêu cầu, hủy kết bạn.

    Triển khai socket, áp dụng vào tính năng nhắn tin, thông báo cho người dùng, thống kê các hoạt động của người dùng. Code giao diện và gắn api cho tính năng quản lý tài khoản, quản lý bài tập, gắn api cho tính năng làm bài tập.

    CÔNG NGHỆ SỬ DỤNG 2.1 Frontend

      Spring Security cung cấp các tính năng xác thực (authentication) và phân quyền (authorization) cho các ứng dụng, cũng như hỗ trợ các tiêu chuẩn và giao thức bảo mật như HTTPS, OAuth2, JWT, LDAP, SAML, OpenID Connect. Khi một client gửi một request đến server, server sẽ xác thực người dùng và phân quyền để đảm bảo rằng người dùng chỉ có thể truy cập vào những tài nguyên mà họ được phép truy cập. Cơ chế hoạt động của Spring Security dựa trên cơ chế lọc (filter) và sự kiện (event) để can thiệp vào quá trình xử lý yêu cầu (request) và phản hồi (response) của ứng dụng web, tức là khi một yêu cầu được gửi đến ứng dụng web, nó sẽ được chuyển qua một chuỗi các bộ lọc (filter chain) do Spring Security quản lý.

      Với Spring Data JPA, chúng ta không cần phải viết các truy vấn SQL trực tiếp mà có thể sử dụng các phương thức được tạo tự động từ các Repository Interface để thực hiện các truy vấn đó. ● Hiệu suất cao: Có thể xử lý được tập dữ liệu lớn và đa dạng, đồng thời cung cấp các tính năng như phân vùng bảng, lập danh mục nâng cao và truy vấn đọc song song giúp tăng hiệu suất truy vấn. ● Dễ dàng xử lý hơn: Được sử dụng ở quy mô nền tảng internet nên JWT dễ dàng xử lý các kết nối có trên hầu hết các thiết bị của con người đặc biệt là các thiết bị di động cá nhân.

      ● API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác. Chức năng gợi ý dựa trên nhiều tiêu chí như sở thích, nghề nghiệp, mục tiêu học tập, trình độ hiện tại… Khi sử dụng các mạng xã hội không chuyên cho học tập hoặc tìm kiếm người luyện tập theo cách trực tiếp, người dùng sẽ thường gặp khó khăn trong việc tìm người phù hợp với tiêu chí của mình. Hiểu được điều đó, ứng dụng đề xuất những người bạn phù hợp dựa vào nhiều tiêu chí, từ đó người dùng có thể tiết kiệm rất nhiều thời gian để tập trung vào mục đích chính là luyện tập ngoại ngữ.

      ● Kết nối người dùng: sau khi gợi ý những người phù hợp, nếu người dùng mong muốn kết nối với một đối tượng cụ thể, ứng dụng hỗ trợ người dùng thực hiện việc này bằng cách gửi thông báo cho đối tượng và đợi phản hồi. ● Hệ thống hỗ trợ lưu lại các dữ liệu của người dùng để thống kê các hoạt động bao gồm số lượng bài tập đã làm, tỉ lệ chính xác, lượng tương tác với người dùng khác, …. ● Hỗ trợ cho người dùng trau dồi khả năng ngoại ngữ bằng các bài tập được cung cấp bởi admin, các cách tổ chức cũng như giao diện làm bài thân thiện sẽ giúp cho người dùng cảm thấy thoải mái và hứng thú làm bài hơn.

      ● Cập nhật các thông tin về tài khoản của người dùng như là tên, email, địa chỉ, các thông tin về trình độ hiện tại cũng như mục tiêu muốn đạt được để có thể gặp gỡ những người có cùng mục tiêu. Hệ thống sử dụng kết quả khảo sát, nghiên cứu hiện trạng và khảo sát các ứng dụng tương tự để tiến hành phân tích yêu cầu và chức năng của hệ thống, được biểu diễn bằng ngôn ngữ mô hình hoá (UML).

      Hình 3: ReactJS
      Hình 3: ReactJS

      THIẾT KẾ HỆ THỐNG 4.1 Use case Diagram

      Luồng phụ A1

      - Thông báo xác nhận được ẩn đi. - Kết thúc use case. 3) Đặc tả Use case khóa tài khoản Use case: Khóa tài khoản. Tác nhân chính: Admin. Mô tả ngắn gọn:. ã Admin muốn khúa tài khoản người dựng. Điều kiện tiên quyết:. ã Người dựng đăng nhập với tài khoản admin. Sự kiện kích hoạt: Bấm vào button có icon khóa ở dòng của user cần khóa tài khoản. Điều kiện thực hiện: Người dùng đăng nhập thành công vào hệ thống Luồng sự kiện chính:. ã Hiển thị thụng bỏo xỏc nhận khúa tài khoản người dựng. ã Admin bấm vào nỳt “Confirm”. ã Thụng bỏo bỏo xỏc nhận được ẩn đi. Hệ thống tải lại thụng tin của danh sách người dùng với tài khoản đã được khóa thành công. ã Nếu admin bấm vào nỳt “Cancel” chuyển sang luồng phụ A1. ã Kết thỳc use case. Luồng thay thế:. Luồng phụ A1. - Thông báo xác nhận được ẩn đi. - Kết thúc use case. 4) Đặc tả Use case xem chi tiết tài khoản. Sự kiện kích hoạt: Bấm vào button có icon con mắt ở dòng của user cần xem chi tiết tài khoản. Sự kiện kích hoạt: Bấm vào nút có icon xóa ở dòng thông tin của bài tập cần xóa.

      Sự kiện kích hoạt: Bấm vào icon gọi điện ở giao diện nhắn tin với người dùng khác.

      Luồng phụ A2

        Hiển thị các câu hỏi của bài tập được dùng để thực hành 9 Màn hình danh Màn hình tra cứu Hiển thị danh sách bạn bè có. Màn hình tra cứu Hiển thị danh sách các tài khoản có trong hệ thống.