MỞ ĐẦU 1. Lý do chọn đề tài Ngày nay, cuộc sống xã hội ngày càng phát triển, hiện đại và tiến bộ hơn, đòi hỏi con người phải có đầy đủ kiến thức, kỹ năng để hội nhập, giúp ích cho bản thân, gia đình và xã hội. Từ đó, vai trò của việc học luôn được đề cao và chú trọng. Việc học ngày càng quan trọng thì cách tiếp cận việc học cũng quan trọng không kém.
Nhất là trong thời buổi hiện đại, con người có thể tiếp cận việc học với nhiều cách học khác nhau. Trong đó, không thể không nhắc đến phương pháp học trực tuyến đang phát triển và phổ biến trên thế giới. Chỉ cần một chiếc laptop hay điện thoại có kết nối Internet, người học hoàn toàn có thể học tập bất kì nơi đâu. Đây là một cách học nhanh chóng, dễ dàng, thuận tiện và tiết kiệm.
Chính bởi thấy được tầm quan trọng và những ưu điểm vượt trội của phương thức học trực tuyến, nhóm em quyết định chọn đề tài xây dựng trang web dạy học online. Học online hay còn gọi là E-learning (Electronic Learning) là một khái niệm mới được mọi người chú ý hiện nay. Có khá nhiều định nghĩa về E-learning. Hay theo quan điểm hiện đại, E-learning là sự phân phát các nội dung học sử dụng các công cụ điện tử hiện đại như máy tính, mạng vệ tinh, mạng Internet, Intranet trong đó nội dung học có thể thu được từ các website, đĩa CD, video, audio thông qua một máy tính hay TV; người dạy và người học có thể giao tiếp với nhau qua mạng dưới các hình thức như: email, thảo luận trực tuyến (chat), diễn đàn (forum), hội thảo video.
Ngoài E-learning một hình thức khác của việc học online là tự học qua mạng của các học sinh, sinh viên bằng các trang web học online miễn phí. Việc học online hiện nay trở nên phổ biến và dễ dàng tiếp cận đến mọi người, không những học sinh sinh viên mà còn hướng đến những đối tượng mong muốn cập nhật kiến thức, kĩ năng [1]. Mục tiêu đề tài Đề tài này thực hiện xây dựng hệ thống website dạy học, vận dụng tốt công nghệ RESTful API, Angular và React Native cho ứng dụng di động. Đề tài này có thể được sử dụng cho công việc quản lý khóa học online, tìm kiếm, đăng ký khóa học, trình bày nội dung bài giảng cùng với bài kiểm tra củng cố kiến thức với giao diện đẹp mắt, dễ dàng sử dụng, thao tác nhanh gọn vì có đầy đủ các chức năng cơ bản cho phép thực hiện công việc chính xác, an toàn.
Khoa ĐT CLC – ĐH SPKT TP.HCM |1 Khóa Luận Tốt Nghiệp 1. Đối tượng và phạm vi nghiên cứu 1. Đối tượng Đối tượng nhóm chúng em hướng đến là những người có nhu cầu học thêm các kiến thức mới, những người muốn chia sẻ những kiến thức hay và bổ ích cho mọi người và vẫn có thể kiếm thêm thu nhập cho bản thân, dẫn đến việc hệ thống website và ứng dụng dạy học online của chúng em ra đời 1. Phạm vi nghiên cứu Ứng dụng dành cho người đi làm và sinh viên học sinh không thể tham gia các khóa học chính thức, những người luôn bận rộn với công việc hằng ngày không có thời gian ngồi ở các trung tâm đào tạo hàng giờ liên tục từ ngày này qua tháng nọ, chỉ cần một chiếc laptop hoặc điện thoại thông minh bên mình họ có thể học mọi nơi , mọi lúc bằng cách truy cập vào website dạy học online 1.
Kết quả dự kiến đạt được 1. Phía người dùng 1. Phía người học Cho phép người học đăng ký, đăng nhập vào website để: ● Xem/chỉnh sửa thông tin cá nhân ● Tìm kiếm khóa học mong muốn ● Đăng ký và tham gia khóa học ● Đăng ký trở thành giảng viên ● Xem thông tin giảng viên ● Thanh toán khóa học đăng ký ● Xem thông tin thanh toán, xuất hóa đơn ● Thực hiện và xem lịch sử hoàn thành các bài kiểm tra ôn luyện ● Đánh giá (rating) khóa học ● Bình luận góp ý khóa học 1. Phía người dạy Cho phép người dạy đăng ký, đăng nhập vào website để: ● Xem/chỉnh sửa thông tin cá nhân Khoa ĐT CLC – ĐH SPKT TP.HCM |2 Khóa Luận Tốt Nghiệp ● Quản lý khóa học ● Quản lý bộ câu hỏi và các bộ đề ôn tập kiến thức ● Đăng ký và thanh toán khóa học khác bằng tiền kiếm được nhờ bán khóa học 1.
Phía người quản trị Cho phép người quản trị đăng nhập vào website để: ● Quản lý tài khoản người dùng ● Khóa tài khoản người dùng vi phạm ● Quản lý khóa học ● Vô hiệu hóa các khóa học không đạt yêu cầu/vi phạm ● Quản lý thu nhập ● Quản lý người dạy Khoa ĐT CLC – ĐH SPKT TP.HCM |3 Khóa Luận Tốt Nghiệp CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Tổng quan về ASP.NET Core ASP.NET Core là một framework luôn được cập nhật và hỗ trợ của Microsoft. Nó được thiết kế và cải tiến để trở nên nhanh chóng, linh hoạt và tương thích với nhiều nền tảng khác nhau với hiệu suất ngày càng được nâng cao. Trong báo cáo này, ASP.NET Core là một framework có thể được sử dụng để phát triển web với.
Nếu bạn có kinh nghiệm làm việc với MVC hoặc Web API trong một vài năm thì bạn sẽ nhận thấy những tính năng quen thuộc cũng như rất nhiều công cụ khác được phát triển để hỗ trợ người dùng [2]. Lịch sử phát triển ASP.NET đã được tin dùng và sử dụng từ nhiều năm bởi đội ngũ kỹ thuật viên đông đảo từ khắp nơi trên thế giới như 1 lựa chọn để phát triển các ứng dụng web. Kể từ đó, framework này đã trải qua quá trình thay đổi, cập nhật, nâng cấp đều đặn và cuối cùng đã đưa chúng ta đến với ASP.0 hậu duệ mới gần đây nhất của nó.NET Core không phải là phiên bản tiếp theo của ASP.6 ● Đó là một framework hoàn toàn mới, may mắn rằng nó một dự án side-by-side tương tự với mọi thứ mà chúng ta biết. ● Nó thực ra được viết lại trên framework ASP.6 hiện tại những kích thước nhỏ hơn và nhiều modular hơn [2].
Một số khái niệm ASP.NET Core là một web framework mã nguồn và được tối ưu hóa cho cloud để phát triển các ứng dụng web chạy trên nhiều nền tảng như Windows, Linux và Mac. Hiện tại, nó bao gồm MVC framework được kết hợp các tính năng của MVC và Web API thành một web framework duy nhất. ● Các ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên .NET Framework hoàn chỉnh. ● Nó đã được thiết kế để cung cấp một framework tối ưu cho các ứng dụng để triển khai tới cloud hoặc chạy on-premises.
● Nó bao gồm những modular với các thành phần tối thiểu, do đó bạn giữ được tính linh hoạt trong quá trình xây dựng các giải pháp của mình. ● Bạn có thể phát triển và chạy các ứng dụng đa nền tảng từ ASP.NET Core trên Windows, Mac và Linux [2]. Khoa ĐT CLC – ĐH SPKT TP.HCM |4 Khóa Luận Tốt Nghiệp 2. Ưu điểm của ASP.NET Core ASP.NET Core đi kèm với những ưu điểm sau: ● ASP.NET Core có một số thay đổi kiến trúc dẫn đến modular framework nhỏ hơn.NET Core không còn dựa trên System.
● Nó dựa trên một tập hợp nhiều yếu tố của Nuget packages. ● Điều này cho phép bạn tối ưu ứng dụng của mình chỉ cần những NuGet packages cần thiết. ● Lợi ích của diện tích bề mặt ứng dụng nhỏ hơn thì bảo mật chặt chẽ hơn, giảm dịch vụ, cải thiện hiệu suất và giảm chi phí [2]. Cải tiến của ASP.NET Core Với ASP.NET Core, bạn có thể nhận được các cải tiến sau: ● Xây dựng và chạy các ứng dụng ASP.NET Core đa nền tảng trên Windows, Mac và Linux.
● Được xây dựng trên .NET Core, hỗ trợ side-by-side app versioning. ● Công cụ mới giúp đơn giản hóa việc phát triển web hiện đại. Liên kết đơn các web stack như Web UI và API Web. ● Cấu hình dựa trên môi trường đám mây sẵn có.
● Được xây dựng dựa trên cho DI (Dependency Injection). ● Tag Helpers làm cho các Razor makup trở nên tự nhiên hơn với HTML. ● Có khả năng host trên IIS hoặc self-host [2]. Tổng quan về Restful API 2.
Restful là gì? REST (Representational State Transfer) là một kiểu kiến trúc được định nghĩa bởi Roy Fielding. Mục đích của REST là thiết kế các ứng dụng mạng phân tán sử dụng HTTP như là một giao thức tầng ứng dụng và nó là một mô hình kiến trúc thực sự cho web. Theo cách hiểu đơn giản, REST là một loạt hướng dẫn và dạng cấu trúc dùng cho việc chuyển đổi dữ liệu. Thông thường, REST hay được dùng cho ứng dụng web, nhưng cũng có thể ứng dụng vào dữ liệu phần mềm.
Khoa ĐT CLC – ĐH SPKT TP.HCM |5 Khóa Luận Tốt Nghiệp API là viết tắt của Application Programming Interface, phương thức kết nối với các thư viện và ứng dụng khác. Windows có nhiều API, và Twitter cũng có web API, tuy chúng thực hiện các chức năng khác nhau, với mục tiêu khác nhau. Nhìn chung, RESTful API là những API đi theo cấu trúc REST. Bản thân REST không phải là một loại công nghệ, mà là phương thức tạo API với nguyên lý tổ chức nhất định.
Những nguyên lý này nhằm hướng dẫn lập trình viên tạo môi trường xử lý API request được toàn diện hơn [3]. Nguyên tắc của Restful API Như một hệ quả tất yếu của quá trình phức tạp ngày càng lớn của các dịch vụ web lớn nên RESTful đã được đưa ra như là một giải pháp để thay thế việc thực hiện triệu gọi từ xa (RPC) thông qua web. Web dựa vào tài nguyên, nhưng các dịch vụ web lớn lại không dựa vào tài nguyên. Web dựa vào URI và liên kết nhưng các dịch vụ web lớn lại không dựa vào chúng.
Web dựa vào HTTP và các tính năng của nó, nhưng các dịch vụ web hầu như không dựa vào bất kỳ tính năng nào của HTTP. Vấn đề này không phải là các dịch vụ web lớn không nhận ra mà nó cảm thấy không nhận được lợi ích gì từ dịch vụ web hướng tài nguyên. Chúng không có khả năng đánh địa chỉ, không cache, kết nối không tốt. Chúng cũng không cần giao diện đồng nhất.
Chúng không được rõ ràng, hiểu được một vấn đề không giúp mình hiểu được vấn đề tiếp theo, trong thực tế chúng cũng có vấn đề khi tương tác với nhiều khách hàng cùng một lúc. REST là một kiểu kiến trúc cho hệ thống phân tán như World Wide Web.