The architecture of the platform has been designed based on modern practices of implementing information portals as well as learning platforms.
The platform consists of the following distinct points:
- Content display system (Front-End)
- Content Management System – CMS
- Learning Management System – LMS
- User Management System
- System of protection against attacks (Distributed Denial of Service - DDoS) and response optimization through Caching.
By separating the platform into the above distinct points, easier adaptation to the final requirements of the project is achieved.
Platform Deployment Tools
The tools and software that have been used for the implementation of the platform are presented in the table below.
Nginx HTTP Web Server
Web Services - REST API
Caching and DDoS
The WordPress Content Management System (CMS) provides the ability to easily manage the information. It is possible to add, delete, verbally and visually modify the content in a way that is simple to understand for users with non-technical knowledge and skills, using a compatible Web Browser. The implementation has been carried out with WordPress version 6.
The NGINX application server is used as the web server. NGINX has been installed on the open source Linux operating system (specifically, the Ubuntu Server 22.04 Linux Distribution).
Platform data is stored in the relational database MySQL, which is the most widely used (worldwide) open source database.
Visual Content Design
Elementor is an add-on that has been used as a visual creation tool. Elementor is one of the most widespread visual management add-ons for websites of all sizes where, in a quick and simple way, it allows the page administrator to manage the visual structure and consistency of static pages.
Web Application Server
The NGINX web application server is one of the most used web servers. Through the available additional modules, it can be adapted to the needs of each application.
The PHP code (that is used for both WordPress and Moodle) is executed through the PHP FPM Module, which is a separate process (Daemon) that runs in the background. The code is forwarded for execution to the Daemon, and after that the Server Side Rendered HTML code is returned. PHP FPM supports parallel users’ service by assigning the request to a separate "Worker Thread", per request.
Database Management System
MySQL is the most widely used open source relational database management system, which can handle small and large workloads with multiple connected users. MySQL offers an easy and secure user interface that is designed to execute queries faster, and is characterized by its efficient management to avoid memory leaks. MySQL is supported on all known operating systems such as Windows, macOS and Linux.
Caching and DDoS
In order to protect the platforms from malicious Distributed Denial of Service (DDoS) attacks, CloudFlare (https://cloudflare.org/) is used as a Domain Name System Server (DNS Server). Cloudflare, through a specially designed Proxy Server, uses machine learning, request recognition and other technologies to identify malicious attacks and prevent them.
In this way, the actual IP address of the server is never exposed and therefore all requests (HTTP Requests) must pass through CloudFlare's Proxy Server, where the request is checked and, if necessary, the attack prevention pipeline is activated.
Moreover, static platform elements (HTML, CSS, JS files) are cached and served through CloudFlare's Content Distribution Network (CDN) in order to speed up and reduce unnecessary load on the server.