Vermutlich kennt ihr das: Die Zeit rast und das Jahr rennt und irgendwie ist auch schon wieder fast Dezember und man hat irgendwie vergessen, der liebsten Person einen Adventskalender zu basteln, obwohl man das doch so gerne wollte! Klar könnte man einen einfachen mit dieser ekligen Schokolade kaufen und wenn es im Budget und das schlechte gewissen groß genug ist, sogar einen von diesen hochwertigen, thematisch irgendwie relevanten. Aber gerade bei denen stimmt ja auch oft das Preis-Leistungs-Verhältnis so gar nicht und wenn wir ehrlich sind, ist etwas Selbstgebasteltes eben meistens doch viel schöner, persönlicher und na ja… eben auch günstiger und das ist ja auch relevant.

Mit diesem kleinen Tutorial möchte ich euch einen Ansatz anbieten, mit dem ihr einen ganz persönlichen Adventskalender basteln könnt. Wir werden lernen, wie wir mittels Python QR-Codes erzeugen, die auf eine kleine PHP-Seite verweisen, die dann anhand des Datums und des übergebenen Codes ermittelt, auf welches Lied auf Spotify weitergeleitet werden soll. Am Ende könnte man diese QR-Codes ausdrucken und an eine Süßigkeit tackern, an die morgendliche Kaffeetasse kleben, sie an die Spiegel hängen oder wie einen Strafzettel unter den Scheibenwischer legen – da seid ihr dann wieder gefragt. Ich kenne eure liebsten Personen ja nicht.

Außerdem machen wir die QR-Codes noch ein bisschen hübsch und am Ende gebe ich euch noch ein paar Ideen, wie man dieses Projekt mit etwas mehr Aufwand noch weiter entwickeln könnte. Alle Dateien findet ihr natürlich in einem Repository auf Github. Aber fangen wir, wie im jedem Projekt, mit dem Wichtigsten an: Einer gesunden Datenhaltung.

Eine Tabelle voller Musik

Weil es natürlich schnell gehen muss, machen wir es uns hier ein bisschen einfach. Das ist in Ordnung, weil wir die Daten nur an zwei Stellen benötigen und es (außer uns natürlich) keine User gibt, die Daten hinzufügen, ändern oder löschen können. Daher öffnen wir einfach eine Softwarelösung zur Tabellenkalkulation unserer Wahl und erstellen eine neue Tabelle mit den folgenden Spalten:

Day – Quasi das Türchen von 1-24
Guid – der Globally Unique Identifier, der später als Parameter übergeben wird und eindeutig sein sollte. Man kann sie automatisch erstellen lassen, random.org hat dafür aber auch eine sehr praktische Lösung.
Link – Der Link zum Spotify-Song (Rechtsklick -> Teilen -> Songlink kopieren)
Claim – Ein kleiner Text, den wir unter die QR-Codes schreiben wollen, bspw. ein Zitat oder eine nette Erinnerung?
Band, Title – das sollte selbsterklärend sein. Wir benutzen es hier nicht, aber es wäre ein guter Moment, das jetzt hinzu zu fügen

Nun folgt der anstrengendste, aufopferndste, schwierigste und herausfordernste Schritt in diesem Projekt: Das Befüllen der Tabelle mit tollen Songs. Es ist eben am Ende doch irgendwie ein Mixtape, also lasst euch Zeit, gebt euch Mühe und seid mit dem Herzen dabei. Das ist nicht der Moment für Pfusch. Am Ende solltet ihr jedenfalls eine Tabelle haben, die ungefähr so aussieht:

Ich gebe zu, ich habe es mir hier ein bisschen einfach gemacht

Damit Python und später PHP damit aber keinen großen Hassle haben, sollten wir das noch eben in json umwandeln. Manche Programme können das von selbst, andere benötigen dafür ein Plugin, aber in diesem Falle ist es wirklich am einfachsten, wenn wir dafür eine Seite wie aconvert.com bemühen, alles entsprechend auswählen und hochladen, um uns dann das Ergebnis runter zu laden. In einem Kundenprojekt würde ich sowas natürlich nicht machen, aber wir wollen ja nicht lernen, wie man mit Python Tabellen umwandelt oder Masken baut, sondern QR-Codes erzeugen. Also machen wir das jetzt!

2 Comments Add New Comment

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hallo! Mein Name ist Marco Friedersdorf und bin Freelancer im Bereich der Software-Entwicklung und IT-Beratung. Mit Artikeln wie diesem möchte ich einen kleinen Einblick in meine Arbeit geben und über die Dinge sprechen, die mich als Informatiker beschäftigen.
tripadvisor flickr americanexpress bandcamp basecamp behance bigcartel bitbucket blogger codepen compropago digg dribbble dropbox ello etsy eventbrite evernote facebook feedly github gitlab goodreads googleplus instagram kickstarter lastfm line linkedin mailchimp mastercard medium meetup messenger mixcloud paypal periscope pinterest quora reddit rss runkeeper shopify signal sinaweibo skype slack snapchat soundcloud sourceforge spotify stackoverflow stripe stumbleupon trello tumblr twitch twitter uber vimeo vine visa vsco wechat whatsapp wheniwork wordpress xero xing yelp youtube zerply zillow px aboutme airbnb amazon pencil envelope bubble magnifier cross menu arrow-up arrow-down arrow-left arrow-right envelope-o caret-down caret-up caret-left caret-right