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
- Database
- Hosting
- 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.
System
|
Tool/software
|
Operating System
|
Ubuntu Linux
|
CMS
|
WordPress CMS
|
LMS
|
Moodle
|
Server
|
Nginx HTTP Web Server
|
Database system
|
MySQL 8.0
|
Interoperability
|
Web Services - REST API
|
Caching and DDoS
|
CloudFlare
|
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.
CMS
WordPress CMS is a free and open source software for easy development of web applications and platforms. It incorporates elements such as a user-friendly “What You See is What You Get” (WYSIWYG) editor that allows easy and quick updating of website content. It supports easy posting of announcements and static pages and replaces the need to use HTML, CSS and JavaScript code.
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.
The platforms are available through a configuration file known as a Virtual Host (VHost). After identifying the address of the request, the code is forwarded to the PHP FPM Module, as mentioned above, where it is executed. If no PHP processing is required (in the case of JavaScript, CSS, plain HTML files, images), the file is served directly.
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.
Interoperability
The system may support connection with third party systems in the future, since, the platform uses Web Services, based on Representation State Transfer (REST API) architecture. Through the above web services, data exchange in JSON (JavaScript Object Notation) format is supported./p>
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.