EasyBKA
EasyBKA ist eine Applikation, die Betriebskosten berechnen und Abrechnungen als PDF-Dokumente erstellen kann. Sie kommt im privaten Rahmen zum Einsatz. Eine neue Version mit überarbeiteter Benutzeroberfläche und Programmcode ist in Arbeit.
Eigenschaften
IDE: Qt Creator
Sprache: C++
Framework: Qt
Module: QtSql, QPdf
Build System: CMake
Demo Video
GitHub
Source Code
Funktionen
EasyBKA bietet die grundlegenden Funktionen eines Betriebskosten Programms:
Objekteinheiten
- Objekteinheiten anlegen
- Wohnungen anlegen
Abrechnungszeitraum
- Zeitraum anlegen
- Nebenkosten eintragen
Mietparteien
- anlegen/ ändern
- Wohnung zuweisen
- Partei in andere Wohnung umziehen
- Heizkosten eintragen
- max. 2 Hauptmieter
- max 10 weitere Personen
Leerstände
- automatische Erstellung
Betriebskostenabrechnung
- PDF exportieren
Entwicklung
EasyBKA ist aus einer privaten Anfrage heraus entstanden. Es sollte einfach und ohne viel Schnickschnack sein. EasyBKA ist mein erstes Projekt, das ich als Auftrag umgesetzt habe und es ist generell meine erste größere Applikation.
Durch die Entwicklung von EasyBKA habe ich die Programmiersprache C++, das Qt-Framework und SQL gelernt. Auch Softwareentwicklung, Clean Code, SOLID und Software Design Patterns, habe ich bei der Entwicklung gelernt. Bis dahin konnte ich nur ein bisschen mit Python und Bash coden.
EasyBKA ist als Einsteigerprojekt bei Weitem nicht perfekt. Es gibt viele Prinzipien, die ich erst während der Entwicklung gelernt habe und nicht anwenden konnte ohne das Projekt von vorne zu beginnen. Die nächste Version wird neu aufgesetzt und ordentlich programmiert und dann werde ich auch mehr Wert auf eine schöne Benutzeroberfläche bzw. auf UX legen.
Bekannte Probleme
EasyBKA ist zwar funktionstüchtig, aber in einigen Punkten verbesserungswürdig. Es gibt drei Punkte auf die ich sehr selbstkritisch schaue. Zum Einen die Architektur der Applikation. Zum Anderen das Aussehen der Benutzeroberfläche. Aber vor allem die allgemeine Code Qualität.
Projektverzeichnis
User können das Projektverzeichnis frei wählen. Wenn User dieses Verzeichnis verschieben, erkennt EasyBKA das Projekt nicht mehr und die User müssen es selbst wieder verbinden. Das widerspricht dem Namen der App, easy. Es sollte ein zentrales Verzeichnis – z.B. in AppData – geben, wo die Projektdateien liegen, das User nicht durch Zufall löschen oder verschieben können. User sollten nur wählen können, wo die PDF-Dateien ausgegeben werden.
Datenbank Design
Fehler im Datenbank Design. Ein Projekt kann mehrere Objekteinheiten haben. Was dazu führt, dass sich Daten aus allen Objekteinheiten vermischen und es schwer wird, die Datenbank manuell zu durchsuchen. Hinter dieser Design Entscheidung steht die Idee, Daten zu teilen. In der nächsten Version soll es für jede Objekteinheit eine eigene Datenbank geben. Die Daten, die geteilt werden müssen, wie z. B. die Vermieterdaten, werden dann in einer „shared“ Datenbank gespeichert.
Pauschalen
Die Art und Weise wie Pauschalen zugewiesen werden, ist falsch. Im Moment wird eine Pauschale mit einem Betrag angelegt und die Mieterpartien werden dieser Pauschale und dem Betrag zugewiesen. Die Pauschalen erscheinen nur auf der Abrechnung der Mieterparteien, die diese Pauschale bezahlen. Das ist aber falsch.
In der neuen Version soll eine Pauschale erstellt werden und der Pauschale werden Mietparteien und der Betrag, den diese Mietparteien zahlen müssen zugewiesen. Auf jeder Abrechnung sind die Pauschalen sichtbar, aber wenn eine Mietpartei keine Pauschale zahlen muss wird der Betrag mit 0,00 € angegeben.
Vorauszahlung
EasyBKA dokumentiert automatisch Änderungen der Nebenkosten und Heizkosten. Aber es wird nicht zwischen tatsächlicher NK Vorauszahlung und erwarteter NK Vorauszahlung unterschieden. Wenn man den Betrag monatlich ändert, weil z. B. eine Mietpartei unregelmäßig gezahlt hat, denkt EasyBKA, dass die NK oder HK gesenkt oder erhöht wurden. In der nächsten Version soll es die Möglichkeit geben, tatsächlich gezahlte Betriebskosten und erwartete Betriebskosten einzugeben.
Mietpartei Infos
EasyBKA kann noch keine Mietpartei Infos als PDF-Dateien exportieren. Diese Infos sind zum Beispiel die Personenzahl bzw. Ein- und Auszug von Personen. Änderungen der NK und HK. Die aktuelle IBAN usw. Es muss noch ein PDF-Writer hierfür geschrieben werden.
Heizkosten
Die Heizkosten sollten eine Pauschale sein.
User Interface
Das User Interface wird komplett überarbeitet. Was komplett verworfen wird sind die zwei Slider, die die Zeitspannen der Personen einstellen.
Zyklus ändern
EasyBKA kann den Zyklus des Abrechnungszeitraums nicht ändern und der Abrechnungszeitraum kann nicht kürzer als ein Jahr sein. Das passiert z. B. wenn Vermieter sich dazu entscheiden den Start und das Ende des Abrechnungszeitraum zu verändern. EasyBKA sollte die Möglichkeit bieten so eine Veränderung durchzuführen.
Schlussworte
EasyBKA ist aus einer privaten Anfrage heraus entstanden. Die App funktioniert und man kann Betriebskostenabrechnungen erstellen. Es gab Missverständnisse bei der Projektplanung, die zu Problemen geführt haben, die in neuen Versionen behoben werden müssen. Vieles hätte ich lieber anders gemacht. Als ich mit der Entwicklung der App gestartet habe, hatte ich zwar bereits von Clean Code, SOLID und Software Design Patterns gehört, aber ich konnte mit Vielem noch nichts anfangen oder habe es nicht verstanden. Während der Entwicklung habe ich eine Menge über Anwendungsentwicklung gelernt, und kann mein Erlerntes auf neue Projekte anwenden. Auch wenn das Projekt bei Weitem nicht makellos ist, bin ich mit dem Ergebnis zufrieden. Meine erste Software nach Kundenwunsch. Macht mich das zu einer professionellen Anwendungsentwicklerin? Nein, aber es hat mir wertvolle Erfahrung gegeben, die mir auf der Suche nach einem Job hilft.