Rewrite Nachrichtenservice rubbergram

Datum 02/2018 – 06/2021
Projekt Rewrite einer Web-Applikation zum Versand von Einwegnachrichten rubbergram.com
Branche Social Web
Tätigkeit Idee, Design, Implementierung
Beschreibung Einfache Möglichkeit zum Versand von Einwegnachrichten, die beim Lesen automatisch gelöscht werden. Möglichkeit für Attachment als Bild.
Bei Erstellung der Nachricht wird ein Link generiert, der dem Empfänger mitzuteilen ist. Ruft der Empfänger den Link auf, so wird die Nachricht auf dem Server gelöscht, wodurch sie nur einmalig gelesen werden kann
Microservice Architektur: message store, authorization/authentication, frontend
Ausführung PC / Windows, Ubuntu Linux
IntelliJ IDEA
Java 11
Spring Boot 2, Spring Security, Spring JPA, Spring Cloud Sleuth, Spring Actuator
JPA2, Hibernate 5, HikariCP, Flyway 5, PostgreSQL 10
Jackson, MapStruct 2
Logback, Micrometer
AssertJ, Mockito
Thymeleaf 2, custom dialect, Bootstrap, jQuery
Features Versand von Tect und Bildern.
Benachrichtigung des Versenders beim Lesen der Nachricht.
Unterstützung mehrerer Sprachen.
Unterstützung von X-Forwarded-* headern zum Betrieb hinter einem reverse proxy zur SSL-Temrinierung.
Blockieren der Anzeige beim Versand des Links mittels Facebook Messenger, damit hiermit die Nachricht nicht zerstört wird.
Benutzerverwaltung; registrierte Benutzer können zusätzliche Features nutzen.
Benutzerregistrierung, recaptcha Integration.
Versand von multipart MimeMessage (plain text, html) eMails zur Aktivierung des Accounts nach Aktivierung und Lesebestätigungen. Hierzu wird der bereits vorhandene eMail Server als relay benutzt.
Feature switches mit unterschiedlichen Aktivierungsstrategien (Benutzergruppe, Spring-Boot Profil, Administratorfunktion). Integration in Thymeleaf durch custom dialect. Serverseitige Integration durch Annotation mittels AspectJ.
Administratorfunktionen: Übersicht der Nachrichten, aktuelle User sessions, Verwaltung von Registrierungen, Verwaltung von Feature switches für aktuelle User sessions (auch anonyme).
Connection pooling für message store und auth-service.
Distributed tracing.
Betrieb Metriken mittels Prometheus, Grafana
Logging mittels Filebeat, Elastic Search, Kibana
Docker compose zur Orchestrierung aller Container (PostgreSQL, message-store, auth-service, frontend, Filebeat, Elastic Search, Grafana, Kibana, Prometheus).
DevOp GitLab, GitLab CI/CD