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. net core [1] 2 do an 2. 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 do an [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 do an 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 do an 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 do an 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 do an - 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 do an 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 do an 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 do an 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 do an - 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 do an 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 do an 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 do an - 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 do an 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 do an 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 do an 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 do an 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 do an 1 id id Khóa chính 2 code String Mã trường học 3 name string Tên trường học 4 status boolean trạng thái 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 do an 1 Id String Khóa chính 2 name String Tên loại khóa học 3 status Boolean Trạng thái hoạt động Course.Course (id, name, CourseTypeId, Skill, NumberOfDayOfLearning, OrderIndex, NewPrice, OldPrice, Description, VideoName) Bảng 18: Chi tiết bảng dữ liệu course.