Einschätzung zur Umsetzbarkeit eines kleinen Hobbyprojekts

:DD

Ensign
Registriert
Apr. 2008
Beiträge
187
Hallo zusammen,

ich bin zwar ITler, habe aber mit Programmierung/Datenbanken und Webdesign quasi keine Erfahrung. Lediglich mit Webdesign (HTML/CSS) habe ich mich mal kurzzeitig beschäftigt.

Ich benötige einmal eine Einschätzung dazu, ob das folgende (Hobby)-Projekt für jemanden, der bei Null anfängt umsetzbar ist oder ob es eher utopisch ist.

Zunächst mal zur gegenwärtigen Situation:
Ich bin aktuell in einem Freundes/Bekanntenkreis (rund 40 Personen), bei welchem es darum geht Musik (Artist/Songname/YouTube-Link/Bewertung) in eine Excel-Datei einzutragen. Dies geschieht innerhalb einer MS365 (Excel im Webbrowser)-Umgebung. Dabei dürfen nur Songs eingestellt wurden, die nicht "gesperrt" sind. Gesperrte Songs sind einfach welche, die in den Jahren zuvor schon mal eingestellt wurden. Eine Prüfung, während des Eintragens, ob der Song gesperrt ist, gibt es derzeit nicht. Zudem bewertet jede teilnehmende Person sämtliche eingestellten Songs (außer den Eigenen).

Die gleichzeitige Bearbeitung der Datei macht regelmäßig Probleme, teilweise wird sie nicht korrekt gespeichert etc., woraufhin ich mir überlegt habe, ob es nicht möglich sei, dies völlig unabhängig von MS365 zu gestalten. Wichtig wäre hierbei, dass sich dies sowohl vom klassichen Rechner/Browser als auch vom Smartphone/Tablet bedienen lässt.

Meiner laienhaften Einschätzung nach würde folgendes benötigt werden:
  • Webserver für die tatsächliche zu bedienende Anwendung (HTML/CSS/JavaScript etc.)
  • Datenbank zur Speicherung der eingestellten Songs, der gesperrten Songs
  • Um das nicht im Internet "frei" zugänglich zu machen, würde wahrscheinlich auch ein Login-/Usermanagement benötigt werden

Über Anregung/Einschätzung wäre ich dankbar, aber auch für den Hinweis, dass das jemand ohne Erfahrung lieber bleiben lassen sollte.
 
Datenbank und Owncloud oder so? Microsoft Access?
G-AI:
To enable multi-user access to a Microsoft Access database online, you'll need to split the database into a front end (the user interface) and a back end (the data tables) and store the back end on a shared location that users can access, according to Microsoft Support. This allows multiple users to work on the same data simultaneously.
Ich hab auch keine Ahnung. 🤷
 
  • Gefällt mir
Reaktionen: konkretor und K3ks
Wenn Excel Probleme macht, ggf mal Google Sheets ausprobieren, das ist mehr für paralleles Editieren ausgelegt.
 
  • Gefällt mir
Reaktionen: Micke und K3ks
Hi...

:DD schrieb:
[...] möglich sei, dies völlig unabhängig von MS365 zu gestalten. Wichtig wäre hierbei, dass sich dies sowohl vom klassichen Rechner/Browser als auch vom Smartphone/Tablet bedienen lässt.
Mal abgesehen davon, dass es sicherlich auch für diesen Zweck Fertiglösungen geben wird und niemand das für Dich/Euch realistische Aufwandsvolumen einzuschätzen vermag, weil da die immer vorhandene Subjektivität in die Quere kommt, wird das Problem der zeitgleichen Multi-User-Nutzung immer bestehen.
"Möglich" grundsätzlich sicherlich als plattformunabhängige Browseranwendung des Bedienerinterface (sog. Frontend), aber für eine (mögl.) fehlerfreie Multi-User-Funktionalität "verlangt" das wohl insgesamt betrachtet eher nach einer Server-gestützten Datenbank-angebundenen Lösung - rechtfertigt das im Verhältnis den (Ressourcen-)Aufwand?

Evtl. kann G*-Sheets ja eine funktionierende Mehrbenutzer-Alternative sein.

Btw.:
Was kann denn eine "geteilte Datei" in einer Nextcloud-Umgebung besser, als die jetzige M$365-Cloudvariante?

...upps...zu langsam getippt 😇​
 
  • Gefällt mir
Reaktionen: K3ks
:DD schrieb:
für jemanden, der bei Null anfängt umsetzbar ist oder ob es eher utopisch ist.
Ich staune ja immer wieder, womit die Anfänger die bei Null beginnen heutzutage starten. :-)

Bei mir waren das eher Miniprogramme so im Sinne von ein paar Zeilen (Satz des Pythagoras berechnen und solche Geschichten), wo es vor allem erst mal darum ging, explorativ die Möglichkeiten zu entdecken und rum zu probieren, um überhaupt erst mal ein Gefühl fürs Programmieren zu bekommen.

Wenn man sich dann ein bisschen ausprobiert hat, dann hat man sich vielleicht auch mal an ein "größeres Projekt" gewagt. Und dann auch nur so in dem Sinne: Was machen wir, wenn der Benutzer eine Rechenaufgabe eingibt. Wie parst man das und geht mit geschachtelten Klammern um usw.

Bei Deinem Projekt ist ja sehr viel involviert. Programmierung ist ja die eine Sache. Aber dann hängen ja noch andere Sachen drin wie das HTML/CSS, was man "nebenbei" noch mit lernen muss und was auch nicht ganz Ohne ist. Plus das ganze drum herum mit Webserver usw.

Manche brauchen ja ein Projekt, um daraus Motivation zu ziehen. Aber man sollte sich zu beginn auch nicht überfordern. Das lernen braucht halt eine gewisse Zeit und wenn so ein größeres Projekt ein Ziel ist, dann ist man eine lange Zeit nur an machen ohne aber wirklich ein Ergebnis zu sehen und damit auch ein (motivierendes) Erfolgserlebnis zu haben. Zumindest sollte man überlegen, wenn man so ran geht, das in sinnvolle kleine Etappen zu unterteilen.

Noch ein zusätzlicher Hinweis: Gerade am Anfang lernt man sehr viel und verändert damit auch die Art, wie man programmiert. Den Code den man jetzt schreibt wird man in einem Monat nicht wieder so schreiben.
Man sollte sich gerade zu Anfang also nicht darauf versteifen gleich aus dem Stand eine 100%-Lösung hinzubekommen, weil man dann sich dann darin auch schnell mal verliert ohne wirklich Vorwärts zu kommen, sondern überhaupt erst mal anfangen und sich viel ausprobieren inkl. die anerkennen, das man Fehler machen darf und das die ganz normal dazu gehören, um sich weiter zu entwickeln.
 
madmax2010 schrieb:
K3ks schrieb:
Microsoft Access?
k3ks-profilbild.jpg :P
Ich schmunzelte.👌

Das Google-Tabellengedöns hatte ich auch erst erwähnt, aber dann gelöscht, ka warum. Naja, komfortabler als strg+f wäre halt ne Datenbank mit Interface I guess...

Naja, Datenbankproggen vor 1000 Jahren fand ich jetzt relativ easy, aber überhaupt keine Ahnung mehr, auch hab ich nichts mit (der) GUI zu tun gehabt. Allgemein Programmieren hab ich auch 1000 Jahre nicht gemacht, aber angefangen hab ich auch mit so: Kunde kauft 5 Schrauben, 5kg Pressfleisch, macht x Geld und muss y verpackt werden, wiegt insgesamt z... Naja, genug OT bevor ich noch paniert werde (Schnitzel.exe). :freak:
 
andy_m4 schrieb:
Ich staune ja immer wieder, womit die Anfänger die bei Null beginnen heutzutage starten. :-)

Programmiert hab ich "damals" in der Berufsschule natürlich schon und damals hat es auch mit ebenfalls einfachen Aufgaben wie Rechnern oder Zahlen umwandeln gestartet. Damals ist nur 15 bis 20 Jahre her und abgesehen von der Schule hatte ich damit auch nie wieder was am Hut, weil es nicht gebraucht wurde. :)

Ich lasse mir die Sache aber nochmal durch den Kopf gehen bzgl. Aufwandggü. der tatsächlichen Notwendigkeit. Ne Nextcloud-Instanz hätte ich aber beispielsweise, vllt kann man es damit etwas "einfacher" gestalten...

Ist ja auch nur eine Freizeit/Hobby-Geschichte ohne Zeitdruck.

madmax2010 schrieb:
und welchen hintergrund hast du?
Gelernt Informatikkaufmann (ich glaube die Berufsbezeichnung gibts heute nicht mehr), dann Systemadmin für klassiche Client/Windows-Server-Umgebung. Aktuell Jira-Administation.
 
Umsetzen lässt sich sowas als Hobby schon, aber dann muss man da halt Bock drauf haben. Ist ne Menge an Kladderadatsch, denn man erst mal lernen muss.

Wenn du schon ne nextcloud instanz hast, ich hab auf meiner Instanz Collabora integriert, damit wie mit google docs / sheets files von Usern gemeinsam bearbeitet werden können, funzt wunderbar. Wahrscheinlich deutlich weniger aufwand, als direkt was zu programmieren. Wie gesagt, es geht darum, worauf du Lust und wofür du Zeit hast.
 
  • Gefällt mir
Reaktionen: :DD
:DD schrieb:
Ich benötige einmal eine Einschätzung dazu, ob das folgende (Hobby)-Projekt für jemanden, der bei Null anfängt umsetzbar ist oder ob es eher utopisch ist.
Das ist umsetzbar und nicht utopisch. Ich bewerbe einfach mal Ruby on Rails, das nimmt dir viel low-level Kram ab, kannst aber bei Bedarf den low-level Kram auch ändern.
Das kann auch scaffolding, d.h. du definierst dein Datenbankmodell (User, Songs, ...) und erhältst automatisch generierte Webseiten zum erstellen/bearbeiten/entfernen/... (aka CRUD) der Daten, als Ausgangsbasis für die weitere Entwicklung. Für Rechtemanagement, Login und Co. gibt es etablierte Plugins ('Gems'), die nach 5 Minuten schonmal grundsätzlich funktionieren und die dann nur noch Projektspezifisch eingestellt werden müssen.

Unter der Annahme, dass du Bockk auf so ein Projekt hast. Sicherlich geht das auch einfacher ohne Eigenbau.
 
  • Gefällt mir
Reaktionen: :DD
BeBur schrieb:
Ich bewerbe einfach mal Ruby on Rails
Mit Ruby on Rails macht man sicherlich nichts falsch aber auch das muss man ja erst beherrschen.
Und ganz um den Programmierkram und ein Verständnis was geschieht, kommt man ja auch dabei nicht drum rum.
Aber ja. Nachdem nun klar ist, das wohl doch Programmiererfahrungen vorliegen, ist es möglicherweise dann doch realistischer das umzusetzen.
 
Ist ja ein relativ simples CRUD Projekt, wo man sich die Basics der ganzen Technologien aneignen kann. HTML, SQL und eine serverseitige Programmiersprache mit Web- und Datenbankserver kommen da als erstes zusammen, mit sowas hab ich auch angefangen. Wenn's PHP sein soll, kann man mit Xampp (https://www.apachefriends.org/de/index.html, wahnsinn, das gibt's immer noch. :)) recht einfach loslegen

Würd auch erstmal mit Crud anfangen, und sowas wie Rechtemanagement und Dubletten Check und Bewertung mach und mach dranflanschen. Ein Schritt nach dem anderen. Evtl schmeißt Du Deinen ganze Codebasis auch irgendwann weg, wenn Du merkst, dass die erste Version geottig war. Oder wenn Du merkst, dass man dich besser was mit Templat Eingine nutzt.

Wir gesagt, man muss Spaß dran haben, dann wird das was und ist ein guter Einstieg. Wenn man das aber nur als Last empfindet wird man auch relativ bald aufgeben.
 
Ist auf jeden Fall machbar, die Herausforderung sind dabei die vielen unterschiedlichen Themenkomplexe und Sprachen, die das beinhalten kann.
Ich würde empfehlen das versuchen auf ein Minimum zu reduzieren, damit man zeitnah ein Ergebnis sieht und dann iterativ die App ausbauen kann.

Konkret z.B. eine Flutter-App mit Firebase-Backend. Oder sowas in der Art.
Wenn du das einmal aufgesetzt hast, musst du praktisch nur an einer Stelle (und in einer Sprache) basteln und kommst zackig voran.
 
Sowas kannst du gemütlich einer Datenbank überlassen. Du musst nur die Constraints richtig setzen, z.b. das Titel unique sind. Schon bekommst ein Fehler beim speichern doppelter Einträge. Man kann auch definieren wie viel % des Strings identisch sein müssen, muss also kein 100% match sein.

Zum aufräumen alter Daten kannst KIs nutzen, z.b DB exportieren, prüfen und SQL für cleanup generieren lassen.

Mit Spring Boot (Java) bekommst z.b. schnell Webseiten mit Login und DB Anbindung hin. Da bindest nur die Bibliotheken ein die du dafür brauchst, spring-security kommt automatisch mit, d.h. du hast schon mal Basic Auth Logins ohne was zu machen. Mit Thymeleaf hast du eine Template Sprache für die UI, ähnelt HTML / CSS.

Z.b. hier mal eine Übersicht wie sowas mit Hosting aussehen würde: https://hostingtutorials.dev/blog/free-spring-boot-host-with-render

Docker ist ein Container Tool, wo man den ganzen Kram reinpackt, Programm, Java Umgebung usw. und das läuft isoliert vom Rest auf dem Server. Lokal oder auf privatem Server kannst das Spring Boot Projekt auch direkt so starten. Als Entwicklungsumgebung wäre z.b. IntelliJ top
 
Zuletzt bearbeitet:
Zurück
Oben