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 |