Videoreihe: Entwicklung einer Desktopsoftware für compow mit C++, Qt und SQLite Teil 1

Für das Projekt compow, welches ich damals 2016 entwickelt habe und jetzt gerade relaunche, nachdem es zwei Jahre abgeschaltet war, möchte ich die Desktopsoftware, die ursprünglich in wxWidgets geschrieben war, neu in Qt implementieren.

Eine Desktopanwendung für compow mit C++, Qt und SQLite
Eine Desktopanwendung für compow mit C++, Qt und SQLite

Die wxWidgets-Anwendung ist in die Jahre gekommen und das Deployment, vor allem für verschiedene Betriebssysteme, ist unglaublich aufwendig. Weiterhin habe ich eine Menge Code an compow geändert, so dass man ein größeres Refactoring durchführen müsste. Ich möchte sie also neuschreiben und dachte mir, dass ich den Vorgang aufnehme. Darum geht es hier in den Videos. Begleitet mich beim Entwickeln der neuen compow-Desktop-Version.

Und hierum handel es sich: Mit der Desktop-Version von compow hat man lokalen Zugriff auf alle in compow gespeicherten Firmenprofile und kann diese inklusive Branchen durchsuchen.

Es handelt sich um eine sehr einfach Software und im ersten Schritt soll sie auch ganz einfach entwickelt werden. Ich verzichte auf ORM und Persistensbibliotheken (hier geht es nur um ein paar wenige Queries), auf Patterns, und so weiter. Ich entwickle ganz klassisch, da es sich nur um ein Nebenprodukt handelt. So sah die alte Software aus:

Alte compow-Desktop-Software
Alte compow-Desktop-Software

Die SQLite-Datenbank nehmen wir vom alten Projekt. Dafür gibt es auch bereits ein Script, welches die notwendigen Daten aus der “echten” Datenbank herauszieht und in der SQLite-Datenbank speichert und Indices anlegt. Darum möchte ich mich nicht kümmern.

So sieht die Software aus, die wir in diesem ersten Teil implementiert haben:

Anfang der neuen Version
Anfang der neuen Version

Nicht schlecht, oder? In den nächsten Tagen machen wir weiter.

Hier geht es zum Video.

compow ist wieder online

2016 begannen, federführend unter GuG-IT GbR – Olena und Thorsten Geppert, die Arbeiten am Unternehmensportal www.compow.de. Irgendwann hatten wir das Projekt wieder eingestellt. Heute gibt es den kleinen Relaunch.

compow

Was ist neu?

Von der Usability her: nichts. Auch das Design ist gleich geblieben. Ein Problem war, dass die Website komplett über eine Art RPC-System mit dem Server kommunizierte, welches sehr langsam war. Das habe ich vollständig abgelöst. Die Website kommuniziert jetzt direkt mit dem Datenbankserver, was sie schneller macht und einfacher zu pflegen. Dafür fällt natürlich einiges an Flexibilität weg.

Man merkt, dass die Website um einiges schneller reagiert, als zuvor, allerdings ist sie in meinen Augen immer noch viel zu langsam. Daran arbeite ich.

Ansonsten gibt es erstmal nichts neues.

Was fehlt?

Einiges:

  1. Ich habe noch keine Kooperationen mit Stellenanzeigenvertreibern machen können, so dass die Stellenanzeigen leer sind. Ich arbeite aber zur Zeit daran, damit bald wieder etliche Stellen gesucht und gefunden werden können
  2. Das Desktopprogramm gibt es zur Zeit nicht. Daran arbeite ich:
    compow-Desktopsoftware

Ansonsten ist alles beim Alten. Ihr könnt eure Firma auf compow.de eintragen und damit Reichweite gewinnen. Probiert es einfach mal aus, denn es ist vollständig kostenlos.

YouTube-Kurztipp: WPStatistics mit C++, wxWidgets und DSLib aus MySQL auslesen und als Website anzeigen

Ich bin krank, kann momentan nichts sinnvolles machen, weil ich mich nicht konzentrieren kann und dachte mir, ich baue mal eine Website mit C++, um meine WPStatistics in vereinfachter Form anzusehen. Auch dachte ich mir: Warum nicht aufnehmen? Das habe ich getan.

WPStatistics mit C++, wxWidgets und DSLib aus MySQL auslesen und als Website anzeigen

Ich nutze dazu:

Vielleicht interessiert es ja jemanden, wie man einfach mit C++ eine Website bauen kann. Ich würde mich sehr über Feedback freuen.

Screenshot der Website
Screenshot der Website

Hier geht es zum Video.

Und hier geht es zum zweiten Teil (App-Entwicklung).

Hier geht es zum GitHub-Projekt.

Redmine-Reihe Nachtrag 2: Git-Repository anbinden

Als Entwickler wirst du dieses Feature lieben. Es ist problemlos möglich, Versionskontrollsysteme, bspw. Git, Subversion, usw. in eine Projekte innerhalb von Redmine einzubinden.

Git-Repository einbinden
Git-Repository einbinden

In diesem Video zeige ich dir, wie es geht.

Hier noch mein Update-Script:

#!/bin/sh

BACKUPPATH="/server/redminegit"
LOGFILE="${BACKUPPATH}/update.log"

date > "${LOGFILE}"

for dir in `find "${BACKUPPATH}/" -type d -depth 1 -not -path '*/\.*'`
do
	cd $dir
	echo $dir >> "${LOGFILE}"
	git pull 2>> "${LOGFILE}" >> "${LOGFILE}"
	echo "" >> "${LOGFILE}"
done

date >> "${LOGFILE}"

Und mein Cronjob:

SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/libexec:/usr/local/sbin/
HOME=/var/log

*/15 * * * * /server/redminegit/update

Hier geht es zur Playlist.

Hier geht es zum Video.

Redmine-Reihe Nachtrag 1: Plugins installieren

Ja, auch unter Redmine gibt es Plugins. Das ist toll, denn so kann man sich das ohnehin schon geniale Redmine weiter erweitern und anpassen. Ich zeige mal am CKEditor, wie man ein Plugin installiert.

Redmine - Plugins installieren
Redmine – Plugins installieren

Beim CKEditor handelt es sich um einen WYSIWYG-Editor für nahezu alle Textareas von Redmine. Normal sterbliche Benutzer sind damit einfach in der Lage, Texte direkt zu formatieren und die Formatierungen auch zu sehen.

Und wie das funktioniert, sehen wir in diesem Video.

Letztlich ist es einfach. Wir gehen auf unseren Server, auf dem Redmine installiert ist (übrigens: für dieses Plugin braucht man Git (FreeBSD: pkg install git)), wechselt ins Redmine-Plugin-Verzeichnis (FreeBSD: cd /usr/local/www/redmine/plugins) und zieht das zip-Package herunter (FreeBSD: fetch https://github.com/a-ono/redmine_ckeditor/archive/master.zip). Dann wird es entpackt (unzip master.zip) und richtig benannt (mv redmine_ckeditor-master redmine_ckeditor).

Wir wechseln ein Verzeichnis nach oben (cd ..) und führen dann folgende Befehle aus:

bundle install
rake redmine:plugins:migrate RAILS_ENV=production

Dann starten wir Apache einmal durch (FreeBSD: service apache24 restart) und aktivieren noch den Texteditor unter Administration -> Konfiguration -> Textformatierung = Ckeditor:

Textformatierung auf Ckeditor gesetzt
Textformatierung auf Ckeditor gesetzt

Fertig sind wir.

Hier geht es zum Video.

Hier geht es zur Playlist.

Redmine-Reihe 3 von 3: Redmine für Benutzer

Willkommen zum dreiteiligen Workshop: Redmine 4. In diesem zweiten Teil geht es um “Redmine für Bentuzer”.

Das Video erklärt einige grundsätzliche Informationen auf der administrativen Seite im Backend von Redmine.

Redmine für Benutzer
Redmine für Benutzer

Wir gehen in diesem Video folgende Bereiche durch:

  • Eigenes Konto
  • Meine Seite
  • Projektseite
  • Filter
  • Suche
  • Projektliste
  • Übersicht
  • Aktivität
  • Tickets
  • Aufgewendete Zeit
  • Zeiten buchen
  • Gantt-Diagramm
  • Kalender
  • News
  • Dokumente
  • Wiki
  • Dateien
  • Repository (am Beispiel von Git)

Hier geht es zur Playlist.

Hier geht es zum Video.