Forum: Projekte & Code Lagerverwaltung Part-DB v1.0 Release


von Jan B. (do9jhb)


Lesenswert?

Hallo alle zusammen,

ich habe seit einiger Zeit an einer neuen Version von Part-DB 
gearbeitet, von der es jetzt ein stable-Release gibt.

Part-DB ist eine open-source, webbasierte Lagerverwaltungssoftware, die 
insbesondere für die Verwaltung elektronischer Komponenten/Bauteile 
ausgelegt ist, aber natürlich auch für andere Arten von
Gegenständen verwendet werden kann.

Diese neue Version (1.0.0) ist ein kompletter Rewrite der klassischen 
Part-DB Versionen 0.5.* und 0.6.* unter modernen Gesichtspunkten. Neben 
deutlich verbesserter Codearchitektur und Codequalität,
was einiges an Bugs vermeiden sollte, gibt es viele neue Funktionen und 
Verbesserungen, die sich lange gewünscht wurden:

* Unterstützung ein Bauteil mehrere Lagerorte zuzuweisen
* Unterstützung für nicht stückzahlen basierten Mengen: z.B. lassen sich 
nun Kabel nach ihrer Länge, oder Flüssigkeiten nach ihrem Volumen 
inventarisieren
* Unterstützung für verschiedenen Währungen (und Wechselkurse) für 
Preise
* Detaillierte Änderungshistorie für alle Bauteile und Datenstrukturen, 
mit der Möglichkeit Änderungen rückgänggig zu machen, oder alte 
Versionen anzuschauen
* Möglichkeit Bauteiletabellen nach verschiedenen Kriterien zu filtern
* Unterstützung für "echte" Bauteileparameter und die Möglichkeit anhand 
von Parameterbereichen nach Bauteilen zu filtern
* Unterstützung für Zwei-Faktor-Authentifizierung für Benutzer
* Automatische Erzeugung von Thumbnails für Bildanhänge
* Verbesserte Labelgenerierung mit Unterstützung von QR-Codes, u.A; 
Eingebauter Barcodescanner per Webcam
* Verbessertes Projektsystem
* Docker-Support

und vieles mehr.

Wer Part-DB einmal ausprobieren möchte, findet eine Demo unter 
https://part-db.herokuapp.com/de/

Mehr Informationen und der Quellcode findet sich im GitHub Repository: 
https://github.com/Part-DB/Part-DB-server
Dokumentation und Installationsanleitungen finden sich unter: 
https://docs.part-db.de/

Bestehende Part-DB Installationen lassen sich ohne Datenverlust auf die 
neue Version migrieren, mehr Informationen dazu finden sich hier: 
https://docs.part-db.de/upgrade_legacy.html

Da sich die Weiterentwicklung auf die Part-DB 1.0+ Versionen 
konzentrieren wird, und die 0.5.* und 0.6.* keine neuen Funktionen mehr 
erhalten werden, ist ein Upgrade auf die neueste Version empfohlen.

Dieser Thread ist eine Fortsetzung von 
Beitrag "[WIP] Lagerverwaltung Part-DB 1.0" und 
Beitrag "Lagerverwaltung Part-DB V0.5.x"

von Bernd (Gast)


Lesenswert?

Coole Sache. Wird bei Gelegenheit ausprobiert...
Wie schwierig wäre es die Benutzeranmeldung auf LDAP umzustricken?

von Jan B. (do9jhb)


Lesenswert?

Bernd schrieb:
> Coole Sache. Wird bei Gelegenheit ausprobiert...
> Wie schwierig wäre es die Benutzeranmeldung auf LDAP umzustricken?

Prinzipiell unterstützt das Framework, dass ich nutze zur 
Authentifizierung auch LDAP 
(https://symfony.com/doc/5.4/security/ldap.html). Die eigentliche 
Authentifizierung (also, dass er statt dem in der Datenbank 
gespeicherten Passwort, das aus der LDAP Datenbank nimmt) sollte auch 
relativ einfach zu machen sein.

Das direkte Abfragen der Nutzer vom LDAP Server ist da etwas 
schwieriger, da an vielen Stellen ein Datenbankbenutzer benötigt wird 
und sich viele Daten wie Einstellungen, Berechtigungen und 2FA-Daten 
nicht so sinnvoll in einem LDAP User abbilden lassen.

Vermutlich müsste man daher, sobald sich ein Nutzer erstmalig per LDAP 
einloggt, automatisch einen zugehörigen Datenbanknutzer erstellen, der 
dann Berechtigungen, etc. bestimmt, erstellen.

Ich habe leider nicht allzu viele Erfahrungen mit LDAP und auch keinen 
LDAP-Server am laufen.

von Jan B. (do9jhb)


Lesenswert?

Bernd schrieb:
> Coole Sache. Wird bei Gelegenheit ausprobiert...
> Wie schwierig wäre es die Benutzeranmeldung auf LDAP umzustricken?

Aktuell arbeite ich an einer Integration von SAML 2.0, dann kann man 
Part-DB über z.B. Keycloak (https://www.keycloak.org/) an LDAP oder 
Active Directory oder vieles mehr anbinden.
SAML bietet im Vergleich zu einer direkten LDAP Integration den Vorteil 
der größeren Flexibilität (da man alles anbinden kann was irgendwie SAML 
sprechen kann, was der Industriestandard für Webauthentifizierung ist), 
es bietet Single-Sign On (wenn gewünscht, muss man nur einmal sein 
Password angeben, und dann wird man direkt bei allen Anwendungen die 
SAML können, eingeloggt), und es wird keine direkte Verbindung zwischen 
Part-DB und dem LDAP Server benötigt (Part-DB kann also auch auf einem 
externen Server oder ähnliches laufen).

Das ganze funktioniert bereits ganz gut, und wird dann Teil der nächsten 
Version 1.1.0 sein.

von Ludwig K. (hellas)


Lesenswert?

Toll, dass Du weitermachst!
Danke für die neue Version.

von PD D. (seeers)


Lesenswert?

Danke für die Weiterentwicklung! Aktuell nutze ich noch die Version 
0.5.11
Ist eigentlich auch eine Importfunktion in einer zukünftigen 1.x 
geplant?

von Jan B. (do9jhb)


Lesenswert?

PD D. schrieb:
> Ist eigentlich auch eine Importfunktion in einer zukünftigen 1.x
> geplant?

Ja, das ist auch mittlerweile schon fertig (siehe 
https://docs.part-db.de/usage/import_export.html), es ist aber noch in 
keinem Release enthalten. Das wird dann aber Teil von Part-DB 1.2.0, die 
in den nächsten Tagen erscheinen sollte. Dann kann man wieder Bauteile 
aus CSV Dateien importieren und größere Datenmengen in Part-DB 
übernehmen.

Außerdem gibt es die dann die Möglichkeit die Bill of Material eines 
Projektes zu importieren (momentan nur aus einer von KiCAD exportierten 
BOM). Part-DB kann dann automatisch die entsprechenden Einträge für 
Bestückungsnamen, Anzahl etc. befüllen, und man muss dann nur noch das 
entsprechende Bauteil aus dem Lager zuordnen.

von Moriz (untertaucher)


Lesenswert?

Beim Versuch, die stable Version in einer VM zu installieren, erhalte 
ich folgende Fehlermeldung:
1
root@partdb:/var/www/partdb# yarn install
2
yarn install v1.22.19
3
[1/5] Resolving packages...
4
[2/5] Fetching packages...
5
error @ckeditor/ckeditor5-alignment@38.1.1: The engine "node" is incompatible with this module. Expected version ">=16.0.0". Got "12.22.9"
6
error Found incompatible module.
7
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

von Phil J. (exloermond)


Lesenswert?

Moriz schrieb:
> error @ckeditor/ckeditor5-alignment@38.1.1: The engine "node" is
> incompatible with this module. Expected version ">=16.0.0". Got
> "12.22.9"

Deine Version von nodejs ist zu alt. Je nach Distribution aktualisieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.