Vergleichsportal für Kaufentscheidungen
Unabhängiges Vergleichsportal für 500.000 Produkte. Die Webanwendung bietet detailierte und aufbereitete Informationen aus Testberichten, Meinungen und technischen Daten sowie 1,5 Millionen tagesaktuelle Angebote von Online Shops.
Aufgaben und Setup
Wissens-Plattform Wald
Das Online Angebot bietet Möglichkeiten zum Wissens- und Erfahrungsaustausch rund um den Privatwald. Die Plattform bietet Unterstützung beim Schutz und dem Erhalt der Leistungsfähigkeit von Wäldern für Waldbesitzer und Forstwirtschaftliche Zusammenschlüsse.
Aufgaben und Setup
Digitales Branchenbuch für die Wald- und Forstwirtschaft
Das Branchenbuch ermöglicht es forstlichen Dienstleistern, sich professionell zu präsentieren. Waldeigentümer hingegen finden hier mit wenigen Klicks den regional anbietenden und passenden Ansprechpartner für ihre Waldfragen.
Aufgaben und Setup
Ausführliche Beschreibung
Die Applikation bietet eine Plattform für Dienstleister der Wald- und Forstwirtschaft, sich zu präsentieren und
detailierte Angaben zu den angebotenen Dienstleistungen sowie des Wirkungskreises zu machen. Waldbesitzer
können im Gegenzug gezielt für ihr Flurstück und ihr aktuelles Anliegen, etwa Beratungsleistungen oder
Durchforstung, einen regional und fachlich passenden Ansprechpartner finden.
Wirkungsbereiche der
Dienstleister können entweder nach kommunaler Gliederung (Gemeinden, Landkreise,
Bundesländer) über eine Kartenansicht visuell, oder, im Falle nicht kommunaler Gliederung, über einen WKT-
Upload direkt definiert werden. Mehrschichtige Kartenansichten werden über einen GeoServer ausgeliefert und
mithilfe OpenLayers angezeigt.
Die Suchtreffer werden anhand geografischer Flächenüberschneidungen aus
fachlich passenden Dienstleistern
ermittelt. Die entsprechenden DB-Queries wurden nativ über die PostGIS-Erweiterung implementiert.
Persistenz und Geschäftslogik des gesamten Systems sind innerhalb eines TomEE Applikation-Servers
vollständig gekapselt und ausschließlich per ReST-Schnittstelle für die Web-Applikation erreichbar. Für den
Zugriff auf den GeoServer wurden entsprechende Wrapper entwickelt, so dass die Geo-Dienste von außen nicht
erreichbar sind.
Insgesamt wurde großen Wert auf eine klare, schlanke Architektur und die vollständige
Java EE Konformität
gelegt, und somit bewusst auf komplexere Frameworks wie Spring verzichtet.
Die Web-Applikation wurde nach MVC entwickelt, die Controller-Schicht enthält hierbei ausschließlich
Darstellungslogik.
Die Übergabe an die Frontend-Entwicklung erfolgte in Form funktionaler JSF-Templates
ohne Layout.
Im Projekt wurde weitgehend nach Kanban entwickelt.
Technologien
Java 8 JPA / JTA JAX-RS OpenJPA Geronimo Transaction OpenWebBeans PostgreSQL TomEE Tomcat JSF MyFaces PrimeFaces JSTL Servlet API JSP EL PostGIS Geoserver GIS OpenLayers Apache Http Server AJP13 mod_jk mod_proxy Git Bitbucket Gradle Jenkins JIRA Apache Shiro Apache Velocity Apache POI Apache PDFBox
Service Portal für Forstbetriebsgemeinschaften
Web-Applikation mit Funktionen aus dem Bereich der Verwaltungsaufgaben von Forstbetriebsgemeinschaften, wie Mitglieder-, Flurstücks-, Dokumenten- und Dienstleisteradministration, Buchhaltung, forstliche Maßnahmen.
Aufgaben und Setup
Ausführliche Beschreibung
Das Portal bietet Verwaltungsmitgliedern forstwirtschaftlicher Zusammenschlüsse umfangreiche Unterstützung bei der Organisation ihres Tagesgeschäfts. Funktionen sind beispielsweise eine vollständige Mitglieder- und Waldflächen-Verwaltung inklusive Erbengemeinschaften und anteiligem Flächenbesitz, Polterverortung mittels Karten, Buchhaltung und Maßnahmen-Verwaltung, Serienbrieferstellung, vielfältige Export- und Import- Funktionen u.v.m.
Konzeptionelle Herausforderung war es, einheitliche Lösungen trotz bundesweit sehr vielfältiger und unterschiedlicher Anforderungen der Forstbetriebsgemeinschaften zu finden.
Persistenz und Geschäftslogik des gesamten Systems sind innerhalb eines TomEE Applikation-Servers vollständig gekapselt und ausschließlich per ReST-Schnittstelle für die Web-Applikation erreichbar. Insgesamt wurde großen Wert auf eine klare, schlanke Architektur und die vollständige Java EE Konformität gelegt, und somit bewusst auf komplexere Frameworks wie Spring verzichtet.
Datensicherheit spielte bei Entwicklung eine große Rolle, so wurden etwa Verlinkungen zu privaten Dokumenten oder Aktivierungs-Links mit zusätzlichen SHA-256 Token kombiniert, um unberechtigte Zugriffe weitestgehend zu verhindern.
Die Web-Applikation wurde nach MVC entwickelt, die Controller-Schicht enthält hierbei ausschließlich
Darstellungslogik. Die Übergabe an die Frontend-Entwicklung erfolgte in Form funktionaler JSF-Templates ohne
Layout.
Im Projekt wurde weitgehend nach Kanban entwickelt.
Technologien
Java 8 JPA / JTA JAX-RS OpenJPA Geronimo Transaction OpenWebBeans PostgreSQL TomEE Tomcat JSF MyFaces PrimeFaces JSTL Servlet API JSP EL PostGIS Geoserver GIS OpenLayers Apache Http Server AJP13 mod_jk mod_proxy Git Bitbucket Gradle Jenkins JIRA Apache Shiro Apache Velocity Apache POI Apache PDFBox
B2B/B2C-Service-Platform Veranstaltungen
Webbasierte Kooperations-Plattform für Eventveranstalter und Tourismus-Unternehmen sowie Ticketbuchung für Endkunden
Aufgaben und Setup
Ausführliche Beschreibung
Das Portal ermöglicht es kulturellen Einrichtungen und Event-Veranstaltern direkt mit Tourismus-Unternehmen zu kooperieren. Endkunden können sich so beispielsweise an der Hotel-Rezeption über aktuelle Veranstaltungen informieren und diese einfach reservieren, buchen und bezahlen.
Die Applikation war über viele Jahre gewachsen und sollte dahingehend optimiert werden, dass Erweiterung, Pflege und Fehlerbeseitigung künftig leichter und vorallem sicherer, d.h. ohne unerwartete Seiteneffekte, möglich sind. Redundante Code-Fragmente sollten zentralisiert und Funktionalitäten generalisiert werden. Hierfür wurde bespielsweise die Socket-Kommunikation mit einem externen System zentralisiert und auf eine einheitliche JAXB-Verwendung festgelegt, wodurch Geschäftslogik aus Domain-Klassen entfernt und die Klassen selbst über xjc generiert werden können. Viele hundert Zeilen syntaktisch identischen und mühsam händisch gepflegten Codes entfallen.
Die Performanz konnte durch den Verzicht auf faktisch unbenötigte Aktionen verbessert werden, etwa durch Verwendung von Singleton-Instanzen für Veranstaltungsdaten, die sich nur dann selbst automatisch aktualisieren, wenn tatsächlich neue Daten vorliegen.
Schließlich kann durch die Verwendung eines auf die Anforderungen speziell zugeschnittenen Mini-MVC- Systems Geschäftslogik aus den JSPs entfernt und durch zentrale, generische Funktionalität in den entsprechenden Controller-Klassen ersetzt werden.
Technologien
Java 7 Servlet API Sockets JSTL EL Tomcat XML XSD DTD JAXB JKD xjc Ant Git UML Designer
Liferay Medienshop für Bibliotheken
Medienshop für Bibliotheken mit über 160.000 Artikeln von über 2.300 Verlagen in verschiedenen Formaten, basierend auf Liferay.
Aufgaben und Setup
Ausführliche Beschreibung
Medienshop für Bibliotheken mit über 160.000 Artikeln von über 2.300 Verlagen in verschiedenen Formaten. Kunden des Shops sind Bibliotheken und Bibliothekenverbände, die sich im System anmelden, und neben den angebotenen Artikeln auch Informationen zu ihrem aktuellen Bestand sowie früheren Bestellungen und deren Bestellstatus erhalten.
Der Shop basiert auf einem Liferay-System, die einzelnen Komponenten wie Warenkorb, Bestellungsverwaltung, Suchfunktion etc. wurden jeweils als eigenständige Portlets integriert, deren interne und externe (Artikeldaten- Import, Bestellung/Auslieferung...) Kommunikation über JMS und ReST-Services (Spring, Spring Boot) erfolgt.
Im Projekt wurde agil und weitgehend scrum-konform entwickelt, Task-Management mittels JIRA mit GIT- Unterstützung, CI/CD über Jenkins-gesteuerte Maven-Builds.
Technologien
Java 7 JPA / JTA JAX-RS CDI Liferay 6 Spring Framework Spring Boot Postgres SQL JPQL Tomcat Maven Git Jenkins JIRA Apache Freemarker Apache Velocity
OpenCms-Cmis-Plugin für Eclipse
Das Plugin wurde für die Verwendung mit der OpenCms-Cmis-Schnittstelle erstellt und bietet unter anderem R-/W-Zugriffe auf ein oder mehrere OpenCms-VFS, Synchronisations- und Konfliktbearbeitungsfunktionen, einen OpenCms-Modul-Projekttyp und eine Deploy-on-Save- Funktion.
Aufgaben und Setup
Ausführliche Beschreibung
Um ein schnelleres und einfacheres Entwickeln von OpenCms-Modulen zu ermöglichen, wurde ein Eclipse- Plugin entwickelt, mit dessen Hilfe die Modul-Komponenten wie Template-JSPs, Formatter-JSPs, Content- Definitionsdateien, Resource-Bundles und auch Java-Klassen ohne gesondertes Deployment direkt in ein OpenCms publiziert werden können, so dass Änderungen mit dem Speichern in der IDE sofort auf dem (entfernten) System sichtbar sind.
Die Realisierung eines JIT-ClassLoaders für Tomcat wurde in ein separates Projekt ausgelagert (s. "Thread- basierter JIT-ClassLoader für Tomcat Server").
Das Plugin stellt keine speziellen Anforderungen an den lokalen Arbeitsbereich, alle Inhalte eines VFS können dadurch leicht in eine Versionsverwaltung integriert werden. Außerdem besteht die Möglichkeit, den lokalen Entwicklungsstand mit unterschiedlichen OpenCms-Instanzen, die in den Preferences verwaltet werden können, zu synchronisieren.
Weitere Features:
- Web-Projekt-Initialisierung als OpenCms-Modul-Projekt
- Konfliktbearbeitung / Compare Local - Remote
- Synchronisation zwischen verschiedenen OpenCms-VFS
- Auto-Deploy beim Speichern
- Bearbeiten der VFS-Resource-Properties in Eclipse
- Rekursive Touch-Funktion
Technologien
Java 7 OSGi Apache Chemistry CMIS Eclipse Plugins Eclipse SWT / JFace OpenCms Git
Shop / Kundenservice-Bereich eines Internet- und Mobilfunkproviders
Customer-Selfcare-Bereich mit zahlreichen Formularen zur Kunden-Stammdatenverwaltung und Produktkonfiguration, integriert als OpenCms-Modul in den Internetauftritt des Anbieters.
Aufgaben und Setup
Ausführliche Beschreibung
Der Internetauftritt des Kunden unterteilt sich grob in einen allgemeinen Bereich, einen Shop (Internet-, Telefonanschluss-, DigitalTV-, Mobilfunkprodukte) und einen Kundencenter-Bereich. Letzterer bietet über den Rechnungsdownload und die Stammdatenverwaltung hinaus zahlreiche weitere Optionen, wie zum Beispiel Produktkonfiguration, Telefonbucheintrag, SIM-Karten-Aktivierung, Anschlussverfügbarkeit oder DSL- Anbieterwechsel.
Kern des Projekts war die Anbindung des Kundenservice-Bereichs an die Java-Schnittstelle eines Drittanbieters, die Aufbereitung der gelieferten Rohdaten zur Anzeige, sowie die Übergabe der Daten aus den zahreichen Benutzerformularen an die Schnittstelle und die Interpretation und Behandlung der jeweiligen Antwort. Der Kundenservice-Bereich wurde als Modul in OpenCms integriert.
Für den Betrieb von Entwicklungs- und Testumgebungen wurde ein Mock-System entwickelt, das alle möglichen Antworten der Schnittstelle per Admin-Oberfläche simulieren und potentielle Fehler provozieren kann. Es wurde ein einfaches Framework implementiert, das es erlaubt, Schnittstellen-Funktionen unkompliziert und schnell zu testen.
Technologien
Java 6 OpenCms Servlet API JSTL EL Tomcat JBoss JQuery Maven Ant Git Subversion
Liferay-Medienshop
Medien-Portal mit einer großen Auswahl an eHörbüchern, eBooks, Games, Software und Videos sowie Bücher, DVDs, Blu-Rays und Audio-CDs.
Aufgaben
Flexibles Baukastensystem für Ärzte-Webanwendungen
Sammlung von OpenCms-Modulen, die ein äußerst schnelles Erstellen einer einfachen branchenspezifischen Website mit individuellem Layout erlauben.
Abo-Shop-System "Geschenkartikel für Hunde"
Unterstützung bei der Finalisierung des Projekts, Abarbeitung noch offener Tickets im Admin- und Shopbereich, Integration DHL- und Paypal-Anbindung.
Web-Portal eines Telekommunikationsunternehmens
CoreMedia-Portal mit Shop für DSL-, Festnetz- und Mobilfunk-Produkte
Internetpräsenz eines Automobilkonzerns
Erweiterungen in den Bereichen CRM, Car-Configurator, Gebrauchtwagensuche und Händlerverzeichnis
Service-Portal für Tarif-Vergleiche
Vergleich der Tarife von Strom-, Gas, Kfz-Versicherungs- und DSL-Anbietern auf Grundlage individueller Nutzer-Angaben.
Konfigurations- und Übersetzungs-Tool
Tool zur marktspezifischen Konfiguration und Übersetzung von Online-Diensten eines Automobil- Konzerns.