Wir bekommen oft Fragen wie diese: „Structr sieht toll aus und so, aber was kann ich damit eigentlich machen?“, also habe ich beschlossen, einen Blogbeitrag zu schreiben, um diese Fragen zu beantworten.
Ein kleines Stück Geschichte
Für diejenigen, die die lange und kurvenreiche Geschichte von Structr nicht mitverfolgt haben: alles begann vor vier Jahren mit einem einfachen CMS, das auf der Graphdatenbank Neo4j basierte. Von da an wurde die Entwicklung durch viele verschiedene Projekte beeinflusst. Jedes Projekt hatte seine eigenen Anforderungen, und Structr ist die Essenz all der Dinge, die diese Projekte gemeinsam hatten.
Wofür wir Structr verwenden
Der einfachste Weg, diese Liste von Anwendungsfällen zu beginnen, ist vielleicht ein Blick auf die Projekte, die wir mit Structr durchführen, denn wir sind wahrscheinlich diejenigen, die es am besten kennen.
structr.org

Unsere Website, structr.org, basiert natürlich auf Structr. Das ist nicht ganz der „Basic CMS“ Anwendungsfall, den man erwarten würde, denn wir haben all die kleinen Dinge drin, die man für eine richtige Website braucht. Structr.org hat Blog-Artikel, Autoren, Bilder, Nachrichten, Feedback, Features und Kategorien, die alle mit dem Schema-Editor modelliert werden. Structr sendet sogar eine E-Mail, wenn ein neues Feedback-Objekt über das Feedback-Formular gepostet wird, unter Verwendung des untenstehenden einfachen Funktionsausdrucks (der natürlich auch im Schema-Editor deklariert ist). Diese Funktion ist in der Methode onCreate der Entität Message definiert (die der Kürze halber nicht im Screenshot abgebildet ist).
(
send_plaintext_mail(
'contact-form@structr.com',
'structr.com Contact Form',
'team@structr.com',
'Structr Team',
this.subject,
concat('Message from ', this.name, ' (', this.eMail, '): ', this.message)
)
)
structr.com
Structr.com ist die derzeitige Heimat des Structr-Hosting-Dienstes. Die Structr-Instanz, die den Hosting-Service betreibt, ist eines der fortschrittlichsten Structr-Projekte, die wir haben. Sie verwaltet alle gehosteten Instanzen über einen API-Client für den Cloud-Hosting-Anbieter und ein ssh-basiertes State-Machine-Protokoll, das die Structr-Instanzen auf jedem Server steuert. Die Benutzerverwaltung, die Zahlungen, die PayPal-Integration und die Hosting-Optionen sind alle mit Structr entwickelt worden, obwohl der meiste geschäftskritische Code natürlich in Java geschrieben ist.
docs.structr.org
http://docs.structr.org ist die Structr-Dokumentationsseite, die Rohinhalte von GitHub abruft und sie mit dem in Structr integrierten Markdown-Prozessor anzeigt, um die HTML-Dokumentation zu erstellen und anzuzeigen.
Structr unterstützt die folgenden Auszeichnungsdialekte:
- Markdown
- Textilien
- MediaWiki
- TracWiki
- Zusammenfluss
- AsciiDoc
Vor kurzem habe ich in einem Blog über die Migration unserer Dokumentationsinhalte zu GitHub berichtet.
Die Epresia-Empfehlungsmaschine

Epresia ist ein deutsches Start-up-Unternehmen, das Geschenkempfehlungen und andere Dienstleistungen rund um Geschenke für Freunde, Kollegen und Familienmitglieder anbietet. Structr betreibt die Empfehlungsmaschine hinter Epresia. Sie nutzt die Structr Java API und verlässt sich stark auf die flexiblen Konfigurationsmöglichkeiten des Structr REST Servers.
Das Bierdiagramm
Structr dient als Backend für eine mobile Anwendung, die von einem unserer Teammitglieder, Alexander Thiele, geschrieben wurde, der ein soziales Bier-Sharing/Empfehlungssystem namens Bier Graph entwickelt hat. Dies ist natürlich eher ein Anwendungsfall aus dem Freizeitbereich, aber es zeigt, dass Structr sehr gut für Backends von mobilen Anwendungen geeignet ist.
Andere Projekte
Es gibt viele weitere Projekte, von denen ich einige nur anonym erwähnen werde. Die Liste umfasst eine E-Learning-Plattform (Backend und Frontend), ein Redner- und Konferenzmanagementsystem (Backend und Frontend), einen Hotelkatalog und ein Reservierungssystem (Backend und Frontend), ein soziales Netzwerk (REST-Backend), ein weiteres Empfehlungsmaschinenprojekt (Backend) und vieles mehr. Structr ist sogar die Grundlage für unsere interne Projektmanagement-Lösung, die täglich wächst und sich weiterentwickelt, während wir sie nutzen.
Structr ist bei weitem die am besten integrierbare Software, die ich je benutzt habe.
Die Tatsache, dass der Structr REST-Server Zugriff auf alle Elemente der Structr-Benutzeroberfläche bietet, einschließlich Schema, Seiten- und Inhaltsinformationen, Benutzer usw. (geschützt durch fein abgestufte Zugriffskontrollregeln), ermöglicht einen beispiellosen Grad der Integration mit anderen Systemen und Skripten. Sie können Python, Bash-Skripte (curl, grep, awk, sed), usw. verwenden. Im Grunde die Werkzeuge Ihrer Wahl, um auf die Datenbank zuzugreifen, Daten, Benutzer, Schemainformationen usw. zu erstellen, zu ändern oder zu löschen. Structr ist leicht skriptfähig und eignet sich hervorragend für Webanwendungen im ROCA-Stil.
Beispiel
An diesem Wochenende habe ich Ansible eingerichtet, um die wachsende Zahl der gehosteten Instanzen besser verwalten zu können. Ansible ist ein ssh-basiertes Infrastruktur- und Konfigurationsmanagement-Tool, das fast keine Konfiguration auf den verwalteten Hosts erfordert. Wenn Sie mit Ansible vertraut sind: Die wichtigste Information ist das so genannte Inventar, das alle Hosts in Ihrer Umgebung auflistet und gruppiert. Da wir eine Liste der gehosteten Instanzen in unserer Structr-Hosting-Plattform haben, war es eine Sache von wenigen Minuten, ein JSON-Dokument vorzubereiten, das nur die für das Ansible-Inventar benötigten Informationen enthält, die ich dann an den Python JSON-Parser weitergegeben habe, um ein dynamisches Inventarisierungsskript zu erstellen:
#!/usr/bin/python
import json
import urllib2
# create the request and authorize it
url = urllib2.Request("http://localhost:8282/structr/rest/inventory")
url.add_header("X-User", "user")
url.add_header("X-Password", "password");
# load and parse the JSON document from Structr
data = json.load(urllib2.urlopen(url))
# remove id and type from the result
del data["result"][0]["id"]
del data["result"][0]["type"]
# print the result
print json.dumps(data["result"][0], indent=4)
Andere mögliche Anwendungsfälle
Ersetzen Sie das Unternehmens-Wiki
Structr ist der perfekte Ersatz für das ältere Wiki Ihres Unternehmens(wenn Sie alle unstrukturierten Daten aus ihm herausholen können). Sie können neue Datentypen erstellen, bestehende erweitern, neue Seiten, gemeinsame Bereiche usw. erstellen. Sie können mit einem Structr-basierten generischen „Informationsspeichersystem“ beginnen und es zu einer leistungsfähigen spezialisierten Geschäftslösung weiterentwickeln, die mit Ihren Anforderungen wächst.

Präsentieren und visualisieren Sie Ihre Daten
Erstellen Sie in wenigen Minuten spezialisierte Sichten auf Ihre Daten und verwenden Sie diese in Ihren Präsentationen. Natürlich können Sie die volle Leistungsfähigkeit von Cypher auch in Ihrer Structr-Anwendung nutzen.
Verwalten Sie Ihr Vermögen
Structr verfügt über einen integrierten FTP-Server, der den Zugriff auf Seiten, Dateien und Bilder in Ihrer Datenbank mit denselben feinkörnigen Zugriffskontrollen ermöglicht, die überall im System verfügbar sind.
Integrieren Sie Structr in Ihre Prozesse
Structr verfügt über eine leistungsfähige API zur Befehlsausführung, mit der Sie externe Tools und Skripte für die Datenverarbeitung und die Integration mit anderen Systemen ausführen können.
Testen Sie Ihre Entwürfe
Testen Sie neue Screendesigns in wenigen Minuten. Importieren Sie Ihr Design in Structr, verkabeln Sie es und sehen Sie, wie es mit Ihren Live-Daten aussieht.
Speichern Sie Ihre Berichtsdaten
Leiten Sie Ihre Berichtsdaten in Structr ein und analysieren Sie sie später. Sie können das Datenbankschema zur Laufzeit leicht anpassen, neue Attribute oder sogar neue Typen hinzufügen. Änderungen am Schema sind sofort in der REST-Schnittstelle verfügbar. Sie können Batch-Jobs schreiben, die Dinge organisieren oder die Daten periodisch auswerten.
tl;dr
Structr ist ein sehr flexibles System, das sich gut in bestehende Umgebungen integrieren lässt und mit dem Sie Ihre Daten auf noch nie dagewesene Weise speichern, analysieren, auswerten und visualisieren können, indem Sie die Macht des Graphen nutzen.
Kontaktieren Sie uns für weitere Informationen, besuchen Sie unsere Schulungsseite oder fordern Sie einen persönlichen Evaluierungsworkshop an.