CƠ SỞ LÝ THUYẾT
Tổng quan về ngôn ngữ lập trình PHP
PHP, viết tắt của Hypertext Pre Processor, là một ngôn ngữ lập trình phổ biến cho phát triển ứng dụng, đặc biệt là trong lập trình web Với khả năng nhúng dễ dàng vào HTML, PHP hiện chiếm hơn 70% tổng số trang web, bao gồm các trang của công ty như influxwebtechnologies và Monamedia, được xây dựng trên nền tảng WordPress Những ưu điểm nổi bật của PHP bao gồm tối ưu hóa cho ứng dụng web, tốc độ tải nhanh, cú pháp tương tự như C và JAVA, cùng với việc dễ học và thời gian phát triển sản phẩm ngắn hơn so với nhiều ngôn ngữ khác.
2.1.1 Ưu và nhược điểm của PHP
Ngôn ngữ lập trình này sở hữu nhiều tính năng nổi bật, mang lại nhiều lợi ích cho người dùng Tuy nhiên, giống như các ngôn ngữ lập trình khác, nó cũng có những ưu và nhược điểm riêng biệt mà người dùng cần lưu ý.
PHP được sử dụng miễn phí.
Cú pháp và cấu trúc của PHP tương đối dễ dàng.
Là ngôn ngữ thông dụng với các công ty hiện nay
PHP còn hạn chế về cấu trúc của ngữ pháp Nó không được thiết kế gọn gàng và không được đẹp mắt như những ngôn ngữ lập trình khác.
PHP chỉ có thể hoạt động và sử dụng được trên các ứng dụng trong web.
2.1.2 Ứng dụng thực tế của ngôn ngữ PHP
PHP là ngôn ngữ lập trình web phổ biến nhất hiện nay nhờ vào tính linh hoạt vượt trội, cho phép chèn mã PHP trực tiếp trong HTML hoặc viết thành các file riêng biệt Điều này giúp các lập trình viên dễ dàng quản lý và phát triển code trong các dịch vụ thiết kế website trọn gói của nhiều công ty lớn.
PHP là ngôn ngữ thiết kế web phổ biến nhất hiện nay nhờ khả năng tương thích với HTML5 và dễ dàng tích hợp vào mã nguồn Với nhiều ưu điểm như dễ học và ứng dụng cao, PHP phù hợp với nhiều đối tượng và mục đích website khác nhau Sự phát triển mạnh mẽ của các website sử dụng PHP và sự phổ biến của các hệ quản trị nội dung (CMS) như Joomla, Drupal và đặc biệt là WordPress càng khẳng định vị thế của PHP trong lĩnh vực thiết kế web.
PHP là ngôn ngữ lập trình phổ biến được sử dụng trong thiết kế web trọn gói hiện nay, nhờ vào khả năng linh hoạt, hiệu suất cao và cộng đồng hỗ trợ mạnh mẽ Những ưu điểm này đã giúp PHP trở thành lựa chọn hàng đầu cho các nhà phát triển web, vượt trội hơn so với các ngôn ngữ khác.
Tổng quan về Laravel
Laravel là một trong những framework PHP phổ biến nhất, áp dụng mô hình MVC (Model-View-Controller) Là một framework mã nguồn mở và miễn phí, Laravel giúp bạn tạo ra các sản phẩm chất lượng cao Việc giảm thiểu mã code mà vẫn đảm bảo tiêu chuẩn ngành sẽ giúp bạn tiết kiệm hàng trăm giờ phát triển.
Laravel là một framework PHP nổi bật nhờ việc tận dụng tất cả các tính năng mới nhất của PHP, điều mà các framework khác không làm được Với Laravel 5, người dùng có thể trải nghiệm nhiều tính năng tiên tiến như Namespaces, Interfaces, Overloading, Anonymous functions và cú pháp mảng ngắn gọn Nhiều hệ thống quản lý nội dung (CMS) nổi bật, từ đơn giản đến phức tạp, đã được phát triển trên nền tảng Laravel, bao gồm cả mã nguồn mở và thương mại.
Tài liệu của Laravel rất thân thiện với nhà phát triển, cung cấp hướng dẫn chi tiết cho tất cả các phiên bản Mỗi phiên bản đều đi kèm với tài liệu phù hợp, giúp người dùng hiểu rõ về phong cách lập trình, các phương thức và lớp trong Laravel.
Để tối ưu hóa trải nghiệm người dùng, các ứng dụng web cần tích hợp dịch vụ email để thông báo về các deal và offer mới, đồng thời cũng phải thông báo cho người dùng mới khi họ đăng ký Framework hỗ trợ API sạch với thư viện SwiftMailer, cung cấp các driver cho SMTP, Mailgun, SparkPost, Mandrill, chức năng "mail" của PHP, Amazon SES, và "sendmail", giúp gửi email qua các dịch vụ đám mây hoặc dịch vụ cục bộ.
The Laravel framework offers built-in support for popular cache backends such as Memcached and Redis, allowing for efficient data storage and retrieval Additionally, users have the flexibility to customize various cache configurations to suit their specific application needs.
Artisan là một công cụ dòng lệnh tích hợp giúp các nhà phát triển tiết kiệm thời gian khi thực hiện các nhiệm vụ lập trình lặp đi lặp lại Công cụ này cho phép tạo khung code và quản lý hệ thống cơ sở dữ liệu một cách hiệu quả Bên cạnh đó, Artisan hỗ trợ tạo các tệp MVC cơ bản và quản lý tài sản cùng với các cấu hình tương ứng của chúng.
Gói và nguồn lực sẵn có
Kết hợp npm package và bower package với Gulp và Elixir sẽ mang lại nhiều lợi ích cho việc sửa đổi tài nguyên Tích hợp này không chỉ giúp giải quyết các phụ thuộc mà còn trở thành nguồn đáng tin cậy nhất trong thế giới PHP.
Giảm chu kỳ phát triển sản phẩm là một lợi ích quan trọng, nhờ vào framework giúp tích hợp nhanh chóng và hiệu quả Bên cạnh đó, sự hỗ trợ từ cộng đồng lớn như Laracasts cũng góp phần không nhỏ vào việc rút ngắn thời gian phát triển.
Không hỗ trợ tính năng thanh toán
Nếu bạn không tự quản lý các khoản thanh toán, bạn sẽ cần tuân thủ các quy tắc PCI Việc sử dụng dịch vụ như Stripe và Paypal có thể giúp bạn giải quyết vấn đề này Bạn cũng có thể khám phá các trang web thương mại điện tử và xây dựng ứng dụng của mình từ các mẫu có sẵn, hoặc sử dụng thư viện từ các Framework để tích hợp các phương thức thanh toán.
Tuy nhiên, hầu hết các nhà giao dịch điện tử nên được nhúng bộ xử lý thanh toán của bên thứ ba nhằm thuận tiện hơn.
Việc chuyển đổi từ Laravel 4 sang 5 gặp khó khăn do thiếu sự liên tục giữa các phiên bản, dẫn đến khả năng cao là ứng dụng sẽ bị phá vỡ nếu bạn cố gắng cập nhật mã nguồn.
Một số thành phần trong framework có chất lượng chưa tốt, như dependency injection, thường gây ra sự phức tạp không cần thiết Hơn nữa, tài liệu hướng dẫn khá nặng nề, yêu cầu người dùng phải học hỏi nhiều trước khi có thể bắt đầu xây dựng ứng dụng.
Do đó, đây không phải là một lựa chọn tốt cho các nhà phát triển nghiệp dư.
Tuy nhiên, framework vẫn đang được cải thiện rất nhiều Phiên bản 5 đã tốt hơn nhiều với số lượng sai sót cũng ít hơn.
Khi nâng cấp ứng dụng di động hoặc website, các nhà phát triển cần lưu ý rằng một số nâng cấp có thể gặp vấn đề Đây không chỉ là thách thức riêng của Laravel mà còn của nhiều framework PHP khác Do đó, việc thực hiện các biện pháp phòng ngừa trước khi tiến hành nâng cấp là rất quan trọng.
Ứng dụng di động thường thiếu sự phong phú so với các trang web, vì việc tải lại toàn trang có thể gây nặng nề Do đó, các nhà phát triển web thường ưu tiên sử dụng các framework như backend JSON API để tối ưu hóa hiệu suất.
HTML
HTML, viết tắt của HyperText Markup Language, là ngôn ngữ dùng để tạo ra trang web, với mỗi trang được coi là một tài liệu HTML Tài liệu HTML được cấu thành từ các phần tử HTML, được định nghĩa bằng các cặp thẻ bao quanh bởi dấu ngoặc nhọn, thường bao gồm thẻ mở và thẻ đóng Nội dung cần đánh dấu bằng HTML sẽ được đặt bên trong cặp thẻ, ví dụ như Đây là chữ in đậm Tuy nhiên, một số thẻ đặc biệt không có thẻ đóng và dữ liệu được khai báo thông qua các thuộc tính, như thẻ .
Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi mở rộng là html hoặc htm.
HTML là ngôn ngữ đánh dấu siêu văn bản, có vai trò quan trọng trong việc xây dựng cấu trúc siêu văn bản cho website và khai báo các tệp kỹ thuật số như hình ảnh, video và nhạc Tuy nhiên, HTML không phải là ngôn ngữ duy nhất để tạo ra một website, mà chỉ đóng vai trò hình thành cấu trúc cơ bản cho nó.
HTML – Xây dựng cấu trúc và định dạng các siêu văn bản.
CSS – Định dạng các siêu văn bản dạng thô tạo ra từ HTML thành một bố cục website, có màu sắc, ảnh nền…
Javascript – Tạo ra các sự kiện tương tác với hành vi của người dùng (ví dụ nhấp vào ảnh trên nó sẽ có hiệu ứng phóng to).
HTML là bộ xương của website, đóng vai trò như khung sườn cho toàn bộ cấu trúc của nó.
Dù website sử dụng ngôn ngữ lập trình nào để xử lý dữ liệu, HTML vẫn là yếu tố cần thiết để hiển thị nội dung cho người truy cập.
CSS
CSS, viết tắt của Cascading Style Sheets, là một loại tệp văn bản có phần mở rộng css, trong đó chứa các câu lệnh CSS để định dạng và thiết kế trang web.
Mỗi một lệnh của CSS sẽ định dạng một phần nhất định của HTML ví dụ như: font của chữ, đường viền, màu nền, căn chỉnh hình ảnh…
Trước khi có CSS, thiết kế web gặp khó khăn trong việc phân tách giữa nội dung và phần trình bày Sự ra đời của CSS đã cho phép tách biệt hoàn toàn hai yếu tố này, giúp mã nguồn của trang web trở nên gọn gàng hơn và dễ dàng chỉnh sửa hơn.
CSS, được phát triển bởi W3C (World Wide Web Consortium) vào năm 1996, ra đời nhằm khắc phục hạn chế của HTML, vốn không được thiết kế để định dạng trang web hiệu quả.
Bạn chỉ có thể dùng nó để “đánh dấu” lên site.
Các thẻ như được giới thiệu trong HTML phiên bản 3.2 đã gây ra nhiều khó khăn cho lập trình viên do sự đa dạng về font chữ, màu nền và phong cách trên các trang web Việc viết lại mã cho trang web trở thành một công việc tốn thời gian và công sức Để khắc phục vấn đề này, CSS đã được W3C phát triển nhằm đơn giản hóa quy trình thiết kế web.
HTML và CSS có mối quan hệ chặt chẽ, trong đó HTML là ngôn ngữ đánh dấu nền tảng của website, còn CSS chịu trách nhiệm định hình phong cách và giao diện Hai yếu tố này không thể tách rời trong việc xây dựng một trang web hoàn chỉnh.
CSS về lý thuyết không có cũng được, nhưng khi đó website sẽ chỉ là một trang chứa văn bản mà không có gì khác.
CSS cho phép thiết lập quy tắc để xác định cách hiển thị nội dung của các phần tử Ví dụ, bạn có thể đặt nền trang thành màu kem, định dạng tất cả các đoạn văn bằng màu xám với kiểu chữ Arial, hoặc yêu cầu tất cả các tiêu đề cấp một có màu xanh lam, in nghiêng và sử dụng kiểu chữ Times.
“Html&Css” [6] của John Ducket).
Sự khác biệt giữa site có CSS và không có CSS rất dễ nhận biết.
Trước khi áp dụng CSS, tất cả các phong cách cần được tích hợp vào mã HTML Điều này có nghĩa là bạn cần phân tách để xác định các yếu tố như màu nền, màu phông chữ và cách canh hàng.
CSS cho phép bạn định kiểu mọi thành phần trong một file riêng biệt, giúp tạo phong cách trước và sau đó tích hợp file CSS vào đầu file HTML Điều này làm cho mã HTML trở nên rõ ràng và dễ quản lý hơn.
Tóm lại, CSS giúp bạn tránh việc lặp lại mô tả cho từng thành phần, tiết kiệm thời gian và làm cho mã nguồn ngắn gọn hơn, từ đó dễ dàng kiểm soát lỗi hơn.
JavaScript
JavaScript là ngôn ngữ lập trình phổ biến nhất trên thế giới trong suốt 20 năm qua.
Nó cũng là một trong số 3 ngôn ngữ chính của lập trình web:
HTML: Giúp bạn thêm nội dung cho trang web.
CSS: Định dạng thiết kế, bố cục, phong cách, canh lề của trang web.
JavaScript: Cải thiện cách hoạt động của trang web.
JavaScript nổi bật với nhiều ưu điểm, đặc biệt là trong các tình huống thực tiễn, giúp nó vượt trội hơn so với các ngôn ngữ lập trình khác Một trong những lợi thế lớn là không cần sử dụng compiler, vì trình duyệt web có khả năng biên dịch nó trực tiếp thông qua HTML.
- Dễ học hơn các ngôn ngữ lập trình khác.
- Lỗi dễ phát hiện hơn và vì vậy dễ sửa hơn.
- Có thể được gắn trên một số element của trang web hoặc event của trang web như là thông qua click chuột hoặc di chuột tới.
JS hoạt động trên nhiều trình duyệt, nền tảng…
Bạn có thể sử dụng JavaScript để kiểm tra input và giảm thiểu việc kiểm tra thủ công khi truy xuất qua cơ sở dữ liệu.
Nó giúp website tương tác tốt hơn với khách truy cập.
Nó nhanh hơn và nhẹ hơn các ngôn ngữ lập trình khác.
Mọi ngôn ngữ lập trình đều có khuyết điểm, đặc biệt là JavaScript, khi nó thu hút nhiều hacker và scammer tìm kiếm lỗ hổng bảo mật Những khuyết điểm này có thể tạo cơ hội cho những người có ác tâm lợi dụng.
Có thể được dùng để thực thi mã độc trên máy tính của người dùng
Nhiều khi không được hỗ trợ trên mọi trình duyệt.
Có thể bị triển khai khác nhau tùy từng thiết bị dẫn đến việc không đồng nhất.
Bootstrap
Bootstrap is a framework that includes HTML, CSS, and JavaScript templates for developing responsive websites It simplifies and accelerates the web design process by utilizing essential components such as typography, forms, buttons, tables, grids, navigation, and image carousels.
Bootstrap là bộ công cụ mã nguồn mở miễn phí giúp tạo mẫu website hoàn chỉnh Với các thuộc tính giao diện được định sẵn như kích thước, màu sắc, và độ cao, Bootstrap cho phép các designer sáng tạo sản phẩm mới một cách nhanh chóng và hiệu quả trong thiết kế giao diện website.
Bootstrap rất phổ biến và là một lựa chọn tối ưu trong thiết kế web.
Giữa muôn vàn ứng dụng thiết kế website hiện nay, Bootstrap vẫn có khả năng cạnh tranh cao là nhờ những đặc điểm nổi bật sau:
Bootstrap hoạt động dựa trên mã nguồn mở HTML, CSS và Javascript, do đó người dùng cần có kiến thức cơ bản về ba ngôn ngữ này để sử dụng Bootstrap hiệu quả Ngoài ra, các mã nguồn này cũng cho phép người dùng dễ dàng thay đổi và chỉnh sửa theo ý muốn.
Bootstrap được tạo ra từ các mã nguồn mở cho phép designer linh hoạt hơn.
Người dùng hiện có thể lựa chọn các thuộc tính và phần tử phù hợp cho dự án của mình Việc sử dụng CDN Bootstrap không chỉ giúp tiết kiệm dung lượng lưu trữ mà còn loại bỏ nhu cầu tải mã nguồn về máy.
Chất lượng sản phẩm đầu ra hoàn hảo.
Bootstrap là sản phẩm của những lập trình viên tài năng toàn cầu, đã được nghiên cứu và thử nghiệm kỹ lưỡng trên nhiều thiết bị Qua nhiều lần kiểm tra trước khi ra mắt, Bootstrap đảm bảo mang đến cho người dùng những sản phẩm chất lượng cao nhất Khi lựa chọn Bootstrap, bạn hoàn toàn có thể yên tâm về độ tin cậy và hiệu suất.
Bootstrap nổi bật với độ tương thích cao, hỗ trợ mọi trình duyệt và nền tảng, điều này rất quan trọng cho trải nghiệm người dùng Với hệ thống lưới (Grid System) và hai bộ tiền xử lý Less và Sass, Bootstrap mặc định hỗ trợ Responsive và ưu tiên giao diện trên thiết bị di động Bootstrap tự động điều chỉnh kích thước trang web theo khung browser, giúp phù hợp với màn hình của máy tính để bàn, tablet và laptop.
2.6.3 Cấu trúc và tính năng của Bootstrap
Cấu trúc gọn nhẹ khiến chức năng của Bootstrap trở nên linh hoạt.
Bootstrap là một bộ công cụ phát triển web bao gồm các tệp JavaScript, CSS và font đã được biên dịch và nén, giúp tối ưu hóa hiệu suất Được thiết kế theo dạng mô-đun, Bootstrap dễ dàng tích hợp với các mã nguồn mở phổ biến như WordPress, Joomla, và Magento Với nhiều chức năng nổi bật, Bootstrap mang lại sự linh hoạt và tiện ích cho việc phát triển giao diện web.
Bootstrap cung cấp cho người dùng một thư viện phong phú các thành phần cần thiết để xây dựng giao diện hoàn chỉnh cho website, bao gồm font chữ, typography, biểu mẫu, bảng, và hệ thống lưới.
Bootstrap cho phép bạn tùy chỉnh framework của website trước khi tải xuống và sử dụng nó tại trang web của khung.
Tái sử dụng các thành phần lặp đi lặp lại trên trang web.
Bootstrap được tích hợp jQuery Bạn chỉ cần khai báo chính xác các tính năng trong quá trình lập trình web của bạn.
Định nghĩa glyphicons nhằm giảm thiểu việc sử dụng hình ảnh làm biểu tượng và tăng tốc độ tải trang.
Tổng quan về cơ sở dữ liệu
Cơ sở dữ liệu (Database) là tập hợp dữ liệu được tổ chức có cấu trúc liên quan với nhau và được lưu trữ trong máy tính.
Cơ sở dữ liệu được thiết kế, xây dựng cho phép người dùng lưu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu.
Hệ quản trị cơ sở dữ liệu (CSDL) là phần mềm thiết yếu cho việc tạo lập và quản lý các cơ sở dữ liệu, cung cấp các cơ chế lưu trữ và truy cập dữ liệu theo các mô hình khác nhau Một số ví dụ tiêu biểu về hệ quản trị CSDL bao gồm SQL Server, Microsoft Access và Oracle.
2.7.1 Cơ sở dữ liệu MySQL
MySQL là hệ thống quản trị cơ sở dữ liệu mã nguồn mở, được biết đến với tên gọi Relational Database Management System (RDBMS), hoạt động theo mô hình client-server Trong mô hình này, máy tính chạy phần mềm RDBMS được gọi là client, và khi cần truy cập dữ liệu, chúng sẽ kết nối với máy chủ RDBMS RDBMS là phần mềm hoặc dịch vụ dùng để tạo và quản lý cơ sở dữ liệu, tập trung vào việc quản lý các mối liên hệ giữa chúng.
MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở được phát triển, phân phối và hỗ trợ bởi Oracle Corporation Tên gọi MySQL được lấy từ tên của con gái của người đồng sáng lập Monty Widenius Phần mềm này ban đầu được phát triển bởi công ty Thụy Điển MySQL AB.
1994 Tiếp đến năm 2008, MySQL bị mua lại bởi công ty công nghệ Mỹ SunMicrosystem.
MySQL là một hệ quản trị cơ sở dữ liệu phổ biến có thể cài đặt trên nhiều hệ điều hành như Windows, Linux và Mac OS Bên cạnh MySQL, còn có nhiều hệ quản trị cơ sở dữ liệu khác như Oracle, PostgreSQL và SQLite Cách phát âm chính thức của MySQL là MY-ES-KYOO-EL Nhiều ứng dụng web lớn như Facebook, Twitter, YouTube, Google và Yahoo! sử dụng MySQL để lưu trữ dữ liệu.
2.7.2 Phương thức hoạt động của MySQL
Trong một mạng máy tính, máy client giao tiếp với máy server, nơi mỗi client có thể gửi yêu cầu từ giao diện người dùng và nhận kết quả từ server Đối với MySQL, nó cung cấp nhiều câu lệnh phong phú để kết nối, yêu cầu và truy xuất dữ liệu cho trang web, bao gồm việc chỉnh sửa hàng trong một quan hệ, thêm, xóa và sửa đổi các đối tượng trong cơ sở dữ liệu, cũng như kiểm soát quyền truy cập dữ liệu và các đối tượng của cơ sở dữ liệu.
Client gửi yêu cầu SQL qua lệnh đặc biệt trên MySQL, và ứng dụng trên server sẽ phản hồi thông tin, trả về kết quả cho máy client.
2.7.3 Ưu nhược điểm của MySQL Ưu điểm
- Linh hoạt và dễ dùng Quá trình cài đặt tương đối đơn giản
MySQL mang lại hiệu năng cao, đáp ứng nhanh chóng và mượt mà cho cả những dữ liệu lớn, bao gồm big data từ các trang thương mại điện tử và các hoạt động kinh doanh nặng liên quan đến công nghệ thông tin.
Trong ngành công nghệ và dữ liệu, MySQL là một tiêu chuẩn phổ biến mà hầu hết người dùng đều đã tiếp xúc Việc sử dụng MySQL không chỉ giúp triển khai dự án nhanh chóng mà còn tạo cơ hội để thuê các chuyên gia dữ liệu có kinh nghiệm.
- An toàn Vấn đề an toàn luôn là vấn đề cực kì quan trọng trong ngành dữ liệu và MySQL đảm bảo được tiêu chuẩn bảo mật rất cao
Bên cạnh những ưu điểm nổi bật thì MySQL vẫn tồn tại những thiếu sót như
MySQL có thể bị khai thác để chiếm quyền điều khiển, mặc dù nó có khả năng quản lý dữ liệu lớn Tuy nhiên, MySQL không đủ mạnh để tích hợp quản lý dữ liệu khổng lồ và hệ thống cao, như trong các hệ thống siêu thị toàn quốc, ngân hàng, và quản lý thông tin dân số toàn quốc.
Tầm quan trọng của MySQL
- Là cơ sở dữ liệu tốc độ cao, ổn định nhất hiện nay trên thị trường.
- Độ bảo mật thông tin cao
- MySQL mặc dù có những tính năng cao nhưng sử dụng lại đơn giản, ít phức tạp
- Hoàn toàn miễn phí vì đây là một mã nguồn mở Tuy nhiên,trong trường hợp bạn cần được hỗ trợ từ MySQL, bạn vẫn phải trả phí.
- Được hỗ trợ từ công đồng vì rất nhiều thành viên
- Hoạt động trên nhiều hệ điều hành
PHÂN TÍCH VÀ THIẾT KẾ
Đặt vấn đề
Giáo dục đóng vai trò then chốt trong việc phát triển một đất nước thịnh vượng, thông qua việc đầu tư vào tri thức và kỹ năng sống của từng cá nhân.
Cuộc cách mạng 4.0 đã làm thay đổi toàn diện thị trường lao động, đặc biệt là về trình độ chuyên môn Điều này yêu cầu giáo dục phải đào tạo nguồn nhân lực có chuyên môn phù hợp để thích ứng với môi trường kỹ thuật mới.
Yêu cầu đổi mới trong giáo dục đã chuyển từ việc chỉ truyền tải kiến thức hàn lâm sang việc cung cấp cho người học những kỹ năng thiết yếu như kỹ năng thực hành, làm việc nhóm, tư duy sáng tạo và phản biện Cách mạng 4.0 trong giáo dục khuyến khích người học chủ động hơn trong việc tiếp thu kiến thức và thay đổi phương pháp học tập của mình.
Giáo dục ngày nay không chỉ giới hạn trong trường học và đại học, mà còn mở rộng ra hình thức giáo dục online Sự bùng nổ của các cơ sở giáo dục đòi hỏi các trường học và trung tâm cần có cách tiếp cận hiệu quả để thu hút học viên và phụ huynh Để nổi bật hơn so với các đối thủ và đáp ứng tối đa nhu cầu thông tin của người dùng, việc xây dựng website khóa học trở thành giải pháp hàng đầu.
Yêu cầu hệ thống
Website khóa học bao gồm:
Trang web được thiết kế cho hai đối tượng chính: học viên tham gia các khóa học thi kiểm nghiệm và quản trị viên quản lý nội dung website Giao diện dành cho quản trị viên cung cấp các công cụ cần thiết để theo dõi và điều chỉnh hoạt động của trang.
- Chức năng quản lý các khóa học tại trung tâm và các khóa học online.
- Quản lý các bài học online.
- Chức năng quản lý các đào tạo.
- Chức năng quản lý thông tin học viên.
- Chức năng quản lý nhân viên.
- Chức năng quản lý bài kiểm tra.
- Chức năng thống kê Ở giao diện học viên:
- Xem các khóa học tại trung tâm.
- Tiến hành đăng ký các khóa học tại trung tâm.
- Xem các khóa học online.
- Tiến hành thanh toán để sở hữu khóa học online
- Bình luận các khóa học đã sở hữu
- Tham khảo và làm các bài kiểm tra.
- Đăng ký, đăng nhập và quên mật khẩu.
Website giới thiệu khóa học được chia làm 2 phần:
Phần 1 dành cho học viên, học viên khi vào web giới thiệu khóa học có thể coi được thông tin các khóa học có đào tạo tại trung tâm đào tạo, bao gồm các thông tin : Tên khóa học, lịch khai giảng dự kiến, thời lượng học của khoá học, mục tiêu giảng dạy
Tất cả học viên muốn đăng ký khóa học tại trung tâm đều cần đăng nhập tài khoản; nếu chưa có, họ phải tạo tài khoản bằng thông tin cá nhân như họ tên, số điện thoại, email, địa chỉ, tên tài khoản và mật khẩu để trung tâm có thể liên lạc và tư vấn Thông tin về các khóa học trên website được sắp xếp theo lịch khai giảng gần nhất, trong khi những khóa học đã hết hạn đăng ký sẽ không hiển thị để tránh nhầm lẫn Ngoài ra, học viên có thể tìm kiếm khóa học bằng từ khóa tên khóa học nếu cần.
Trung tâm cung cấp các khóa học online, bao gồm cả miễn phí và có phí, giúp học viên nâng cao kiến thức Học viên có thể bắt đầu học ngay với khóa học miễn phí, trong khi khóa học có phí có thể được thanh toán qua hệ thống VNPAY Ngoài ra, trung tâm còn tổ chức các bài kiểm tra và khảo sát kiến thức để hỗ trợ học viên chọn lựa khóa học phù hợp.
Phần 2 dành cho quản lý (admin), người quản lý web có thể thực hiện các chức năng thêm sửa xóa đối với mục đào tạo, khóa học tại trung tâm, khóa học online, bài học và bài kiểm tra.Danh sách câu hỏi được nhập từ file Excel Ngoài ra, người quản lý chính có thể tạo tài khoản và phân quyền cho người dùng, xem thông tin các học viên đăng ký khoá học tại trung tâm, học viên mua khóa học online, thống kê doanh thu, khóa học và học viên,
Cả 2 phần quản lý và học viên đều có chức năng đổi mật khẩu.
Xem đào tạo Xem khóa học
Xem câu hỏi Xem bài kiểm tra
Xem bài học Xem khóa học
Phân quyền user Xóa đào tạo
Xóa khóa học Xóa câu hỏi
Xóa bài kiểm tra Xóa bài học
Danh sách học viên online Xóa user
Sửa đào tạo Sửa khóa học
Sửa câu hỏi Sửa bài kiểm tra
Sửa bài học Sửa khóa học
Danh sách học viên tại trung tâm Thêm user
Thêm đào tạo Thêm khóa học
Thêm câu hỏi Thêm bài kiểm tra
Thêm bài học Thêm khóa học
Quản lý học viên Quản lý user
Quản lý khóa học tại trung tâm
Quản lý danh sách câu hỏi
Quản lý bài kiểm Quản lý bài học tra online
Quản lý khóa học online
Quản lý website khóa học Đăng ký khóa học Kiểm tra kết quả
Tìm kiếm khóa học Làm bài kiểm tra
Thanh toán khóa học online Đăng nhập bằng Facebook
Xem khóa học Xem bài kiểm tra
Xem khóa học online Đăng nhập bằng tài khoản
Khóa học tại trung tâm Bài kiểm tra
Bài học online Khóa học online Đăng nhập
Mô hình nghiệp vụ của hệ thống
Sơ đồ phân rã chức năng
Hình 3 1: Sơ đồ phân rã chức năng trang quản lý Website khóa học
Hình 3 2: Sơ đồ phân rã chức năng trang chủ Website khóa học
Phân tích kiến trúc hệ thống và quy trình hoạt động của Website học lập trình trực tuyến cho phép chúng ta xây dựng các sơ đồ phân rã chức năng, như thể hiện trong hình 3.1.
3.2 Đây là các chức năng chính mà hệ thống cần có
3.3.1 Mô hình thực thể kết hợp ERD:
Hình 3 3: Sơ đồ ERD web khóa học SHTP
3.3.2 Đặc tả các quy trình nghiệp vụ:
- Học viên chọn khóa học mong muốn.
- Hệ thống hiển thị chi tiết khóa học.
- Học viên chọn bài học.
- Hệ thống chuẩn bị nội dung bài học.
Hình 3 4: Quy trình nghiệp vụ chọn khóa học
- Admin chọn thêm khóa học mới.
- Hệ thống hiển thị form thêm khóa học.
- Admin nhập thông tin khóa học mới sau đó nhấn nút đăng khóa học.
- Hệ thống kiểm tra tính hợp lệ của các thông tin về khóa học.
- Hệ thống hiển thị kết quả thêm khóa học.
Hình 3 5: Quy trình nghiệp vụ thêm khóa học mới
- Admin chọn khóa học mong muốn.
- Hệ thống hiển thị danh mục các bài học của khóa học.
- Admin chọn thêm bài học mới.
- Hệ thống hiển thị form thêm bài học mới.
- Admin nhập thông tin cho bài học mới.
- Hệ thống hiển thị kết quả thêm bài học.
Hình 3 6: Quy trình nghiệp vụ thêm bài học mới
- Học viên chọn bài test.
- Học viên làm bài test.
- Hệ thống chấm điểm học viên.
- Hệ thống thông báo kết quả test.
Hình 3 7: Quy trình nghiệp vụ làm bài test
- Admin chọn thêm bài test.
- Hệ thống hiển thị form thêm bài test.
- Admin nhập nội dung bài test và nhấn nút thêm bài test.
- Hệ thống phản hồi kết quả thêm bài test.
Hình 3 8: Quy trình nghiệp vụ thêm bài test mới
3.3.3 Mô hình hóa các lớp nghiệp vụ
Xác định các lớp nghiệp vụ
Hệ thống bao gồm các lớp nghiệp vụ sau:
- Lớp User biểu diễn các đối tượng người dùng trong hệ thống Người dùng trong hệ thống có thể là học viên, giáo viên hoặc admin.
Các thuộc tính của lớp User đại diện cho những thông tin quan trọng về người dùng mà hệ thống cần chú ý Dưới đây là bảng trình bày các thuộc tính User.
Bảng 3 1: Mô hình hóa lớp User
Tên thuộc tính Mô tả
User name Tên đăng nhập của người dùng
Password Mật khẩu của người dùng sẽ được sử dụng để hệ thống xác nhận khi người dùng đăng nhập vào hệ thống
Hoten Họ và tên của người dùng
Diachi Địa chỉ của người dùng
Email Địa chỉ email của người dùng, khi có các thông báo, tin tức mới hệ thống sẽ gửi đến người dùng thông qua địa chỉ email này
- Lớp khóa học mô tả đối tượng các khóa học của hệ thống.
- Các thuộc tính của lớp khóa học được thể hiện ở bảng dưới đây:
Bảng 3 2: Mô hình hóa lớp khóa học
Tên thuộc tính Mô tả
Mota Mô tả, giới thiệu về khóa học
- Lớp bài học mô tả các đối tượng bài học.
Bảng 3 3: Mô hình hóa lớp bài học
Tên thuộc tính Mô tả
Lythuyet Phần lý thuyết của bài học
- Lớp bài test thể hiện các bài test
- Các thuộc tính của bài test được thể hiện ở bảng dưới đây:
Bảng 3 4: Mô hình hóa lớp bài test
Tên thuộc tính Mô tả
Makh Mã khóa học chứa bài test
Noidung Nội dung bài test
DapAn Đáp án cho các câu hỏi của bài test
Lưu trữ dữ liệu trong MySql
3.4.1 Các thuộc tính dữ liệu bảng khoahoc
Bảng 3 5: Các thuộc tính dữ liệu bảng khóa học
STT Tên trường Kiểu dữ liệu Chức năng
3.4.2 Các thuộc tính dữ liệu bảng đào tạo
Bảng 3 6: Các thuộc tính dữ liệu bảng đào tạo
STT Tên trường Kiểu dữ liệu Chức năng
3.4.3 Các thuộc tính dữ liệu bảng bài test
Bảng 3 7: Các thuộc tính dữ liệu bảng bài test
STT Tên trường Kiểu dữ liệu Chức năng
1 id_test INT PRIMARY KEY
3.4.4 Các thuộc tính dữ liệu bảng danh sách câu hỏi
Bảng 3 8: Các thuộc tính dữ liệu bảng danh sách câu hỏi
STT Tên trường Kiểu dữ liệu Chức năng
1 id_cauhoi INT PRIMARY KEY
8 id_baitest INT FOREIGN KEY
3.4.5 Các thuộc tính dữ liệu bảng khóa học online
Bảng 3 9: Các thuộc tính dữ liệu bảng khóa học online
STT Tên trường Kiểu dữ liệu Chức năng
1 makh_onl INT PRIMARY KEY
3.4.6 Các thuộc tính dữ liệu bảng bài học online
Bảng 3 10: Các thuộc tính dữ liệu bảng bài học online
STT Tên trường Kiểu dữ liệu Chức năng
5 makh_onl VARCHAR(255) FOREIGN KEY
3.4.7 Các thuộc tính dữ liệu bảng học viên
Bảng 3 11: Các thuộc tính dữ liệu bảng học viên
STT Tên trường Kiểu dữ liệu Chức năng
3.4.8 Các thuộc tính dữ liệu bảng bình luận
Bảng 3 12: Các thuộc tính dữ liệu bảng bình luận
STT Tên trường Kiểu dữ liệu Chức năng
1 com_id INT PRIMARY KEY
3.4.2 Các thuộc tính dữ liệu bảng thanh toán
Bảng 3 13: Các thuộc tính dữ liệu bảng thanh toán
STT Tên trường Kiểu dữ liệu Chức năng
2 user_id INT PRIMARY KEY
3 makh_onl INT PRIMARY KEY
3.4.10 Các thuộc tính dữ liệu bảng đăng ký
Bảng 3 14: Các thuộc tính dữ liệu bảng đăng ký
STT Tên trường Kiểu dữ liệu Chức năng
3.4.11 Các thuộc tính dữ liệu bảng tài khoản học viên
Bảng 3 15: Các thuộc tính dữ liệu bảng tài khoản học viên
STT Tên trường Kiểu dữ liệu Chức năng
3.4.12 Các thuộc tính dữ liệu bảng tài khoản quản lý
Bảng 3 16: Các thuộc tính dữ liệu bảng tài khoản quản lý
STT Tên trường Kiểu dữ liệu Chức năng
3.4.13 Các thuộc tính dữ liệu bảng chi tiết quyền
Bảng 3 17: Các thuộc tính dữ liệu bảng chi tiết quyền
STT Tên trường Kiểu dữ liệu Chức năng
3.4.14 Các thuộc tính dữ liệu bảng quyền
Bảng 3 18: Các thuộc tính dữ liệu bảng quyền
STT Tên trường Kiểu dữ liệu Chức năng
Database Diagram
Hình 3 9: Sơ đồ database diagram.
TRIỂN KHAI CHƯƠNG TRÌNH
Các chức năng chính của hệ thống
Giao diện đăng nhập cho phép mỗi nhân viên sử dụng tài khoản cá nhân để truy cập vào hệ thống Để đăng nhập, người dùng cần nhập đầy đủ thông tin tên đăng nhập và mật khẩu, sau đó nhấn vào biểu tượng đăng nhập.
Hình 4 1: Giao diện đăng nhập admin
Sau khi đăng nhập thành công trả về giao diện Admin Dashboard
Hình 4 2: Giao diện quản lý của admin
4.1.3 Giao diện Thêm khóa học trung tâm
Khi nhấn nút "Thêm khóa học", giao diện thêm khóa học sẽ xuất hiện, cho phép admin nhập thông tin và hình ảnh cho khóa học, đồng thời cập nhật nội dung trên giao diện các khóa học.
Hình 4 3: Giao diện thêm khóa học
4.1.4 Giao diện danh sách khóa học trung tâm
Khi nhấn button Các khóa học giao diện sẽ trả về thông tin các khóa học.
Hình 4 4: Giao diện các khóa học
4.1.5 Giao diện sửa khóa học trung tâm
Khi nhấn button Các khóa học giao diện sẽ trả về giao diện sửa khóa học, cho phép chỉnh sửa thông tin khóa học và hình ảnh.
Hình 4 5: Giao diện sửa khóa học trung tâm
4.1.6 Giao diện thêm đào tạo
Khi nhấn button thêm đào tạo sẽ trả về giao diện thêm chương trình đào tạo Cho phép admin thêm các chương trình đào tạo của trung tâm.
Hình 4 6: Giao diện thêm chương trình đào tạo
4.1.7 Giao diện danh sách đào tạo
Khi nhấn button danh sách đào tạo gia diện sẽ trả về danh sách các chương trình đào tạo.
Hình 4 7: Giao diện danh sách đào tạo
4.1.8 Giao diện sửa đào tạo
Khi nhấn button sửa đào tạo diện sẽ trả về giao diện sửa chương trình đào tạo.
Hình 4 8: Giao diện sửa đào tạo
4.1.9 Giao diện thêm khóa học online
Khi nhấn button thêm khóa học online sẽ trả về giao diện thêm khóa học online, cho phép quản trị thêm thông tin và hình ảnh khóa học online.
Hình 4 9: Giao diện thêm khóa học online
4.1.10 Giao diện danh sách khóa học online
Khi nhấn button các khóa học online giao diện sẽ trả về danh sách các khóa học online.
Hình 4 10: Giao diện danh sách khóa học online
4.1.11 Giao diện sửa khóa học online
Khi nhấn button sửa khóa học online trả về giao diện sửa khóa học online, cho phép chỉnh sửa thông tin khóa học và hình ảnh khóa học online.
Hình 4 11: Giao diện sửa khóa học online
4.1.12 Giao diện các thêm bài học online
Khi nhấn button thêm bài học online sẽ trả về giao diện thêm bài học online, cho phép quản trị thêm thông tin và video bài học online.
Hình 4 12: Giao diện các thêm bài học online
4.1.13 Giao diện danh sách bài học online
Khi nhấn button danh sách bài học online giao diện sẽ trả về danh sách bài học online.
Hình 4 13: Giao diện các chương trình đào tạo
4.1.14 Giao diện sửa bài học online
Khi nhấn button sửa bài học online trả về giao diện sửa bài học online, cho phép chỉnh sửa thông tin khóa học và video bài học online.
Hình 4 14: Giao diện sửa bài học online
4.1.15 Giao diện thêm bài kiểm tra
Khi nhấn button thêm bài kiểm tra sẽ trả về giao diện thêm bài kiểm tra, cho phép quản trị thêm thông tin bài kiểm tra.
Hình 4 15: Giao diện thêm bài kiểm tra
4.1.16 Giao diện danh sách bài kiểm tra
Khi nhấn button danh sách bài kiểm tra giao diện sẽ trả về danh sách bài kiểm tra.
Hình 4 16: Giao diện danh sách bài kiểm tra
4.1.17 Giao diện danh sách câu hỏi
Khi nhấn button danh sách câu hỏi giao diện sẽ trả về danh sách câu hỏi.
Hình 4 17: Giao diện danh sách câu hỏi
4.1.18 Giao diện thêm câu hỏi thành công
Khi nhấn nút chọn tệp, quản trị viên sẽ chọn file Excel chứa danh sách câu hỏi Sau đó, họ cần nhấn nút "Nhập file Excel" để tiến hành nhập câu hỏi vào hệ thống Cuối cùng, để xuất danh sách câu hỏi, hãy nhấn nút "Xuất file Excel".
Hình 4 18: Giao diện thêm câu hỏi thành công
Khi nhấn button thêm user giao diện sẽ trả về thêm user cho phép admin thêm các user mới.
Hình 4 19: Giao diện thêm user
4.1.20 Giao diện danh sách user
Khi nhấn button danh sách user giao diện sẽ trả về danh sách các user.
Hình 4 20: Giao diện danh sách user
4.1.21 Giao diện phân quyền user
Khi nhấn button phần quyền user sẽ trả về giao diện phân quyền cho các user.
Hình 4 21: Giao diện phân quyền user
4.1.22 Giao diện thông tin các học viên tại trung tâm
Khi nhấn button Thông tin các học viên giao diện sẽ trả về thông tin các học viên của trung tâm.
Hình 4 22: Giao diện thông tin học viên tại trung tâm
4.1.23 Giao diện thông tin các học viên online
Khi nhấn button Thông tin các học viên giao diện sẽ trả về thông tin các học viên mua khóa học.
Hình 4 23: Giao diện thông tin học viên online
4.1.24 Giao diện đổi mật khẩu admin
Khi nhấn button đổi mật khẩu, giao diện sẽ trả về form đổi mật khẩu cho admin
Hình 4 24: Giao diện đổi mật khẩu admin
Khi nhấn button đăng xuất hệ thống sẽ hỏi bạn muốn đăng xuất hay không?
Hình 4 25: Chức năng đăng xuất
4.1.26 Giao diện trang chủ web khóa học
Hình 4 26: Trang chủ Website khóa học SHTP
4.1.27 Giao diện đăng nhập của học viên
Khi nhấn nút Sign in ở trang chủ sẽ trả về giao diện đăng nhập user.
Hình 4 27: Giao diện đăng nhập user
4.1.28 Giao diện đăng nhập thành công của học viên
Khi nhấn nút Sign in ở trang chủ sẽ trả về giao diện đăng nhập user.
Hình 4 28: Giao diện đăng nhập user thành công
4.1.29 Giao diện đăng nhập bằng facebook
Khi nhấn nút biểu tượng facebook sẽ trả về giao diện đăng nhập facebook.
Hình 4 29 Giao diện khi nhấn button facebook
4.1.30 Giao diện đăng nhập facebook thành công
Hình 4 30 Giao diện đăng nhập facebook thành công
4.1.31 Giao diện đăng ký tài khoản user
Khi người dùng nhấn nút đăng ký, giao diện đăng ký sẽ hiển thị Sau khi nhập đầy đủ thông tin, người dùng chỉ cần nhấn nút đăng ký để tài khoản được lưu trữ.
Hình 4 31: Giao diện đăng ký user
4.1.32 Giao diện các khóa học tại trung tâm
Khi nhấn nút đào tạo sẽ trả về giao diện danh sách các khóa học tại trung tâm.
Hiển thị thông tin cơ bản của khóa học và mục tìm kiếm khóa học.
Hình 4 32: Giao diện các khóa học tại trung tâm
4.1.33 Giao diện tìm kiếm thành công
Khi nhập từ khóa và nhấn tìm kiếm, giao diện sẽ trả về kết quả tìm kiếm thành công.
Hình 4 33: Giao diện tìm kiếm thành công
4.1.34 Giao diện chi tiết khóa học tại trung tâm
Khi bạn nhấn nút "Xem chi tiết" trên giao diện khóa học, hệ thống sẽ hiển thị giao diện chi tiết của khóa học, bao gồm thông tin cụ thể về khóa học và danh sách các khóa học liên quan.
Hình 4 34: Giao diện chi tiết khóa học tại trung tâm
4.1.35 Giao diện gmail khi đăng ký thành công
Khi học viên đăng ký khóa học thành công sẽ tiến hành gửi mail cảm ơn cho học viên.
Hình 4 35: Gửi mail cảm ơn
4.1.36 Giao diện danh sách khóa học trực tuyến
Khi nhấn nút khóa học trực tuyến sẽ trả về danh sách các khóa học trực tuyến.
Hiển thị thông tin và giá của khóa học online.
Hình 4 36: Danh sách các khóa học trực tuyến
4.1.37 Giao diện chi tiết khóa học online
Khi nhấn vào khóa học online sẽ trả về giao diện chi tiết khóa học online Hiển thị thông tin chi tiết của khóa học online.
Hình 4 37: Giao diện hiển thị khóa học chưa thanh toán
Hình 4 38: Giao diện hiển thị khóa học miễn phí
Hình 4 39: Giao diện hiển thị khóa học đã thanh toán
4.1.38 Giao diện thanh toán khóa học online bằng VNPAY
Khi khóa học online có phí sẽ yêu cầu học viên thanh toán để sở hữu khóa học
Hình 4 40: Giao diện thanh toán VNPAY
Hình 4 41: Giao diện nhập thông tin VNPAY
Hình 4 42: Giao diện nhập mã xác thực OTP
Hình 4 43: Hình ảnh thông tin đơn hàng
4.1.39 Giao diện danh sách giảng
Khi nhấn vào button học ngay sẽ hiển thị giao diện các bài giảng của khóa học online.
Hình 4 44: Giao diện danh sách bài giảng
4.1.40 Giao diện chi tiết bài học online
Khi nhấn vào bài học, người dùng sẽ được truy cập vào nội dung chi tiết của bài học online, bao gồm video bài giảng và lý thuyết liên quan Bên cạnh đó, bài học còn tích hợp chức năng bình luận, tạo cơ hội cho người học trao đổi và thảo luận về nội dung.
Hình 4 45: Giao diện bài học online
4.1.41 Giao diện bài kiểm tra
Khi nhấn vào bài kiểm tra tham khảo sẽ hiển thị ra danh sách câu hỏi để học viên trả lời.
Hình 4 46: Giao diện bài kiểm tra tham khảo
Giao diện kết quả bài kiểm tra tham khảo.
Hình 4 47: Giao diện kết quả bài kiểm tra
4.1.42 Giao diện quên mật khẩu
Khi người dùng nhấn nút "Quên mật khẩu" trên giao diện đăng nhập, hệ thống sẽ chuyển đến trang quên mật khẩu Tại đây, người dùng cần điền đầy đủ thông tin và nhấn "Gửi" để nhận email hướng dẫn đổi mật khẩu.
Hình 4 48: Giao diện quên mật khẩu
Check mail để lấy lại mật khẩu.
Hình 4 49: Hình ảnh email mật khẩu mới
4.1.43 Giao diện cập nhật thông tin học viên
Cho phép học viên chỉnh sửa thông tin cá nhân của bản thân.
Hình 4 50: Cập nhật thông tin học viên
4.1.44 Giao diện cập nhật thông tin học viên
Cho phép học viên xem thông tin các khóa học đã đăng ký.
Hình 4 51: Thông tin các khóa học đã đăng ký
4.1.45 Giao diện giới thiệu trung tâm
Hình 4 52: Trang giới thiệu trung tâm.