Part-DB RW - Lagerverwaltung: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
Zeile 199: Zeile 199:


* Bilderupload durch einen universellen Dateiupload ersetzen (keine Einschränkungen bezüglich Dateityp), damit neben Bildern auch andere Dateien einem Bauteil zugeordnet werden können.
* Bilderupload durch einen universellen Dateiupload ersetzen (keine Einschränkungen bezüglich Dateityp), damit neben Bildern auch andere Dateien einem Bauteil zugeordnet werden können.
** Die Dateien sollen nach dem Upload, also auf dem Server, den gleichen Dateinamen bekommen wie die originale, hochgeladene Datei (keine "Zufallsnamen")
** Die Dateien sollen nach dem Upload, also auf dem Server, den gleichen Dateinamen bekommen wie die originale, hochgeladene Datei (keine "Zufallsnamen"). Optional sollte man aber den Dateinamen auch manuell angeben können.
** Falls die hochgeladene Datei ein sehr grosses Bild ist, sollte eine Abfrage kommen, ob das Bild automatisch verkleinert werden soll.
** Falls die hochgeladene Datei ein sehr grosses Bild ist, sollte eine Abfrage kommen, ob das Bild automatisch verkleinert werden soll.
** Als Pfad für eine hochzuladene Datei sollte man auch eine URL auf irgendeine Datei im Internet angeben können, und die Datei soll dann automatisch auf den Server heruntergeladen werden (sehr nützlich z.B. bei einer Bildersuche im Internet, es ist kein Zwischenspeichern auf dem eigenen PC mehr nötig).
** Als Pfad für eine hochzuladene Datei sollte man auch eine URL auf irgendeine Datei im Internet angeben können, und die Datei soll dann automatisch auf den Server heruntergeladen werden (sehr nützlich z.B. bei einer Bildersuche im Internet, es ist kein Zwischenspeichern auf dem eigenen PC mehr nötig).

Version vom 14. Juni 2012, 20:07 Uhr

Die "Part-DB RW" Lagerverwaltung für Elektronikteile ist ein Web basierendes System zur Verwaltung elektronischer Bauteile. Das Original stammt von CL-Projekts.de und wird seit Anfang 2009 von K.J.(Theborg0815) weitergeführt.

Überblick

Lizenzmodell

Mit Ausnahme des Java-Menü stehen alle Module unter der GPL. Das Java-Menü ist Bierware. Somit ist eine kommerzielle Nutzung nur möglich, wenn es vom Ersteller des Menüs genehmigt wird.

Funktionen

  • Angabe von Lagerorten, Footprints, Kategorien, Lieferanten, Datenblattern, Preise, Bestellnummern, ...
  • Baugruppenverwaltung
  • Upload von Bauteil Bildern
  • Automatische Anzeige von Footprintbildern
  • Statistik
  • Auflistung von: "Zu bestellende Teile", "Teile ohne Preis" und "nicht mehr erhältliche Teile"
  • Liste von Hersteller-Logos
  • Informationen zu SMD-Beschriftungen von Widerstände, Kondensatoren und Spulen
  • Widerstandsrechner
  • Templatefähig mittels CSS

Anforderungen

  • Webserver mit ca. 10MB Platz
  • PHP >4.1.2 (PHP5 angetestet, derzeit keine Fehler gefunden) (bei uns im produktiven Einsatz mit PHP5, keine Fehler bekannt. damaltor)
  • Mysql Datenbank

Installation

Voraussetzungen:

  • Ein Webserver ist auf dem System installiert, z.B. Apache2
  • MySQL ist auf dem System installiert
  • zur Administration der Datenbank empfiehlt sich phpMyAdmin

Die aktuelle Version von PartDB kann hier heruntergeladen werden: [1]
Hier finden sich die neueren Release-Kandidanten: [2]

Anlegen der Datenbank

  • PhpMyAdmin starten und eine Datenbank part-db anlegen:
    Screenshot-4.png
  • Tabellen anlegen:
    • Den Reiter Import anklicken
    • und unter Location of the text file die Datei createtables.sql angeben. (Die ist im PartDB-Installationsarchiv enthalten.)
    • Go klicken
  • Falls vorhanden, existierende Daten importieren
    • Nochmal den Reiter Import anklicken
    • Datendatei unter Location of the text file eingeben
    • Go klicken
  • MySql-User anlegen
    Screenshot-5.png
    • Im Navigationsbereich Home klicken
    • Dann den Link Privileges klicken
    • Den Link Add a new User klicken
    • Dort mindestens die Angaben machen, die hier(Bild) zu sehen sind
    • Unter Global privileges alle Kästchen unter Data ankreuzen
    • Go klicken

Hinweis für Fortgeschrittene: Datenbanken kann man auch mit MySQLDumper[3] oder auf der Kommandozeile (mysql part-db < readme/createtabels.sql) importieren.

PartDB-Applikation installieren

  • Den Inhalt des Archivs Part-DB-x.y.z.tar.gz in das Serververzeichnis (unter Linux: /var/www ; unter Windows ???) entpacken
  • Das Verzeichnis, das nun in www steht, nach part-db umbenennen
  • .../www/part-db/config.php in einen Editor laden (.../www/part-db/lib.php in Version "part-db v0.1") und in der Gegend von Zeile 50 folgende Änderungen machen:
    • $link = mysql_connect ("localhost", "part-db", "");
    • mysql_select_db ("part-db");

Damit ist PartDB installiert und kann im Browser aufgerufen werden.


Öffentliche Liste einrichten

Am einfachsten geht es, wenn Ihr auf dem Server einen extra Ordner erstellt. In diesen kopiert Ihr die openlist.php und partdb.css. In der openlist.php müsst Ihr dann noch den Pfad zur partdb.css und zur lib.php vollständig angeben.

Alternativ könnt Ihr auch den Ordner ../partdb/openlist/ mit .htacsses wieder freigeben dieses klappt aber nur wenn der Webserver dieses erlaubt.


Anleitung zum Bau eines PartDB-Servers in einer virtuellen Maschine

Dieser Abschnitt hat noch Baustellenstatus

Voraussetzungen

Aufbau des Servers unter VMware Server 2.0

  • Herunterladen der TurnKey Core Appliance von http://www.turnkeylinux.org/core
  • Entpacken des Archivs in das Verzeichnis für virtuelle Maschinen
  • Importieren der VM über das Browser-Applet für den VMware Server:
    • Virtual Machine | Add Virtual Machine to Inventory klicken
    • Unter Inventory Standard klicken
    • Unter Content das Verzeichnis der zu importierenden VM doppelklicken
    • Die .vmx-Datei anklicken und mit OK bestätigen
  • Im Inventory-Bereich des Hauptfensters die neue VM auswählen und warten, bis rechts Daten und Befehle angezeigt werden.
  • Rechts in der Mitte unter Commands den Link Power on anklicken.
  • Den Reiter Console anklicken. Es öffnet sich ein Fenster mit schwarzem Hintergrund.
  • In das schwarze Fenster klicken und warten, bis das Konsolfenster der VM aufgeht.

Im Konsolfenster wird nach vollständigem Boot ein Dialog angezeigt, der im Wesentlichen die IP-Adresse der VM enthält, die in der Grundeinstellung über DHCP bezogen wird.

Über den einzigen Menüpunkt dieses Dialogs kann später eine statische IP-Adresse eingestellt werden.

Die virtuelle Maschine kann je nach Host-Betriebsystem mit folgenden Programmen administriert werden:

  • Windos
    • puTTY zum Einloggen in die VM
    • WinSCP für den (höchst komfortablen) Dateitransfer

Beide Programme sind kostenlos auf dem Web zu finden

  • Linux
    • ssh zum Einloggen in die VM
    • sftp für den Dateitransfer

Vorbereiten der VM für PartDB

  • Einloggen in die VM über puTTY/ssh
    • Nachladen der benötigten Zusatzmodule übers Web mit folgenden Befehlen
      • apt-get update
      • apt-get install mysql-server php5 phpmyadmin

Damit ist apache2, mysql, php5 und phpmyadmin installiert.

Als erstes wird über Webmin der User part-db in der VM angelegt:

  • https://<ip-adresse der vm>:12321/
    • 'System | Users and Groups klicken
    • Den Link Create a new user. klicken
      • Username: part-db
      • User ID: Automatic
      • Real name: part-db
      • Create home directory? No (Steht ganz unten!)
    • Create-Button klicken

Jetzt kann PhpMyAdmin im Browser des Hostsystems aufgerufen werden:

  • http://<ip-adresse der vm>/phpmyadmin

Weiter geht es dann wie oben unter Anlegen der Datenbank beschrieben, um die Datenbank anzulegen.

Nach dem Abschnitt Anlegen der Datenbank wird hier fortgesetzt:

Eine fertig konfigurierte virtuelle Maschine kann hier heruntergeladen werden: [4] Der Download ist mit gut 216 MB allerdings ziemlich fett.

TODO-Liste

Für allfällige Wünsche/Verbesserungsvorschläge bitte kurz im Diskusionsthread schreiben, nicht einfach hier selber eintragen (damit die Entwickler das auch sicher mitbekommen und auch kommentieren können). Zur Diskussion gehts hier: http://www.mikrocontroller.net/topic/135284

Noch nicht bestätigt

  • Entnommene Teile Projekten zuordnen
    • existiert das nicht schon im Sinne der "Baugruppen"?
      • vielleicht direkt beim "normalen" Entnehmen von Beuteilen eine Auswahl der Baugruppen anzeigen, damit es direkter (ohne Umweg über die Baugruppen) geht?
  • Ich würde gern die Datenblatt-Link-Spalte überarbeiten:
    • 1. NUR Icons. Auch für DC.
    • 2. Umsortierung, erst Datenblattsuchmaschinen, dann Herstellerlink evtl in eine eigene Spalte. Also zB Alldatasheet | DatasheetCatalog (nutzt den eigentlich jemand?) | evtl Google-Link | Reichelt-Link | Hersteller-Link bzw. manuell eingetragener Link
    • 3. Für die Icons würde ich das PDF-Symbol vorschlagen und darunter die Initialen schreiben, zB "AD" und "DC", für Google das Google-G, für reichelt das reichelt-Logo, für den manuell eingetragenen link ????
    • 4. bis hier hin sind die Änderungen Überschaubar. Ich hätte aber auch interesse daran, dass mehrere Links manuell hinterlegt werden können. z.B. gibt es für den AtXmega bis zu 4 Datenblätter. Wenn man dann zB für jeden dieser Links auch einen Titel festlegen kann, dann wäre das schön übersichtlich. Man könnte dann beispielsweise Datenblatt-kurzfassung, Datenblatt-Komplettfassung, Xmega Manual, Xmega Family overview usw. unabhängig voneinander mit verlinken. Diese Änderung kann ich nicht übersehen, denn mein php und sql ist ganz schön eingerostet... :D
    • Wenn Interesse besteht kann ich gern die Änderung der Icons und die hinterlegung mit den Links wie unter 1-3 beschrieben vornehmen. -- damaltor
  • BUG: Ein Foto kann nicht ersetzt werden. Foto bei Anlegen des Teils mit hochgeladen, dann über bearbeiten ein neues Foto hinzufügen -> Foto wird hochgeladen, aber nicht ersetzt.

Bestätigt, auf die Umsetzung wartend

Neue Features

  • Auflistung was alles an einem bestimmten Lagerort sein sollte (z.B. als Untermenü "Zeige" -> "Teile nach Lagerort")
  • Changelog hinzufügen (vielleicht einfach auf die Startseite den RSS-Feed von Part-DB einfügen?)
  • Benutzerverwaltung
    • Es sollen mehrere Benutzer angelegt werden können
    • Beim (erstmaligen?) Aufruf der Seite wird Benutzername+Passwort verlangt
    • Das System sollte genügend sicher sein, damit es auch ohne Bedenken auf einem (öffentlich zugänglichen) Webspace installiert werden kann
    • Viele Details müssen noch ausgearbeitet werden. Grundsätzlich könnte man aber schonmal eine einfache Benutzerverwaltung inkl. Login-Screen einbauen. Dann wäre das System schonmal soweit bereit, dass es auf einem Webspace installiert werden kann. Den vollen Ausbau könnte man dann nach und nach noch ergänzen.
    • Übergangslösung: Ich habe die part-db auf öffentlichem Webspace laufen, und habe mit .htpasswd und .htaccess eine Zugriffsbeschränkung eingeführt. So kann ich mehrere Nutzer mit eigenem Passwort autentifizieren, und habe die Sicherheit von Apache2 ohne große Arbeit. Wen Interesse besteht, kann ich gern ein paar Details zu hier aufschreiben. --damaltor
  • Dateianhänge für Baugruppen (Für Datenblätter, Bilder, Schema, Layout, ...)

Änderungen an vorhandenen Features

  • Footprints
    • Ein Footprint soll neu aus jeweils einem Kurznamen und einem Dateinamen bestehen
      • Beispiel für Dateineme: "IC_DIP28" (ohne Dateiendung)
      • Beispiel für den entsprechenden Kurznamen: "DIP28"
    • In allen Tabellen ist jeweils nur der Kurzname sichtbar
    • Der Dateiname wird nur für die automatische Zuordnung eines Footprint-Bildes gebraucht
    • Das Anlegen eines neuen Footprints sollte folgendermassen ablaufen:
      • 1) (optional) Aus einer Auflistung aller Footprint-Bilder den entsprechenden Dateinamen auswählen
      • 2a) Falls ein Dateiname gewählt wurde: Als Kurzname wird automatisch alles hinter dem Underscore vom Dateinamen gewählt (kann aber manuell natürlich noch verändert werden)
        • Hinweis: Die Dateinamen der Footprint-Bilder sind praktisch alle so gewählt, dass alles hinter dem Underscore als vernünftigen Kurznamen verwendet werden kann. Der Teil vor dem Underscore ist mehr oder weniger nur dazu da, dass alle Dateinamen eindeutig bestimmt sind (auch rekursiv).
      • 2b) Falls kein Dateiname gewählt wurde, gibt man nun den Kurznamen einfach selber ein
      • Man wählt noch den übergeordneten Footprint
    • Vielleicht können auch einfach alle Footprint-Bilder schon in der Liste der Footprints stehen, wenn man ein Teil anlegt?
  • Bestellinformationen:
    • Jedem Bauteil sollen mehrere (unbeschränkt viele) Lieferanten zugeordnet werden können
    • Zu jedem Lieferanten gehört jeweils die entsprechende Bestellnummer und der Preis
    • Nähere Infos und Grafik gibts hier: http://www.mikrocontroller.net/topic/135284#2553805
  • Bilderupload durch einen universellen Dateiupload ersetzen (keine Einschränkungen bezüglich Dateityp), damit neben Bildern auch andere Dateien einem Bauteil zugeordnet werden können.
    • Die Dateien sollen nach dem Upload, also auf dem Server, den gleichen Dateinamen bekommen wie die originale, hochgeladene Datei (keine "Zufallsnamen"). Optional sollte man aber den Dateinamen auch manuell angeben können.
    • Falls die hochgeladene Datei ein sehr grosses Bild ist, sollte eine Abfrage kommen, ob das Bild automatisch verkleinert werden soll.
    • Als Pfad für eine hochzuladene Datei sollte man auch eine URL auf irgendeine Datei im Internet angeben können, und die Datei soll dann automatisch auf den Server heruntergeladen werden (sehr nützlich z.B. bei einer Bildersuche im Internet, es ist kein Zwischenspeichern auf dem eigenen PC mehr nötig).

Bug-Fixes

Sonstiges

Preissuchskript von Michael Buesch: [5]
Die Beschreibung findet man hier: [6]

Screenshots

Links

Die Homepage des Org. Projektes finden Sie unter http://www.cl-projects.de/projects/part-db/.
PART-DB RW Fork/Weiterentwicklung: http://www.grautier.com/grautier/index.php?/archives/77-Part-DB-V0.1.3-RW.html
Diskussion: http://www.mikrocontroller.net/topic/135284#new
Subversion repository: http://code.google.com/p/part-db/
Teileverwaltung von Gutmensch (App. basiert): http://www.mikrocontroller.net/topic/89071#new
Elektronik Lagerverwaltung ein anderes Lagerverwaltungsprogramm, EXE für Windows
PartKeepr: https://github.com/partkeepr/PartKeepr, Demo