Kill your Darlings – but honor them!

Thumbnail_project-cemetery

Wer kennt es nicht: Mit viel Leidenschaft arbeitest du lange an einem Projekt. Weil es eine super Idee ist, das Thema dich interessiert oder was auch immer. Du steckst viel Herzblut rein – doch irgendwann kommt der Hammer: Dein Projekt kann nicht weitergeführt werden, sei es aus technischen, finanziellen, organisatorischen oder strukturellen Gründen – kurz – dein Projekt stirbt.

Es ist schade, wenn ein solches Projekt einfach nicht weitergeführt wird, an dem etliche Stunden investiert wurden. Nur weil ein Projekt stirbt, ist es nicht von der Erdoberfläche verschwunden.

Oder doch? Was ist, wenn du die Möglichkeit hast, die gestorbenen Projekte unter die Erdoberfläche zu befördern und somit zu würdigen? Genau das kannst du jetzt tun: Begrabe und ehre deine gestorbenen Projekte digital und verewige sie so. Ganz treu dem Motto: Kill your Darlings – but honor them!

Begrabe hier dein Projekt.

(bas)

Idee & Motivation
MMP Studenten kennen den Satz «Kill your Darlings» nur zu gut. Viele Projekte und Ideen werden verworfen. Doch das sollte kein Anlass sein, sie zu vergessen. Und schon ist die Idee geboren. Da ich gerne Programmiere, war auch die Richtung der Umsetzung bald mal klar.

Konzeption und Umsetzung
Meine Konzeption fing einfach mal damit an, dass ich mir aufschrieb, was der Friedhof genau an Funktionen haben soll. Danach startete ich in die Design Phase.

  • Design
    Ich habe mich bewusst für ein Dark-Theme entschieden, da ein Friedhof stereotypisch auch eher dunkel & düster dargestellt wird. Das Screendesign setzte ich in Adobe XD um. Mühe hatte ich damit, zu überlegen, was alles für Error Messages passieren können (Password stimmt nicht, User nicht verifiziert usw.). Ansonsten fand ich es toll, dass ich so designed habe, als ob ich es nicht programmieren müsste. Ich hatte zum Beispiel noch keine Ahnung ob das mit einer Skizze im Input Field geht.
  • Development
    Die Programmierung wollte ich ohne CMS machen. Also plain HTML, CSS, JS & PHP. Fürs CSS nutzte ich Tailwind CSS, was mir vieles einfacher machte, v.a. die Responsiveness, da Tailwind den Mobile First approach verfolgt. Doch schon bald folgte PHP: Ich stiess an meine Grenzen und dachte mir «was solls, ich geh all-in». Und so setzte ich mich zuerst noch einmal mit den Basics auseinander, bevor ich mir dann mit etlichen Youtube Tutorials Objekt-orientiertes PHP beibrachte. Und irgendwann klappte es auch.
    Die grossen Herausforderungen waren die Verifizierung des Nutzers per Mail und der Mailversand. Weil ich lokal entwickelte, funktioniert der Mailversand von PHP nicht. So musste ich halt Umwege finden. Die Verifizierung ist nun hacky-whacky gelöst: Beim Erstellen eines Accounts wird ein random generierter String (Token) in die DB geschrieben und dieser gleich der URL zum Verifizieren des Kontos als Parameter mitgegeben. Wird die Homepage aufgerufen, wird geschaut, ob ein Token-Parameter vorhanden ist und falls ja, ob genau ein solcher in der DB ist. Falls ja, setze den Nutzer auf verifiziert. Hacky Wacky? Ja, weil theoretisch ist der String nicht einzigartig…
    Naja, nun klappt alles! 😀

Selbstkritik & Lessons Learnt
Die Seite funktioniert! Ein Projekt das nicht begraben werden muss, juhui! Doch rückblickend würde ich einiges anders machen, vor allem beim Programmieren. Objekt-orientiertes Programmieren ermöglicht vor allem die Wiederverwendbarkeit des Codes. Doch ganz so wiederverwendbar habe ich meinen php-Code doch nicht aufgebaut…
Einige Features fehlen auch noch, was ich bei der Konzeption nicht daran gedacht hatte. Zum Beispiel fehlt ein Password-Reset. Oder der Token zum Verifizieren ist unbeschränkt gültig.
Was aber sehr gut funktionierte, war die oben erwähnte Skizze in Input Fields. Ich konnte auf eine Library zurückgreifen, aber dass das Feature implementiert werden konnte, darauf bin ich schon stolz.