PHẦN MỞ ĐẦU 1.1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI Trước ngưỡng cửa của Chuyển đổi số, giáo dục đại học, đặc biệt tại các trường đại học kỹ thuật – công nghệ lớn, chắc chắn sẽ diễn ra sự chuyển biến mạnh mẽ trong sứ mệnh đào tạo: bên cạnh nhiệm vụ đào tạo, còn cần hướng đến sự đóng góp cho cộng đồng thông qua đào tạo chuyển đổi, trong đó đặc biệt là đào tạo kỹ năng số; thêm vào đó, để chuẩn bị cho nguồn nhân lực chất lượng cao về khoa học công nghệ ngay từ trên ghế nhà trường. Thì mô hình đào tạo truyền thống tại các trường đại học sẽ khó lòng có thể đáp ứng được một cách hiệu quả. “Online learning” chắc chắn sẽ là một lựa chọn phù hợp, nhưng bản thân mô hình đào tạo trực tuyến này sau vài chục năm phát triển cũng đã tồn tại dưới nhiều mô hình khác nhau. Năm 2020 là một năm đầy biến động trên toàn thế giới, ảnh hưởng mạnh tới tất cả các lĩnh vực, trong đó có giáo dục.
Trong bối cảnh dịch bệnh covid diễn biến phức tạp ở nhiều quốc gia, các trường học đã lựa chọn học trực tuyến là một trong những giải pháp tối ưu để giáo dục tiếp tục phát triển duy trì trong tình trạng diễn biến bệnh dịch gia tăng. Đào tạo trực tuyến là một trong những phương pháp học trực tuyến sử dụng kết nối mạng Internet để phục vụ học tập. Mô hình đào tạo trực tuyến giờ đây đã không còn xa lạ trên thế giới. Các nước trên thế giới đã triển khai các mô hình học trực tuyến.
Các doanh nghiệp, tổ chức trên thế giới, đặc biệt là các nước phát triển áp dụng đào tạo e-Learning ngày càng nhiều. Theo thống kê của Cyber Universities, e-Learning tại nước Mỹ được ứng dụng sôi nổi. Đất nước đứng đầu về giáo dục này đã nhanh chóng áp dụng mô hình đào tạo hiện đại này để nâng cao chất lượng đào tạo. Cho nên chúng em quyết định sẽ thực hiện đề tài xây dựng một nền tảng cho phép mọi người có thể tham gia học hỏi các khóa học với nhau, ngoài ra còn có thể chia sẻ kiếnn thực của mình thông qua các khóa học mà bản thân đăng lên(nếu có).
Đây sẽ là nơi “Chia sẽ kiến thức, kết nối đam mê” thúc đẩy tinh thần học hỏi, cầu tiến của các bạn học sinh, sinh viên, người đi làm muốn trau dồi bản thân, củng cố kiến thức.2 ĐỐI TƯỢNG NGHIÊN CỨU Trong bài khóa luận này, đối tượng nghiên cứu đề tài của chúng em là một ứng dụng web được phát triển bằng ngôn ngữ Java và sử dụng Framework như Spring Boot và sử dụng RESTful API, xây dựng giao diện với ReactJS kết hợp với Tailwind. Sử dung cơ sở dữ liệu MongoDB. Và desgin pattern như Builder Pattern.1 Giới thiệu ReactJS là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013, bản thân nó là một thư viện Javascript được dùng để để xây dựng các tương tác với các thành phần trên website. ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện người dùng hay UI.
Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng. Hơn nữa, để tăng tốc quá trình phát triển và giảm thiểu những rủi ro có thể xảy ra trong khi coding, React còn cung cấp cho chúng ta khả năng Reusable Code (tái sử dụng code) bằng cách đưa ra 2 khái niệm quan trọng bao gồm: JSX và Virtual DOM.2 Ưu điểm - Phù hợp với đa dạng thể loại website. - Tái sử dụng các Component. - Công cụ phát triển web hot nhất hiện nay.1 Giới thiệu Java là một ngôn ngữ lập trình được sử dụng rộng rãi để viết mã cho các ứng dụng web.
Ngôn ngữ này là lựa chọn phổ biến của các nhà phát triển trong hơn 2 thập niên. Hiện nay có hàng triệu ứng dụng Java đang được sử dụng. Java là một ngôn ngữ đa nền tảng, hướng đến đối tượng, lấy mạng làm trung tâm và có thể được sử dụng như một nền tảng. Đây là một ngôn ngữ lập trình nhanh, bảo mật, đáng tin cậy dùng để viết mã cho mọi thứ từ ứng dụng di động, phần mềm doanh nghiệp cho đến các ứng dụng dữ liệu lớn và công nghệ phía máy chủ.2 Ưu điểm - Tài nguyên học tập chất lượng cao 2 - Các chức năng và thư viện sẵn có - Sự hỗ trợ tích cực của cộng đồng - Công cụ phát triển chất lượng cao - Bảo mật 1.1 Giới thiệu Spring Framework là một framework phát triển ứng dụng dựa trên ngôn ngữ lập trình Java, được thiết kế để giúp tạo ra các ứng dụng doanh nghiệp phức tạp và hiệu quả.
Nó cung cấp một loạt các thành phần và mô-đun để giúp nhà phát triển xây dựng và quản lý các ứng dụng Java dễ dàng hơn, từ quản lý dữ liệu, xử lý logic kinh doanh, tạo giao diện người dùng cho đến quản lý tài nguyên và nhiều tính năng khác. Java Spring Boot là một framework thuộc Spring Framework giúp phát triển ứng dụng dựa trên ngôn ngữ lập trình Java, được thiết kế để giúp đơn giản hóa việc xây dựng các ứng dụng web và dịch vụ RESTful. Spring Boot cung cấp một cách tiếp cận tự động hóa nhiều công việc cơ bản trong quá trình phát triển ứng dụng, từ cấu hình và cài đặt ban đầu đến triển khai và quản lý ứng dụng.2 Ưu điểm - Spring Boot cho phép tự động cấu hình ứng dụng dựa trên thư viện và các tùy chọn cấu hình mặc định. Điều này giúp giảm thiểu khối lượng công việc liên quan đến cấu hình thủ công.
- Spring Boot tích hợp sẵn các thư viện và công nghệ phổ biến như Spring Framework, Hibernate, Thymeleaf, và nhiều thứ khác để giúp bạn dễ dàng xây dựng ứng dụng mà không cần cài đặt nhiều thứ bổ sung. - Spring Boot cung cấp các công cụ hỗ trợ cài đặt và triển khai ứng dụng, bao gồm cả việc tạo file thực thi (executable) cho ứng dụng.1 Giới thiệu RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.2 Ưu diểm - Giúp cho ứng dụng rõ ràng hơn - REST URL đại diện cho resource chứ không phải hành động - Dữ liệu được trả về với nhiều định dạng khác nhau như: xml, html, json…. - Code đơn giản và ngắn gọn - REST chú trọng vào tài nguyên của hệ thống 1.1 Giới thiệu MongoDB là một database hướng tài liệu (document), một dạng NoSQL database.
Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài liệu như JSON có một schema rất linh hoạt gọi là BSON. MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các các kích cỡ và các document khác nhau. Các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh.2 Ưu điểm - Hỗ trợ search bằng field, các phép search thông thường, regular expression searches, và range queries. - Indexing: bất kì field nào trong BSON document cũng có thể được index.
- Hiệu suất cao - Tính sẵn sàng cao – Nhân rộng - Khả năng mở rộng cao – Sharding - Năng động – Không có lược đồ cứng nhắc. - Linh hoạt – thêm / xóa trường có ít hoặc không ảnh hưởng đến ứng dụng.1 Giới thiệu Thì nó là một utility-first CSS framework, nó cũng giống như Bootstrap, nó có những class built-in mà chúng ta có thể dùng. Tailwind CSS có nhiều các class bao gồm các thuộc tính CSS khác nhau và quan trọng, chúng ta có thể dễ dàng mở rộng tạo mới ra những class bằng chính những class của nó. Giúp tạo layout và style cho giao diện người dùng, đã được sử dụng một cách hiệu quả trong dự án phát triển ứng dụng web của chúng tôi.
Tailwind không chỉ cung cấp cách tiếp cận linh hoạt và tối ưu hóa quy trình phát triển 4 1.2 Ưu điểm - Dễ dàng quản lý và sử đổi trong các dự án lớn. - Sử dụng các class được định nghĩa sẵn có khả năng tùy biến và mở rộng rất cao. - Các tên class được đặt dễ hiểu và thân thiện, nhìn vào class đó và có thể biết được class này nó đang style cái gì - Sử dụng Flex nên rất dễ chia Layout - Dễ cài đặt, dễ sử dụng, document của Tailwind rất dễ hiểu. - Tối ưu cho môi trường di động và hỗ trợ responsive dễ dàng.1Giới thiệu Design pattern là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày.
Đây là tập các giải pháp đã được suy nghĩ, đã giải quyết trong tình huống cụ thể. Những lập trình viên có thể áp dụng giải pháp này để giải quyết các vấn đề tương tự. Các vấn đề mà bạn gặp phải có thể bạn sẽ tự nghĩ ra cách giải quyết nhưng có thể nó chưa phải là tối ưu.2 Builder Pattern Builder là một mẫu thiết kế thuộc nhóm Creational Pattern – những mẫu thiết kế cho việc khởi tạo đối tượng của lớp Builder Pattern là một mẫu thiết kế được dùng để cung cấp một giải pháp linh hoạt cho các vấn đề tạo đối tượng (object) khác nhau trong lập trình hướng đối tượng. Cho phép bạn xây dựng các đối tượng phức tạp bằng cách sử dụng các đối tượng đơn giản và sử dụng tiếp cận từng bước.
Builder Pattern còn cho phép bạn tạo ra các kiểu thể hiện khác nhau của một đối tượng bằng cách sử dụng cùng một constructor code.3 Ưu điểm - Tăng tốc độ phát triển phần mềm - Code tường minh, dễ dàng team work 1.3 PHẠM VI NGHIÊN CỨU Trang web được thiết kế để để người sử dụng có thể tìm kiếm, lựa chọn, tìm hiểu 5 thông tin của các khóa học một cách dễ dàng nhanh chóng thông qua việc tìm kiếm các khóa học theo danh mục, từ khóa… và thêm các tính năng như theo dõi tiến độ học tập, đánh giá khóa học. Bên cạnh đó cũng cố thêm độ bảo mật của trang web thông qua các tiêu chuẩn bảo mật cơ bản như đăng kí thông qua OTP được gửi về mail,… 1.4 MỤC TIÊU CỦA ĐỀ TÀI Đề tài “Xây dựng website e-learning’ có các mục tiêu cần đạt được: - Xây dựng giao diện người dùng thân thiện, dễ nhìn, dễ thao tác. - Cung cấp các tính năng cơ bản cho người học, người chia sẽ kiến thức.