Das aIT Framework v6

Der Motor der alles antreibt


Unsere Framework ist Softwaregrundlage auf der alles Andere aufbaut. Mit jeder neuen Hauptversion kamen wir unserem Ziel, mit so wenig wie möglich Aufwand, Verwaltungen für Daten zu erstellen, näher. Dies geht nur mit einem hohen Maß an Automatismen. Die Schwierigkeit hierbei ist: jeder Automatismus kostet normalerweise Flexibilität. Aber genau das ist es, was man benötigt um individuelle Software nach Kundenwünschen zu programmieren. Unsere Version 6 vereint hier beide Ansrpüche.

Entwicklung

Die aktuelle Haupt-Version ist seit 5 Jahren im Produktiv-Einsatz. In die Entwicklung sind bisher über 3.500 Mannstunden geflossen. Wir sind hier an einem Punkt angekommen wo wir soweit zufrieden sind, daß auf absehbare Zeit keine Neuentwicklung mehr nötig wird.
Natürlich gibt es kontinuierlich Verbesserungen und neue Features, aber das technische Grundgerüst ist ausgereift und hat sich in der Praxis vielfach bewährt.

Stein für Stein

Modularer Aufbau

Unser System ist modular aufgebaut. Grob verallgemeinert kann man sagen: jedes Modul steht für eine Tabelle in der Datenbank. Sie wollen Produkte in Ihrer Software Verwalten? Dann liegen die in der Datenbank in einer Produkte-Tabelle und es gibt ein Produkte-Modul, welches die Produkte verwaltet. Dem Produkt soll eine Marke zugeordnet werden? Und ein Hersteller? Nun, 2 weitere Tabellen in der Datenbank und 2 Module in der Software. Natürlich gibt es auch Ausnahmen...

Standardmäßig, also ohne die Funktionen die wir individuell für jedes Projekt erstellen, werden derzeit rund 75 Modulen für die Grundfunktionen ausgeliefert. Hier ein kleiner Auszug:

  • Benutzer-Verwaltung

    Wir arbeiten oft mit Personen, darum ist eine Personenverwaltung standardmäßig mit dabei.

    Neben Name, Adresse und weiteren Stammdaten, lassen sich aber einer Person auch spezifische Eigenschaften zuordnen. Eine davon ist beispielsweise die Benutzereigenschaft. Sobald Sie einer Person eine Benutzereigenschaft zuweisen, gibt es ab dann mehr Einstellungsmöglichkeiten für die Person. Ein Benutzername, eine Loginmethode (zB. mit Ihrem Windowspasswort über Ihren LDAP-Server, oder klassisch mit Passwort direkt an der Software), 2-Faktor-Authentifizierung, aber auch Benutzergruppen können zugeordnet werden. Genauso kann eine Person auch ein Mitarbeiter, mit Standort, Abteilung, Personalnummer und mehr werden. Oder ein Newsletter-Empfänger mit Optin-Datum und anderen Infos.

  • Rechteverwaltung

    Für jede Funktion im System gibt es automatisch ein passendes Recht. Beispiel: Produkte. Es gibt ein Recht für die Produkteverwaltung. Wer das Recht hat, darf ALLES mit Produkten machen was er will. Es läßt sich aber auch weiter einschränken: Produkte anlegen,bearbeiten,löschen. Nur wer das Löschen-Recht hat, darf auch Produkte löschen. Projektabhängige Rechte kommen dann noch dazu. zB Produkte / Umsatzstatistiken / auf Startseite anzeigen. Nur wer das Recht hat bekommt auf seinem Dashboard die entsprechende Anzeige. Zumindest wenn es sowas in Ihrem Projekt gibt, bzw benötigt wird. Wir sind flexibel.
    Ein anderes Beispiel wäre Mitarbeiterdaten einsehen. Jeder Mitarbeiter darf seine eigenen einsehen, Die Personalabteilung alle, der Betriebsrat nur die von seinem Standort, der Vorgesetzte nur die seiner Mitarbeiter. Wie gesagt: flexibel.

    Die Rechte werden Benutzergruppen zugeordnet, welche wiederum Benutzer zugeordnet werden. Dabei kann jeder Benutzer mehrere Gruppen haben. Ein Mitarbeiter kann also in der Personalabteilung sein und darüber Personalakten einsehen dürfen, gleichzeitig aber auch Mitglied der Fuhrpark-Gruppe sein und Fahrzeuge verwalten.

    Wir setzen die Rechte für die Gruppen meistens schon während der Entwicklung für Sie so, daß alles passt. Also keine Sorge, auch wenn es komplex wird, haben Sie selten direkt damit zu tun. Alles funktioniert einfach so wie es soll...
  • Ein Screenshot auf der eine Adresse via Openstreetview überprüft und zugeordnet werden kann

    Content-Manager

    Damit können Sie Inhaltsseiten verwalten. Einfachstes Bespiel: Ihr Impressum. Anderes Beispiel: diese Webseite, die Sie gerade lesen; sie wird in weiten Teilen im Contentmanager erstellt und verwaltet.

    Wie auch viele andere Standardmodule unterstützt der Contentmanager Mehrsprachigkeit, dh. Seiten können in beliebigen Sprachen gepflegt werden um so zB Ihre Webseite in englisch und deutsch bereit zu stellen.

    Texte können nach dem Erstellen auf Wunsch auch direkt über die API von deepl automatisiert übersetzt werden.

    Content-Manager

    Hier können Sie in einem Editor Inhalte schreiben. Dieser bedient sich ähnlich wie Ihre Text-Verarbeitung à la MS Word, oder LibreOffice Writer.
    Das geht auch mehrsprachig, auf dem Screenshot ist aber nur deutsch aktiviert.
    Um Ihnen das Leben zu erleichtern gibt es, für wiederkehrende Aufgaben, in der Seitenleiste eine Templatefunktion. Hier können Sie zB mit wenigen Klicks Verlinkungen auf Blogartikel oder Downloads setzen, Werbebanner, oder Bilder einfügen, etc.
  • Texte-Manager

    Eigentlich ganz ähnlich wie der Contentmanager, aber darauf ausgelegt, strukturierte Texte entgegen zu nehmen. Ein Beispiel wäre unsere Datenschutzerklärung die automatisch durchnummeriert wird, schnell umsortierbar ist, in der man auch kurz mal ganze Abschnitte (de)aktivieren kann. Und das Inhaltsverzeichnis am Anfang müssen Sie auch nicht selbst schreiben.

  • Menü-Manager

    Hier können Sie die Menüs Ihrer Software (oder Webseite) verwalten und anpassen. Welche Benutzergruppe soll welche Menüpunkte sehen? Was ist wichtig und soll leicht erreichbar sein, was kann in ein Untermenü? Soll ein Menüpunkt optisch anders dargestelt werden? Wenn ja, unter welchen Umständen (z.B.: rot, wenn sich dahinter eine offene Aufgabe verbirgt). Änderungen an den Menüstukturen sind häufiger als Sie glauben...

  • News

    Nicht nur etwas für Webseiten, sondern von unseren Kunden auch gerne intern genutzt. Beispielsweise daran erinnern, daß der Vorjahresurlaub bald verfällt. Legen Sie fest, welche Benutzergruppen die News sehen dürfen, von wann bis wann sie eingeblendet wird, usw.

  • Systemverwaltungen

    Derer gibt es gleich mehrere. Eine Verwaltung für Module, Updates, Programmversionen, APIs, Cronjobs (automatisierte Serviceroutinen), Wartungsmodus und vieles mehr. Damit haben Sie aber nur sehr selten, meist gar nicht zu tun.

  • E-Mails

    Kaum eines unserer Programme kommt erfahrungsgemäß ohne das Versenden von Mails aus.
    Immer mit dabei ist eine Mail für die "Passwort vergessen" Funktion. Alle anderen Mails sind dann Kundenspezifisch und können hier verwaltet werden. Beispielsweise eine Erinnerungsmail an den Vorgesetzten, wenn einer seiner Mitarbeiter einen runden Geburtstag hat, oder sich eine Probezeit dem Ende zuneigt.
    Sie können den Text ändern, im Text mit Variablen (zB Name des Geburtstagkindes und Alter) arbeiten. Können detailiert einstellen, wer die Mail bekommt, wer cc/bcc und mehr.

    Die Mails unterstützen Templates, so daß sie das Ausehen Ihre Mails beliebig zentral gestalten können und es dann für alle Ihre Mails verwenden können. Aussserdem gibt es detailierte Protokollmöglichkeiten, bis hin zum Speichern aller versendeten Mails, so daß diese im Nachhinein in der Software angeschaut werden können.

  • Datei-Verwaltung

    Eine zentrale Verwaltung für Dateien die Sie ins System hochladen. Importieren per FTP, direkt hochladen, Verschlagworten und Kategorisieren von Dateien, samt Zugriffsberechtigungen. Insbesondere bei redaktionellen Inhalten sehr hilfreich.

  • Kalender

    Ein Kalender ist auch an Bord. Die Verwendung dafür ist projektspezifisch. Schließtage zur Ausgabe auf der Webseite der Kindertagesstätte, Urlaubsplaner, Feiertage für die Zeiterfassung, Termine für Messen und andere Veranstaltungen. Vielfältig einsetzbar. Standardmäßig kommt er mit einer Tages-, Wochen-, Monats- und Jahresansicht, individuelle Ansichten sind aber auch je nach Projekt möglich.

  • Notizen & Dokumente

    Sie können an jeden Datensatz Notizen und Dokumente anhängen. Beispiel Personalakte: Sie haben im letzten Personalgespräch vereinbart, daß Sie in 3 Monaten nochmal über eien Gehaltserhöhung srechend wollen.
    Also können Sie an die Personalakte einfach eine Notiz hängen - definitiv besser als ein Post-It am Monitor! Einbauanleitung zum Produkt? Dokument anhängen: Name des Dokumentes, eventuell eien kurze Beschreibung, das PDF dazu, fertig.
    Ab jetzt sieht jeder der das Produkt öffnet, daß die Anleitung angehängt ist.
    Je nach Kundenwunsch können natürlich auch andere Sachen, wie beispielsweise Verträge an Datensätze gehängt werden.

  • Adressenverwaltung

    Ein Screenshot auf der eine Adresse via Openstreetview überprüft und zugeordnet werden kann

    Adresse lokalisieren

    Neue Adressen werden vom System automatisch einem Längen- und Breitengrad zugeordnet. Im Adressen-Manager können solche Zuordnungen überprüft und ggegbenenfalls korrigiert werden. Die Geo-Daten kommen dabei von OpenStreetMap und/oder Google-Maps. Anhand dieser Daten können dann später Karten generiert werden, auf denen beispielsweis alle Ihre Firmen-Standorte angezeigt werden.

    Personen, Firmen, Standorte - viele Daten benötigen Adressen. Diese können nicht nur direkt bei dem jeweiligen Datensatz geändert werden, sondern es gibt auch eine zentrale Verwaltung, die ein paar mehr Möglichkeiten bietet.
    Beispielweise werden alle Adressen (auf Wunsch) über OpenStreetmap und Google Maps, geprüft und Geo-Lokalisiert. Schlägt das fehl, dann sehen Sie das schnell an dieser zentralen Stelle.
    Durch eine saubere Adresszuordnung können wir dann problemlos Ihre Daten auf einer Landkarte darstellen. Beispielweise eine Karte auf der Sie sehen, wie Ihre Kunden in Deutschland verteilt sind. Oder eine Karte mit Ihren Filialen auf der Webseite anzeigen...

  • Firmen

    Firmen brauchen wir in fast jedem Projekt an irgendeiner Stelle, darum gehört dies auch zu unseren Standardmodulen. Firmen haben Namen, internen Kürzel, Beschreibungstexte, Logo, Adress- und Kontakdaten. Ausserdem lassen sie sich in verschiedene (selbst verwaltbare) Kategorien einteilen, wie zB Zulieferer, Kunde, Tochter-Gesellschaft.

  • Bug & Feature-Tracker

    Hier stellen Sie, oder wir Tickets ein. Beispielsweise gefällt Ihnen etwas nicht, oder Sie benötigen eine weitere Funktion. Vielleicht auch nicht gleich jetzt, aber irgendwann... Also muss das erstmal irgendwo hin, damit man das nicht gleich wieder vergisst - Outlook kann da schnell ein unübersichtliches Datengrab werden.

    Unser Kanban-Board basiertes Ticketsystem ist fester Bestandteil Ihrer Installation. Hier sehen Sie woran wir gerade arbeiten, können Prioritäten ändern, fertige Programmierarbeiten abnehmen oder einfach nur den Überblick bewahren. Natürlich ersetzen Tickets in vielen Fällen nicht das perönliche Telefonat, aber die dort getroffenen Absprachen schriftlich festzuhalten schadet nicht.
    Wir sehen die Tickts eher als eine toDo-Liste an, in der auch mal Aufgaben für Sie drin stehen können (zB import-Datei mit den Produktdaten besorgen, Details mit einer Abteilung klären). Aber wie gesagt: da steht eigentlich nie etwas drin, was nicht davor, oder danach noch telefonisch besprochen wird.

Standard-Features

Ein paar Grundfunktionen und Eigenschaften die Sie in vielen Modulen wiederfinden

  • Ansicht: Mobil

    handy im Hochformat: hier ist wenig Platz in der Breite vorhanden. Beschriftungen wandern daher über die Eingabefelder, Blöcke werden untereinander dargestellt.
    Tabs werden auf deren Symbole reduziert, Buttons in ein Menü oben, bzw unten rechts geschoben.

    Ansicht: kleiner Bildschirm

    So läßt sich noch ganz gut arbeiten, auch wenn es jetzt nicht mehr für ein 2 spaltiges Layout reicht.
    Ansicht für kleinere Tablets, alte Notebooks, oder Leute die den Browser nur als kleines Fenster nutzen.

    Ansicht: großer Bildschirm

    Es ist genug Platz da, also 2 Spalten nebeneinander anzeigen. Typische Ansicht für Büro-PCs.

    Mobiltauglich

    Auch wenn sich nicht alles sinnvoll auf einem kleinen Bildschirm nutzen läßt, so ist unser Framework von Hause aus responsive, d.h. es passt sich der Größe des Bildschirms an und stellt Informatonen auf kleinen Geräten gegebenfalls anders dar als auf großen.

  • Tabellen

    Standard-Tabellen lassen Sie nach Spalten sortieren. Sie können über Filter die Ausgabe filtern (zB zeige nur Rechungen aus diesem Quartal). Natürlich gibt es auch eine umfangreiche Suchfunktion.
    All diese Aktionen laden im Hintergrund, ohne daß die Seiteneu lädt. Entsprechend flüssig fühlt es sich an durch die Daten zu navigieren. Unser Lieblingswort hierfür: Schwuppdizität
  • Baumstrukturen

    Ein Screenshot aus der Software auf dem Datenknoten in einer Baumstruktur zu sehen sind. Ein Knoten liegt im Zwischenspeicher und kann über ein Kontextmenü wo anders hinkopiert werden

    Baumstrukturen

    Hier sehen Sie wie eine Kopie der Kontakt-Seite unterhalb des Wartungsmodus einfügt. Das funktioniert wie von Windows gewohnt: rechte Maustaste kopieren, rechte Maustaste einfügen...
    Viele Daten lassen sich als einfache Tabelle Darstellen. Beispielsweise eine Liste Ihrer Mitarbeiter.
    Das klappt aber nicht immer. Wenn Sie beispielsweise die Hirachien in Ihrem Unternehmen, oder einen Warengruppenbaum verwalten und darstellen möchten, reicht eine einfache Tabelle schnell nicht mehr aus. Solche Daten werden dann als Baumstrukturen gespeichert und entsprechend auch so dargestellt. Hier haben Sie die Möglichkeiten Unterelemente zu erstellen. Einzelne Elemente, oder ganze Zweige zu verschieben oder löschen. Kopieren, verknüpfen, sortieren, und mehr. Alles ganz bequem per rechter Maustase. Auch die Suche können Sie auf Unterlemente beschränken, oder auf Wunsch einfach alles durchsuchen.
  • Kontextmenüs

    Am PC haben Sie eine Maus mit 2 Tasten, wir nutzen beide. Wo immer sinnvoll, gibt es ein Kontextmenü, welches sich auf den Datensatz bezieht, den Sie gerade mit rechts angeklickt haben. Mobil-Nutzer ohne Maus bekommen das gleiche Menü aber auch noch mal direkt per Button.

  • Mehrsprachigkeit

    Alle Inhalte lassen sich mehrsprachig erfassen. Dabei können Sprachen einfach angeschaltet werden und sind sofort in allen Modulen (wo es Sinn macht) verfügbar.

  • Variable Textbausteine

    Texte in unserer Software sind Variablen, dh, Sie können entweder direkt an Ort und Stelle wo ein Text ist (zB Button-beschriftung, oder Überschrift), diesen ändern, oder es über ein spezielles Modul erledigen. Möchten Sie die Software beispielsweise auch in einer Zweigstelle in Frankreich nutzen, so können Sie, über ein integriertes Tool, komfortabel sämtliche verwendete Textbausteine übersetzen. Bitte haben Sie Verständnis dafür, daß wir standardmäßig nur die Deutsche Version ausliefern. Änderungen die Sie in Ihrer Live-Version des Programms machen, können mit unserer Entwicklungsumgebung synchronisiert werden, so daß bei Konflikten (wir ändern etwas, Sie ändern zeitgleich den gleichen Text) ausgewählt werden kann, welche Version behalten werden soll. So kommt, man sich nicht in die Quere und keine Änderung geht durch ein Update verloren.

  • Datensatz-Verlauf und Backups

    Datensatzänderungne als Timeline angeordnet Übersicht über die im System gespeicherten Backups, sortiert nach Stunden, tagen, Wochen, Monaten und Jahren

    Der Preis vom Produkt ist plötzlich 5 Euro statt 500. Wer war's?
    Niemand?
    Gut daß wir alles mitprotokolieren.
    Jeder schreibende Zugriff (auf Wunsch auch lesende) auf Datensätze wird von uns samt den geänderten Daten mitgeschrieben, so daß Sie jederzeit nach-vollziehen können, wie etwas zustande kam. Nicht mal Admins dürfen diese Daten manipulieren.

    Doch für den Fall, daß doch mal etwas schief geht, erstellt das System automatisiert im Hintergrund regelmäßige Backups und verwaltet diese auch selbstständig.

    Datensatz-Verlauf

    Jede Änderung wird vom System mitgeloggt. Hier läßt sich genau mitverfolgen wann etwas durch wen angelgt, gelöscht oder geändert wurde. In den Details des jeweiligen Eintrags gibt es dann für jede Änderung einen vorher/nachher Eintrag

    Datensatz-Verlauf

    Standard sind 12 Stunden-, 7 Tages-, 4 Wochen- und 12 Monats-Backups (das ist aber frei konfigurierbar). So ist man auf jede Eventualität vorbereitet.
  • Export

    Manchmal müssen die Daten doch aus dem System raus. Wir generieren und exportieren Reports in Excel, generieren Briefe in Word, generieren PDF-Formulare oder direkt PDFs , die dann beispielsweise an die Post übermittelt und von Ihr in Papierform verschickt werden.

Was benötigen Sie?

Anforderungen für den Betrieb

Da unsere Plattform serverbasiert läuft, benötigen Sie einen Server. Dies kann ein lokaler Server im Intranet, oder ein Webserver im Internet sein. Selbst ein shared-Hosting Webspace für wenige Euro im Monat ist oft ausreichend.
Die Anforderugnen an selbigen sind sehr gering; Schon in einer kleinen virtuellen Maschine (gerne auch ein Dockercontainer), mit 1-2 Kernen, 1-2GB RAM und 1GB Speicherplatz läuft so ziemlich jedes Projekt ohne spürbare Latenzen. Softwareseitig ist uns ein "LAMP"-Stack am liebsten. Das bedeutet ein Linux-Server, mit Apache, MariaDB und PHP - also ein klassischer Webserver. Aber auch ein Windows IIS ist kein Problem. Wenn das Programm nur von einer Person benutzt wird und nicht im Intenet verfügbar sein muss, läßt sich ein Webserver wie zB xampp lokal auf dem eigenen Rechner installieren.

Mehr Anforderungen an den Server gibt es nicht

Auf der Anwenderseite ist es noch einfacher. Sie benötigen Netzwerkzugriff auf den Server. Also entweder eine Intranet-Verbindung (vor Ort oder zB per VPN) oder eine per Internet.
Dazu noch einen Browser. Da wir gerne Herr unserer Daten sind und Datenschutz bei uns groß geschrieben wird: am liebsten Das Firefox-Logo Firefox, aber natürlich funktionieren Auch Chromium, Edge, Opera oder Safari. Dabei ist uns das Gerät an sich, ebenso wie das Betriebssystem egal. Android Smarthpone, iPad, oder Windows/Linux PC - es läuft einfach.

Ein Leistungsvergleich

Über 40% der Webseiten im internet laufen zur Zeit mit Wordpress. Grund genug, das beliebteste CMS gegen unsere Software antreten zu lassen. Wir haben 2 vergleichbare Webseiten auf unserem Server mittels locust gegeneinander antreten lassen. Um es kurz zu machen: unser Framework kann 24x mehr Anfragen pro Sekunden beantworten und ist dabei im Schnitt auch noch 12x schneller. Zu den Messungen

Die Technik dahinter

Verwendete Sprachen

Unsere Software wird serverseitig in PHP geschrieben. PHP ist, insbesondere im Internet, eine beliebte und weit verbreitete Programmiersprache.
Neben bekannten Projekten wie Facebook, oder Wikipedia, werden rund 75% der Seiten im Internet mittels PHP generiert. Unser Framework wird dabei regelmäßig geupdated und ist damit praktisch immer auf der aktuellsten verfügbaren PHP Version lauffähig.
Neben PHP verwenden wir SCSS um CSS3 Code für die Optik der Anwendung zu generieren.
Die Ausgabe erfolgt in HTML5 und ist responsive, passt sich also in Optik und Größe auf das jeweilige Anzeigegerät an (kurz: andere Darstellung für Mobil und Desktop)
Für die Interaktion mit dem Benutzer nutzen wir Javascript. Sowohl natives, als auch mittels jQuery
Als Datenbank verwenden wir MariaDB oder mySQL, in manchen Projekten beziehen wir Daten auch via MS-SQL. Aber auch andere Datenbanksysteme können in der Regel als Datenquelle dienen.