π Deployment Architectureο
This section provides an overview of the deployment structure for the PROMPT 2 platform, illustrating how the system components are hosted, served, and interconnected in a production environment.

Deployment Diagram of the PROMPT 2 System. The system follows a client-server architecture with the core server running on a virtual machine alongside its database and mail service. The core client runs in the browser and dynamically loads microfrontends from course phase services. Blue indicates core components, green represents course phase service components, and grey denotes external tools or off-the-shelf systems.ο
π§± Core Componentsο
The PROMPT platform is based on a client-server architecture, with the core components forming the foundation of the system.
π₯οΈ Prompt Core Serverο
The Prompt Core Server is deployed on a virtual machine and includes:
A Golang-based application
A PostgreSQL database for persistent storage
A Postfix SMTP mail service for sending application-related emails
The Core Server communicates:
With the database using JDBC
With the mail service via SMTP
With client applications through REST APIs, routed by the Traefik reverse proxy
π Prompt Core Clientο
The Prompt Core Client is a React application running in the userβs browser. It provides the foundational user interface for students and instructors. This client dynamically loads the microfrontends provided by the different course phases services at runtime. These microfrontends are provided by course phase services and integrated directly into the Core Client interface.
π§© Course Phase Servicesο
Course phase services extend the core platform by adding custom functionality for individual phases such as the Intro Course or Matching.
These services can be build in two ways:
1. Client-Only Course Phase Servicesο
Some course phases consist only of a microfrontend (React application) without any supporting server application or dedicated storage. In this case:
The microfrontend is hosted by the Core Serverβs reverse proxy
The service interacts entirely with the Core Serverβs APIs and storage. This is only possible for course phase services, which do not require editors or students to store data.
2. Client-and-Server Course Phase Servicesο
Complex course phases may require their own server side logic and data storage. In this case, the course phase service provides a microfrontend which interacts with the custom course phase server-side component.