compow – Unser Unternehmensportal – Ein technischer Überblick

compow ist heute online gegangen, ein Portal für Unternehmen, bei dem Unternehmer ihre Firma oder ihre Firmen kostenlos vorstellen können.

Aber wie kann man ein solches System technisch aufbauen? Für technikinteressierte möchte ich das einmal kurz beschreiben.

Die Plattform

Beginnen möchte ich mit der Plattform. Die Website und alle Dienste, die sie benötigt, laufen auf FreeBSD 11. Nahezu alles ist in C++ geschrieben und setzt auf wxWidgets und der DSLib auf. Als Datenbank wird PostgreSQL genutzt.

Wir nutzen schon seit Jahren BSDs, allen voran FreeBSD und haben uns dementsprechend natürlich für dieses Betriebssystem entschieden. Darauf installiert ist die DSLib, eine interne Bibliothek, die viele „Probleme“ abstrahiert, wie beispielsweise den Datenbankzugriff oder auch die Websiteentwicklung, Sockets und vieles mehr. Sie nutzt ausgiebig wxWidgets.

Darauf aufbauend läuft ein Serverprogramm, welches die Kommunikation mit der Datenbank gewährleistet und sich um die Authentifizierung kümmert und über SSL mittels JSON mit den angehängten Programmen kommuniziert. Die Serversoftware ist sehr klein, da alle Funktionen über Shared Objects dynamisch hineingeladen werden. Somit ist der Austausch von Funktionen immer sehr einfach und eine Verteilung des Servers mit dedizierten Funktionen über mehrere Hardwareserver sehr leicht.

Die Website ist ein einfacher Client, der mit dem Server kommuniziert, selbst nicht viel Logik beinhaltet und hauptsächlich nur als Frontend eingesetzt wird. Nahezu die gesamte Logik übernimmt die Serversoftware. Auch die Website ist mit C++ entwickelt und nutzt HTML5, CSS3, JQuery und Bootstrap.

Damit wir die Datenbank einfach bearbeiten können, gibt es ein grafisches Administrationprogramm, welches ein handelsübliches wxWidgets-GUI-Programm ist. Dieses verbindet sich, genauso wie die Website, auch mit dem Server und kommuniziert per JSON über SSL.

Um die Stellenangebote zu importieren, haben wir eine kleine C++-Software geschrieben, die mittels CURL die jeweiigen XML-Feeds herunterlädt und dann per DSLib in die Datenbank schreibt. Das Programm wird nachts per Cron aufgerufen. Danach wird die Datenbank reorganisiert.

Dann gibt es noch ganz viele Hilfsprogramme, die für das ein oder andere da sind und Entwicklungszeit einsparen.

Die Entwicklungsumgebung

Wie entwickeln wir eigentlich? Die Frage lässt sich leicht beantworten: Hardcore (:

Die Hauptentwicklung findet auf Client- und Serversystemen unter FreeBSD statt. Als Compiler nutzen wir hauptsächlich Clang++. Git ist unser Versionsverwaltungssystem und als Editor kommt zu 99% VIM zum Einsatz. Als PostgreSQL-DB-Frontend nutzen wir pgadmin3. Bilder werden in Inkscape und Gimp erstellt und bearbeitet. gmake ist unser Buildsystem. Mit DSTesting wird unser Code getestet. Um komfortabel mit CSS arbeiten zu können, nutzen wir less (lessc).

Wenn Ihr Fragen habt, schreibt sie gerne in die Kommentare.

Viele Grüße

Thorsten

Schreibe einen Kommentar