Dashboard erstellen - welche Tools / Framework?

Django, Flask, Bottle, WSGI, CGI…
Antworten
sagrotan
User
Beiträge: 4
Registriert: Sonntag 2. November 2014, 20:47

Hallo,

seit einer Woche recherchiere ich im Netz und fühle mich ein wenig von den Möglichkeiten erschlagen, daher meine Frage
hier im Forum:
Ich habe eine csv Datei (wird nur einmal jährlich aktualisiert), deren Daten ich gerne als Web-Dashboard visualisieren möchte.
Gerne auch mit interaktiven Slidern, etc. für Usereingaben. Hierzu habe ich schon einiges zu Plotly Dash gefunden und bin schon sehr angetan (Plotly Dash würde genau meinen Erwartungen bei der Darstellung erfüllen).
Jetzt kommt der Punkt: Die User sollen sich einloggen müssen, um z.B. nur die Daten im Dashboard sehen zu können, die zu ihrer Abteilung gehören (User1 = Abteilung A, User2 = Abteilung B, ... - Abteilung wäre eine Spalte in den Daten).
Die "Enterprise" Edition von Plotly bietet User Atuhentifizierung, nur ist es unbezahlbar ;O)

Ich gehe mal davon aus, ein Framework dazu zu benötigen. Ich habe grundlegende Kentnisse mit Django, aber wäre das nicht ein wenig überdimensioniert? Hier im Forum / Netz habe ich von Pythononwheels bzw. Dash on Wheels gelesen, kann aber nicht einschätzen, ob das "minimalistisch" genug ist. Oder ob ich nicht doch zu Flask als Framework greifen muss / sollte?!
Bei der User-Authentifizierung möchte ich nicht über Dritte gehen (also Google, Twitter, o.Ä.).
  • Im Grunde genommen sind es max. 10.000 Zeilen an Daten in der CSV Datei
  • Es sind max. 30 Leute, die sich einloggen werden (und das auch nicht gleichzeitig)
  • Daten werden selten aktualisiert.
  • Später möchte ich weitere CSV Dateien als Dashboard implementieren...
  • Ein Webhosting (10 Euro / monatlich) wäre kein Problem.
Ich habe grundlegende Kentnisse in Python und bin lernwillig, aber mir fehlt echt das Wissen, was alles als Minimalanforderung notwendig wäre. Das Ganze muss auch nicht morgen fertig werden, sondern ist eher ein mehrmonatiges Projekt um endlich von Excel Pivot Dashboards weg zu kommen ;O)

Viele Grüße
sagrotan
einfachTobi
User
Beiträge: 491
Registriert: Mittwoch 13. November 2019, 08:38

Grafana kann mit einem Plugin auch CSVs lesen und bietet Nutzer-Authentifizierung. Wie weit die Rechteverteilung zum Beschränken des Zugriffs auf einzelne Datenquellen funktioniert, weiß ich nicht. Ggf. musst du die Leute in einzelne "Organisationen" stecken. Es gibt eine Open-Source Version welche im Rahmen der AGPLv3-Lizenz auch die kommerzielle Nutzung kostenlos zulässt. Zur schnellen Installation wird ein Docker Image angeboten.
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

Du könntest auch Power BI benutzen. Der private Gebrauch ist kostenlos und ich empfinde es als sehr einfach. CSV-Einlesen geht über ‘Klicki-Bunti-Oberfläche’.
Sofern andere darauf zugreifen sollten, gibt es da für einen kleinen Münzeinwurf auch die Cloudlösung. Die kann dann auch Python, wenn du auf irgendwelche Bibliotheken nicht verzichten kannst.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
LukeNukem
User
Beiträge: 232
Registriert: Mittwoch 19. Mai 2021, 03:40

sagrotan hat geschrieben: Montag 2. August 2021, 22:44 Ich gehe mal davon aus, ein Framework dazu zu benötigen. Ich habe grundlegende Kentnisse mit Django, aber wäre das nicht ein wenig überdimensioniert? Hier im Forum / Netz habe ich von Pythononwheels bzw. Dash on Wheels gelesen, kann aber nicht einschätzen, ob das "minimalistisch" genug ist. Oder ob ich nicht doch zu Flask als Framework greifen muss / sollte?!
Nunja, zwei freundliche Menschen haben Dir hier bereits Grafana und PowerBI empfohlen, und das sind zweifellos sehr gute Lösungen für sowas.

Andererseits hast Du, wenn Du selbst etwas entwickelst, natürlich die maximale Kontrolle über Dein Ergebnis und und die größtmögliche Flexibilität bei der (Vor)Verarbeitung Deiner Daten. Ob Du nun Flask oder Django nimmst, ist dann wieder eine ähnliche Frage, wobei ich zugeben muß, daß ich seit vielen Jahren nichts mehr mit Django gemacht habe und nur noch mit Flask arbeite.

Nach meinem Gefühl (!) ist Flask leichtgewichtiger, kleiner und flexibler als Django, während Django andererseits von Haus aus schon vieles dabei hat, das Du brauchst. Das kann man bei Flask zwar alles nachrüsten, muß das dann aber eben auch tun -- das bietet zwar einerseits die maximale Flexibilität, bedeutet aber andererseits natürlich auch einen höheren Lern- und Arbeitsaufwand. ;-)

Andererseits bieten Dir Python und Flask extrem leistungsfähige Möglichkeiten, sowohl was die Verarbeitung, als auch die Visualisierung Deiner Daten angeht. Deine CSV-Date(i)en könntest Du etwa mit der Statistik-Library Pandas [1] einlesen und bearbeiten, und dann daraus schicke Visualisierungen erzeugen -- etwa mit Altair [2], Bokeh [3a] und Pandas-Bokeh [3b], oder auch mit D3 [4]. Bestimmt gibt es noch viele andere Frameworks für hübsche, interaktive Visualisierungen... Und, oh, CSV-Daten lassen sich ja oft sehr hübsch tabellarisch darstellen, dafür gibt es mit Datatables [5] ebenfalls eine hübsche Bibliothek, mit der Du eine durch- und sortierbare Tabelle auf Dein Dashboard bringen kannst.

Was das Hosting angeht, entnehme ich Deinen Ausführungen, daß Du das für ein Unternehmen implementieren möchtest und Du Dir Gedanken über die Datensicherheit machst. In solchen Fällen könnte es sinnvoller sein, das auf einem kleinen, preiswerten Single-Board-Computer in Euren eigenen Räumlichkeiten zu betreiben. Zumindest so lange, bis Du Dich durch das Thema Websecurity gefräst hast, etwa beim OWASP [6]. Ein kleiner RasPi hätte zudem den Vorteil, daß Du ein Display an die Wand nageln und dort Dein Dashboard ständig mit einem Webbrowser im Kioskmodus anzeigen kannst -- jedenfalls die Daten, die alle sehen dürfen. ;-)


[1] https://pandas.pydata.org/
[2] https://altair-viz.github.io/
[3a] http://bokeh.org/
[3b] https://github.com/PatrikHlobil/Pandas-Bokeh
[4] https://d3js.org/
[5] https://datatables.net/
[6] https://owasp.org/
Antworten