Technologies
This document outlines the main technologies and tools utilized in the Ulmexa platform, categorized by architectural layers and core functionalities.
🧱 1. Architecture Layers
➤ Frontend (Presentation Tier)
- Angular: TypeScript-based web application framework for building single-page apps.
- HTML/CSS: Markup and styling for web UI.
- Material Design / Tailwind CSS (optional): For modern UI components and design system.
- Keycloak JavaScript Adapter: For authentication integration.
➤ Backend (Application Tier)
- Spring Boot: Java-based framework used for developing the backend services in a monolithic structure.
- Spring Security + Keycloak: For authentication and authorization.
- Spring Data JPA (Hibernate): ORM for database persistence.
- RabbitMQ: Message broker used for queuing and retrying email/sms campaigns.
➤ Database (Data Tier)
- PostgreSQL: Relational database for storing all business and user data.
- MySQL: Used for the OpenStack service backend (Keystone, Nova, etc.)
☁️ 2. Infrastructure & DevOps
- OpenStack: For VPS provisioning, project isolation, and cloud orchestration.
- Docker: For containerizing services (e.g., Mailcow, RabbitMQ).
- Mailcow: Self-hosted mail server stack for email campaign support.
- Prometheus + Grafana: Monitoring and alerting.
- Keycloak: Identity and access management.
- Jenkins (optional): Continuous Integration/Continuous Deployment pipeline.
📡 3. Networking & Security
- Nginx: Reverse proxy and TLS termination.
- OpenVPN / WireGuard: Secure connection between OVH VPS and home OpenStack.
- Firewall Rules / Security Groups: Managed per OpenStack project for VPS users.
✉️ 4. Communication Layer
- SMTP (via Mailcow): Outgoing email for campaign delivery.
- Tracking Pixel: Embedded per recipient for email engagement tracking.
📦 5. Package & Build Tools
- Maven: Java build and dependency management.
- npm / Angular CLI: Frontend build tooling.
🧪 6. Testing
- JUnit: For unit testing backend components.
- Mockito: For mocking in backend tests.
- Karma + Jasmine: Angular unit testing.
- Postman: Manual API testing.
🛠️ 7. Others
- PlantUML: For generating architectural and user journey diagrams.
- VS Code / IntelliJ IDEA: Main development environments.