Programming Languages and Technologies Used

This software is a web-based application developed using modern server-side and client-side technologies. It follows established architectural principles and is designed to be flexible, maintainable, and suitable for deployment in different hosting environments.

1. Programming Languages

The application uses a combination of backend and frontend programming languages commonly used for modern web development.

  • PHP 8.5: used as the main server-side programming language. The backend is written using object-oriented programming principles.
  • JavaScript: used for client-side functionality and browser-based interaction. The JavaScript code uses modern features such as modules, Promises, and the Fetch API.
  • HTML: used to define the structure and content of the web pages.
  • CSS: used for layout, styling, and visual presentation of the user interface.

2. Application Architecture

The software is written using the MVC architectural pattern, which separates the application into distinct layers. This helps keep the code organized and easier to maintain.

  • Model: handles data structures, business logic, and communication with the database layer.
  • View: handles the presentation layer and the output shown to the user.
  • Controller: handles user requests, coordinates application logic, and connects the model and view layers.

The backend code follows an object-oriented programming approach, allowing functionality to be organized into reusable classes and components.

3. Frontend Technologies

The frontend is built using standard web technologies and modern JavaScript development practices. JavaScript modules are bundled using Rollup, allowing the code to be organized during development and optimized for production.

  • Modern JavaScript with module-based code organization.
  • Use of Promises and the Fetch API for asynchronous browser communication.
  • Bundling of JavaScript modules using Rollup.
  • Compressed JavaScript files for improved loading performance.
  • Compressed CSS files for reduced file size and faster page rendering.

4. Database Technologies

The primary database system used by the software is MySQL. The database layer is implemented using PDO, which provides a consistent interface for working with databases from PHP.

The software has been designed with database flexibility in mind and can work with different database systems when the relevant queries and schema definitions are adapted.

  • MySQL: the primary supported relational database system.
  • Microsoft SQL Server: supported through PDO with adapted queries where required.
  • MongoDB: supported through adapted document-oriented data structures, schema design, and queries.

5. Deployment Environments

The application can be deployed on dedicated servers as well as on cloud-based infrastructure. It is suitable for Unix-like server environments and Linux distributions commonly used for web hosting and enterprise deployments.

  • Dedicated server deployment.
  • Cloud-based deployment.
  • Ubuntu Linux.
  • CentOS Linux.
  • AlmaLinux.
  • Rocky Linux.

AlmaLinux and Rocky Linux are suitable choices for enterprise-grade environments where long-term stability and compatibility are important.

Although the recommended deployment environment is a Linux-based server, the software may also be deployed on other compatible server platforms, including Microsoft IIS, provided that the required PHP, database, and web server configuration is available.

6. Summary

Overall, the software is built using widely adopted web technologies, follows the MVC architectural pattern, uses object-oriented backend development, and supports multiple database and deployment options. This makes the system flexible, portable, and suitable for different production environments.