# Limbas

Limbas ist ein freies Webframework für die Entwicklung von Datenbank-basierten Webanwendungen.

## Entstehung und Verbreitung

Das Limbas-Projekt wurde aus der Motivation gegründet, eine Open-Source-Alternative zu bestehenden proprietären und hersteller- oder plattformspezifischen Datenbankanwendungen zu entwickeln (vergleiche Open Source). Limbas ist dabei eine Low-Code-Plattform, mit der sich einfach und ohne programmieren per Drag and Drop verschiedenste Anwendungen erstellen lassen.
Limbas wird zum größten Teil in mittelständischen Unternehmen und Konzernen eingesetzt, teilweise auch im öffentlichen Bereich. Die Software-Architektur ist auf eine hohe Skalierbarkeit ausgelegt (siehe Architektur).
Zu den bekannten mit Limbas umgesetzten Anwendungslösungen gehören unter anderem CRM-, DMS-, ERP-, Prüfmittelmanagement-, Groupware- und CMS-Systeme.
In den letzten Jahren wurden mehrfach Artikel über Limbas in Fachzeitschriften veröffentlicht.

## Entwicklung und Lizenzierung

Neue Versionen erscheinen 2- bis 4-mal im Jahr. Der Quellcode von Limbas wird vollständig unter der GPLv2 Lizenz veröffentlicht.

## Funktionen

Limbas enthält folgende Basisfunktionalitäten:
* Tabellenverwaltung: Ermöglicht das einfache Anlegen und Bearbeiten sowie Verknüpfen von Tabellen. Datensätze können aus verschiedenen Quellen importiert und exportiert werden.
* Tabellen-Editor: Datensätze können abgefragt bzw. durchsucht und über Formulare bearbeitet werden. Die meisten anderen Funktionen sind (Berichte, Wiedervorlagen, Kalendertermine etc.) hier integriert. Eine Besonderheit ist das Versionieren von Datensätzen.
* Formular-Editor: Ermöglicht die Gestaltung von individuellen Formularen zur Erstellung und Bearbeitung von Datensätzen.
* Berichts-Editor: Ermöglicht die Gestaltung von Berichten, die dynamisch in gängige Formaten wie PDF, XML, Word und Excel erzeugt werden können.
* Abfrage-Editor: Hiermit können Datenbankabfragen grafisch erstellt und visualisiert werden.
* Rechte-Editor: Sämtliche Benutzer-Zugriffsrechte auf Tabellen und Felder werden hier gruppenhierarchisch verwaltet.
* Diagramm-Editor: Für grafische Darstellung von Abfragen und Auswertungen. Line-Graph, Bar-Chart oder Pie Chart
* Wiedervorlagen: Ermöglichen es, Aufgaben anzulegen und diese mit beliebigen zu bearbeitenden Datensätzen zu verknüpfen. Jede Aufgabe kann sowohl zu einzelnen Mitarbeitern als auch zu Benutzergruppen zugewiesen und mit einem Fälligkeitsdatum versehen werden.
* Kalendersystem: Umfangreiches Kalendersystem mit CalDAV-Schnittstelle. Termine können mit Datensätzen aus anderen Tabellen verknüpft werden kann.
* Workflow-Engine: Stellt eine API bereit, über die Abläufe und Prozesse in Limbas realisiert werden. Workflows können über die Admin-Schnittstelle konfiguriert werden.
* Dateimanager: Ermöglicht das Verwalten von Dokumenten sowie deren Zuweisung zu anderen Tabellen und Datensätzen in Limbas. Nützliche Funktionalitäten sind die Unterstützung von Metadaten, Duplikatsprüfung, Indizierung und Versionierung. Durch die WebDAV-Schnittstelle kann clientseitig mit Desktop-Programmen (z. B. Explorer) auf die Dateien zugegriffen werden (siehe Architektur). Dokumente können von Limbas indiziert und mit Schlagwörtern versehen werden. Mit der Suchfunktion können diese auch wie mit einer Suchmaschine anhand ihres Inhalts gefunden werden. Die Dokumentenmanagement-Funktionalität kann durch die Integration eines externen OCR-Programms erweitert werden. Limbas erkennt Änderungen zwischen verschiedenen Versionen und zeigt diese in den betroffenen Textstellen an.
* Mandantenfähigkeit
* KanBan
* Objektorientiertes Programmieren
* E-Mail Funktion: Integrierte Mail Funktion zum Verknüpfen von Mails zu Datensätzen
* Installations-Wizzard: Installationshilfe

## Software-Architektur

Limbas basiert auf einer Client-Server-Architektur, bestehend aus folgenden Komponenten:
* Datenbank-Server Hierfür können verschiedene relationale Datenbanken eingesetzt und über ODBC angebunden werden. Im Moment werden folgende Datenbankenmanagementsysteme unterstützt: Maxdb, MySQL, PostgreSQL, Microsoft SQL Server und Oracle.
* Webserver Limbas ist in PHP implementiert und läuft auf Apache-Web-Servern unter allen gängigen Unix-Derivaten (Linux, Solaris, BSD, Ubunto).
* Webbrowser Client-Seitig kann auf Limbas über den Web-Browser zugegriffen werden. Hierzu sind keine weiteren Browser Plug-ins notwendig, da die Benutzeroberfläche vollständig in HTML/HTML5, JavaScript (Ajax) und CSS umgesetzt ist. Viele Elemente der Benutzerschnittstelle wie Editoren ermöglichen Drag-and-drop-Operationen.
Durch Replikation von Web- und Datenbankservern ermöglicht Limbas eine hohe horizontale Skalierbarkeit. Dies ist bei den meisten unterstützten Datenbanken problemlos möglich.

## Schnittstellen

Limbas ist offen und modular aufgebaut und lässt sich beliebig erweitern. Dies ist nicht nur über die Schnittstellen im Quellcode möglich. Externe Anwendungen können über SOAP auf die Funktionen von Limbas zugreifen. Die WSDL-Schnittstelle stellt für jede Datenbanktabelle einen eigenen Webservice bereit, mit dem grundlegende Datenbankoperationen (CRUD) durchgeführt werden können. Termine können über CalDAV synchronisiert werden.
Dokumente, die von Limbas verwaltet werden, können über WebDAV in den Desktop eingebunden werden.