Đồ án Tốt nghiệp: Xây dựng ứng dụng học tiếng Anh online - Hồ Ngọc Triết, UTE

Đồ án nghiên cứu tốt nghiệp xây dựng ứng dụng học tiếng anh online, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán kỹ thuật.

Chuyên ngành

Công nghệ Phần mềm

Người đăng

Ẩn danh

Thể loại

Graduation project

2020

79
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về đồ án xây dựng ứng dụng học tiếng Anh online

Ứng dụng học tiếng Anh online hiện đại đã trở thành giải pháp giáo dục không thể thiếu trong thời đại kỹ thuật số. Đồ án này được thực hiện tại Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, nhằm xây dựng một nền tảng học tập hiệu quả, đáp ứng nhu cầu của người học Việt Nam. Dự án sử dụng các công nghệ tiên tiến như .NET Core, Angular kết hợp với kiến trúc Microservice để tạo ra một ứng dụng mạnh mẽ, linh hoạt. Mục đích chính là cung cấp một platform học tiếng Anh trực tuyến với chất lượng cao, tương tác tốt, và dễ sử dụng cho người dùng đại chúng.

1.1. Định nghĩa và mục tiêu của dự án

Đồ án học tiếng Anh online nhằm phát triển một ứng dụng web toàn diện cho phép người dùng học tiếng Anh một cách hiệu quả. Mục tiêu bao gồm: cung cấp nội dung giáo dục chất lượng cao, tương tác trực tiếp với giáo viên, theo dõi tiến độ học tập, và tạo môi trường học tập thân thiện, hấp dẫn cho mọi lứa tuổi.

1.2. Ý nghĩa và tác động thực tiễn

Ứng dụng này giải quyết bài toán tiếp cận giáo dục chất lượng, đặc biệt ở các khu vực xa xôi. Ứng dụng học tiếng Anh trực tuyến mang lại sự linh hoạt về thời gian, địa điểm, và chi phí. Nó tạo cơ hội bình đẳng cho tất cả mọi người tiếp cận nội dung học tập với giao diện thân thiện và công nghệ hiện đại.

II. Các công nghệ và kiến trúc được áp dụng

Dự án xây dựng ứng dụng học tiếng Anh online sử dụng một stack công nghệ hiện đại, bao gồm .NET Core cho backend, Angular cho frontend, kết hợp với Docker để containerization. Kiến trúc Microservice cho phép hệ thống có tính mở rộng cao, dễ bảo trì và nâng cấp. RabbitMQ được sử dụng để giao tiếp bất đồng bộ giữa các microservice, đảm bảo hiệu suất tối ưu. MySQL làm cơ sở dữ liệu chính lưu trữ thông tin người dùng, khóa học, bài tập. Domain Driven Design (DDD) hướng dẫn quá trình thiết kế, đảm bảo code có cấu trúc rõ ràng, dễ hiểu.

2.1. Frontend và Backend technologies

Angular xây dựng giao diện người dùng tương tác cao, responsive trên mọi thiết bị. .NET Core phát triển backend API mạnh mẽ, xử lý logic nghiệp vụ phức tạp. Kết hợp này tạo ra ứng dụng học tiếng Anh online hiệu quả, với trải nghiệm người dùng mượt mà và tốc độ xử lý nhanh.

2.2. Kiến trúc Microservice và Domain Driven Design

Microservice chia ứng dụng thành các dịch vụ nhỏ độc lập, dễ mở rộng riêng biệt. Domain Driven Design tổ chức code theo miền kinh doanh, làm cho hệ thống ứng dụng học tiếng Anh trực tuyến dễ hiểu, bảo trì lâu dài, và thích ứng với thay đổi yêu cầu.

III. Quy trình thiết kế và phát triển ứng dụng

Quy trình phát triển ứng dụng học tiếng Anh online tuân theo một phương pháp có cấu trúc, bắt đầu từ khảo sát hiện trạng và xác định yêu cầu người dùng. Tiếp theo là giai đoạn thiết kế hệ thống, bao gồm thiết kế cơ sở dữ liệu, giao diện người dùng và kiến trúc phần mềm. Giai đoạn thực hiện (implementation) sử dụng các công nghệ đã nêu để xây dựng backend và frontend. Cuối cùng là giai đoạn triển khai và thử nghiệm ứng dụng trên môi trường production. Quy trình này đảm bảo chất lượng sản phẩm, đáp ứng đầy đủ nhu cầu người học.

3.1. Khảo sát và phân tích yêu cầu

Giai đoạn đầu tiên xây dựng ứng dụng học tiếng Anh online là khảo sát nhu cầu người dùng, phân tích thị trường hiện tại. Đội dự án thu thập feedback từ giáo viên, học sinh, xác định tính năng cần thiết. Mô hình hóa yêu cầu sử dụng UML usecase, đảm bảo hiểu rõ mong muốn của người dùng.

3.2. Thiết kế và triển khai hệ thống

Thiết kế hệ thống ứng dụng học tiếng Anh bao gồm thiết kế database schema, API endpoints, giao diện UI/UX. Triển khai backend trên .NET Core với Microservice, frontend trên Angular. Sử dụng Docker containerize các service, RabbitMQ xử lý message queue, đảm bảo tính toàn vẹn và hiệu suất hệ thống.

IV. Kết quả đạt được và hướng phát triển tương lai

Đồ án xây dựng ứng dụng học tiếng Anh online đã đạt được những kết quả đáng kể trong việc phát triển một nền tảng học tập toàn diện, đáp ứng yêu cầu thực tế của thị trường giáo dục hiện đại. Ứng dụng cung cấp các tính năng như khóa học tương tác, video bài giảng, bài tập trắc nghiệm, đánh giá tiến độ và chat với giáo viên. Hệ thống hoạt động ổn định, có khả năng mở rộng cao nhờ kiến trúc Microservice. Tuy nhiên, vẫn còn nhiều hạn chế như cần tối ưu hóa hiệu suất, thêm tính năng AI cho gợi ý cá nhân hóa, hỗ trợ đa ngôn ngữ.

4.1. Những thành tựu chính của dự án

Ứng dụng học tiếng Anh online đã thành công xây dựng một hệ thống hoàn chỉnh với kiến trúc hiện đại, an toàn, khả năng mở rộng. Đạt được giao diện thân thiện, hiệu suất tốt, hỗ trợ nhiều người dùng đồng thời. Đội dự án thành thạo các công nghệ .NET Core, Angular, Docker, RabbitMQ, Domain Driven Design, có khả năng làm việc nhóm hiệu quả.

4.2. Hạn chế và hướng phát triển tiếp theo

Hạn chế hiện tại bao gồm cần tối ưu hóa cơ sở dữ liệu cho quy mô lớn, thêm machine learning cho ứng dụng học tiếng Anh cá nhân hóa, hỗ trợ phát âm nhập nhằng. Tương lai có thể phát triển mobile app, tích hợp AR cho practice speaking, phát triển thêm nội dung khóa học chuyên sâu.

21/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.net core là một open-source mới và framework đa nền tảng (cross-platform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống như web apps, IoT và backend cho mobile. Ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên phiên bản đầy đủ của. Nó được thiết kế để cung cấp và tối ưu development framework cho những dụng cái mà được triển khai trên đám mây (clound) hoặc chạy on-promise. Nó bao gồm các thành phần theo hướng module nhằm tối thiểu tài nguyên và chi phí phát triển, như vậy bạn giữ lại được sự mềm giẻo trong việc xây dựng giải pháp của bạn.

Bạn có thể phát triển và chạy những ứng dụng ASP.NET Core đa nền tảng trên Windows, Mac và Linux. Hình 1: Tổng quan về Asp. Angular Angular là một khung ứng dụng web nguồn mở dựa trên TypeScript do Nhóm Angular tại Google và bởi một cộng đồng của các cá nhân và tập đoàn. Angular là một bản viết lại hoàn chỉnh từ cùng một nhóm đã xây dựng AngularJS Hình 2: Kiến trúc Angular [2] [2 – Tài liệu tham khảo số 2] 3.

Docker Docker là một dự án mã nguồn mở giúp tự động triển khai các ứng dụng Linux và Windows vào trong các container ảo hóa. Docker cung cấp một lớp trừu tượng và tự động ảo hóa dựa trên Linux. Hình 3: Kiến trúc docker 3 [3 – Tài liệu tham khảo số 3] 4. My SQL MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Hình 4: Kiến trúc My SQL [4 – Tài liệu tham khảo số 4] 5.

Microservice Microservice là một kỹ thuật phát triển phần mềm, một biến thể của kiến trúc hướng dịch vụ cấu trúc một ứng dụng như một tập hợp các dịch vụ được ghép lỏng lẻo. Trong kiến trúc microservice, các dịch vụ được xử lý tốt và các giao thức rất nhẹ 6. Domain driven design Domain - driven design là một cách tiếp cận trong việc xây dựng phần mềm phức tạp, sự phức tạp ở đây là những logic của lĩnh vực kinh doanh. Thuật ngữ đã được đưa ra bởi Eric Evans trong một cuốn sách cùng tên 7.

RabbitMQ 4 là một phần mềm môi giới tin nhắn nguồn mở, ban đầu đã triển khai Giao thức xếp hàng tin nhắn nâng cao và từ đó đã được mở rộng với kiến trúc trình cắm để hỗ trợ Giao thức nhắn tin hướng văn bản truyền phát, truyền tải từ xa MQ và các giao thức khác 5 CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 1. KHẢO SÁT HIỆN TRẠNG Đoàn Tình hình phát triển cực mạnh của internet và tình hình dịch bệnh COVID 19 nên việc truyền thống đang có xu hướng chuyển dần sang học online. Chi tiết về hệ thống như sau o Chức năng quản lý học viên: - Quản lý danh sách học viên: ▪ Thông tin danh sách học viên ▪ Các khóa học mà từng học viên đăng ký o Chức năng quản lý trường học o Danh sách trường học o Chức năng quản lý chuyên ngành o Chức năng quản lý loại khóa học o Chức năng quản lý cài đặt hệ thống o Chức năng quản lý email template o Chức năng học tập của học viên o Chức năng quản lý khóa học o Quản lý unit o Quản lý topic ▪ Quản lý câu hỏi review ▪ Quản lý câu hỏi practice 6 2. XÁC ĐỊNH YÊU CẦU 2.

Yêu cầu chức năng o Lưu trữ thông tin ▪ Thông tin học viên ▪ Thông tin chuyên ngành ▪ Thông tin trường học ▪ Thông tin loại khóa học ▪ Thông tin khóa học ▪ Thông tin chương học ▪ Thông tin bài học ▪ Thông tin các bài tập ▪ Thông tin học tập của học viên o Tìm kiếm/ Tra cứu ▪ Tra cứu thông tin user ▪ Tra cứu thông tin hoạt động ▪ Tra cứu thông tin khóa học ▪ Tra cứu thông tin học viên 2. Yêu cầu phi chức năng - Tốc độ tìm kiếm nhanh và chính xác - Tiết kiệm được thời gian, thu hẹp không gian lưu trữ, tránh thất lạc dữ liệu - Tốc độ xử lý các thao tác nhanh chóng và chính xác - Có thể thiết kế thêm các chức năng theo yêu cầu - Thời gian truyền tải nội dung giữa các thiết bị 7 - Trải nghiệm người dùng 3. MÔ HÌNH HÓA YÊU CẦU 3. Sơ đồ usecase tổng quan Hình 5:Sơ đồ usecase tổng quan 8 3.

Sơ đồ usecase chi tiết quản lý học viên Hình 6: Sơ đồ usecase chi tiết quản lý học viên 3. Sơ đồ usecase chi tiết quản lý khóa học Hình 7: Sơ đồ usecase chi tiết quản lý khóa học 9 3. Sơ đồ usecase chi tiết quản lý cài đặt hệ thống Hình 8: Sơ đồ usecase chi tiết quản lý cài đặt hệ thống 3. Mô hình hóa yêu cầu Bảng 1: Usercase Quản lý học viên Usecase “Quản lý học viên” - Xem tất cả thông tin học viên - Tìm kiếm - Thêm mới, chỉnh sưa học viên - Xóa Tác nhân kích hoạt Admin Tiền điều kiện Đã đăng nhập 10 Các bước thực hiện 1.

Mở tab “Quản lý học viên” 3. Chọn button “Danh sách học viên” và thực hiện Bảng 2: Usecase Quản lý trường học Usecase “Quản lý trường học” - Mô tả: - Xem tất cả các thông tin trường học. - Thêm mới, chỉnh sửa, tìm kiếm Tác nhân kích hoạt Admin Tiền điều kiện Đã đăng nhập Các bước thực hiện 1. Mở tab “Quản lý học viên” 3.

Chọn button “danh sách trường học” và thực hiện Bảng 3: Usecase Quản lý chuyên ngành Usecase “Quản lý chuyên ngành” 11 - Mô tả: - Xem tất cả các thông tin chuyên ngành. - Thêm mới, chỉnh sửa, tìm kiếm Tác nhân kích hoạt Admin Tiền điều kiện Đã đăng nhập Các bước thực hiện 1. Mở tab “Quản lý học viên” 3. Chọn button “Danh sách chuyên ngành” và thực hiện Bảng 4: Usecase Loại khóa học Usecase “Loại khóa học” - Mô tả - Danh sách loại khóa học - Tìm kiếm, Thêm, sửa Tác nhân kích hoạt Admin Tiền điều kiện Đã đăng nhập Các bước thực hiện 1.

Chọn button “Loại khóa học” và thực hiện 12 Bảng 5: Usecase Quản lý khóa học Usecase “Quản lý khóa học” - Mô tả: - Xem các thông tin khóa Tác nhân kích hoạt Admin Tiền điều kiện Đã đăng nhập Các bước thực hiện 1. Mở tab “Quản lý khóa học và bài học” 3. Chọn button “Toeic” và thực hiện Bảng 6: Usecase cài đặt hệ thống Usecase “Cài đặt hệ thống” - Mô tả: - Thông tin cài đặt của hệ thống - Thêm, sửa, xóa, tìm kiếm Tác nhân kích hoạt Admin 13 Tiền điều kiện Đã đăng nhập Các bước thực hiện 1. Chọn thanh menu “Cài đặt hệ thống” 3.

Nhấn button Cài đặt hệ thống Bảng 7: Usecase Danh sách khóa học của học viên Usecase “Danh sách khóa học” - Mô tả: - Hiển thị danh sách khóa học của học viên đã mua và chưa Tác nhân kích hoạt Student Tiền điều kiện Đã đăng nhập Các bước thực hiện 1. Nhấn vào Courses Bảng 8: Usecase Chi tiết khóa học Usecase “Chi tiết khóa học” 14 - Mô tả: - Xem thông tin chi tiết khóa học - Và xem nội dung bài học Tác nhân kích hoạt Student Tiền điều kiện Đã đăng nhập Các bước thực hiện 1. Chọn khóa học 3. Nhấn start trên khóa học Bảng 9: Usecase làm bài review trên bài học Usecase “Làm bài review trên bài học” - Mô tả: - Làm các bài tập của bài học và xem kết quả Tác nhân kích hoạt Student Tiền điều kiện Đã đăng nhập Các bước thực hiện 1.

Chọn khóa học 3. Chọn câu hỏi review 15 Bảng 10: Usecase Làm câu hỏi practice Usecase “Làm câu hỏi practice” - Mô tả: - Sau khi vượt qua số điểm của câu hỏi review thì sẽ làm tiếp practice Tác nhân kích hoạt Student Tiền điều kiện Đăng nhập Các bước thực hiện 1. Chọn khóa học 2. Nhấn câu hỏi practice Bảng 11: Usecase Đăng nhập Usecase “Đăng nhập” - Mô tả: - Đăng nhập vào hệ thống Tác nhân kích hoạt Admin/Người dùng 16 Tiền điều kiện Các bước thực hiện 1.

Vào màn hình đăng nhập 2. Điền username, password 3. Nhân Login 17 CHƯƠNG 3: THIẾT KẾ PHẦN MỀM 1. THIẾT KẾ HỆ THỐNG 2.

THIẾT KẾ CƠ SỞ DỮ LIỆU  Users (_id, username, password, status, createdDate, lastModifiedDate, email) Bảng 12: Chi tiết dữ liệu bảng User STT Thuộc tính Kiểu Ý nghĩa Ghi chú 1 _id ObjectId Mã tài khoản 2 username string Tên tài khoản 3 password string Mật khẩu Được hash để bảo mật 4 status Boolean Trạng thái hoạt động 5 createdDate Datetime Thời gian tạo 6 lastModifiedD Datetime Thời cuối cùng chỉnh sửa ate 7 email String Email 18  student (id, name, email, IdMajority, imageName, Job, Address) Bảng 13: Chi tiết bảng dữ liệu student STT Thuộc tính Kiểu Ý nghĩa Ghi chú 1 id id Khóa chính 2 name String Tên học viên 5 email String email 6 IdMajority String Id của chuyên ngành 7 ImageName String Tên image 8 Job String Tên công việc 9 Address String Địa chỉ  majority (id, code, name, status) Bảng 14: Chi tiết bảng dữ liệu majority STT Thuộc tính Kiểu Ý nghĩa Ghi chú 1 id id Khóa chính 2 code String Mã chuyên ngành 3 name String Tên chuyên ngành 4 status boolean trạng thái  school (id, name, code, status) Bảng 15: Chi tiết bảng dữ liệu students STT Thuộc tính Kiểu Ý nghĩa Ghi chú 19 Khóa chính 1 id id code String Mã trường học 2 name string Tên trường học 3 status boolean trạng thái 4  course.question (id, content, constructionText, ImageName, Answer, AnswerOf Student, AudioName, QuestionType, TopicId) Bảng 16: Chi tiết bảng dữ liệu course.question STT Thuộc tính Kiểu Ý nghĩa Ghi chú 1 id string Khóa chính 2 content String Nội dung 3 constructionTe String Hướng dẫn bằng text xt 4 ImageName string Tên hình 5 Answer string Câu trả lời 6 AnswerOfStud string câu trả lời của học viên ent 7 AudioName string tên audio 8 QuestionType number Loại câu hỏi 9 TopicId string khóa chính topic  course.couseType (id, name, status) Bảng 17: Chi tiết bảng dữ liệu Course.CourseType STT Thuộc tính Kiểu Ý nghĩa Ghi chú 20 Khóa chính 1 Id String name String Tên loại khóa học 2 status Boolean Trạng thái hoạt động 3  Course.Course (id, name, CourseTypeId, Skill, NumberOfDayOfLearning, OrderIndex, NewPrice, OldPrice, Description, VideoName) Bảng 18: Chi tiết bảng dữ liệu course.course STT Thuộc tính Kiểu Ý nghĩa Ghi chú 1 id String khóa chinh 2 Name String Tên khóa học 3 CourseTypeId String Khóa chính CourseType 4 Skill String Kỹ năng 5 NumberOfDay Int Số ngày học OfLearning 6 OrderIndex Int Thứ tự hiện thị 7 NewPrice decimal Giá mới khóa học 8 OldPrice decimal Giá cũ khóa học 9 Description String Tên mô tả 10 VideoName String Tên video  Course.Topic (id, name, coverName, UnitId, status, Description, Skill, ThumnailName, FileContentName) Bảng 19: Chi tiết bảng dữ liệu Course.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ