Logo ICT-BZ

Dealradar

Kurzinfo

Themenbereich

Softwareentwicklung

Lernende/r

Jeremy Nelson

Lehrbetrieb

Suva

Betreuer

Manuel Gut

Projekt-Website

dealradar.technify.app

Aufgabenstellung

Meine Idee war es, eine Website zu erstellen, auf der man Preise von Produkten tracken kann. Ursprünglich wollte ich verschiedene Websites scrapen, habe mich dann aber entschieden, nur Interdiscount zu tracken. Die Ziele waren:
- Preise von Produkten können getrackt werden.
- Der Preisverlauf wird grafisch dargestellt.
- Produkte können zur Wunschliste hinzugefügt werden.
- Es gibt eine Benachrichtigung bei Preisänderungen.
- Ein Bewertungssystem zeigt, wie gut der aktuelle Preis ist.

Ergebnisse

Was habe ich realisiert und was funktioniert? Man kann eine URL hinzufügen, die dann gescraped wird. Der Preis wird jeden Tag aktualisiert, und die Daten werden in einer Datenbank gespeichert. Produkte können zur Wunschliste hinzugefügt werden, und das Bewertungssystem funktioniert.
Nicht erreicht:
Die Benachrichtigung bei Preisänderungen wurde nicht umgesetzt, da ich mich auf andere Funktionen konzentriert habe.

Lösungskonzept

Der erste Schritt war die Entwicklung des Backends. Ich entschied mich für Python, da es über gute Bibliotheken für Webscraping (z. B. BeautifulSoup) verfügt. Zunächst erstellte ich ein einfaches Script, um die Funktionsfähigkeit des Scraping zu überprüfen. Nachdem dies funktionierte, entwickelte ich das Script weiter zu einem Webserver.

Danach konzipierte und erstellte ich die Datenbank. Mit Supabase als Backend-Service richtete ich Tabellen für Produkte, Preise und Nutzerdaten ein.

Im letzten Schritt entwickelte ich das Frontend mit Next.js, da ich das Framework besser kennenlernen wollte. Die Benutzerauthentifizierung wurde über NextAuth realisiert, um Login und Registrierung zu vereinfachen.

Aufgetretene Probleme

Das Deployment war etwas mühsam, da ich den Webserver mit einer EC2-Instanz hoste und einen Lambda-Service habe um die Preise zu aktualiseren. Die Einrichtung war komplex und zeitaufwändig. Da ich jedoch frühzeitig mit dem Deployment begann, hatte ich keinen Zeitdruck und konnte die Probleme lösen.

Ausblick

Es ist möglich, dass ich noch weiter an diesem Projekt arbeiten werde (z.b. Support für andere Webshops (digitec, mediamarkt, etc..) oder email Benachrichtigung), aber ich bin mit dem aktuellen Stand zufrieden.