Projekt

PartyMap: Die Nightlife-Landschaft mit KI kartieren

Eine Echtzeit-Plattform für Event Discovery mit AWS Serverless, LLMs und interaktiven Karten bauen. Von fragmentierten Stories zu strukturierten Events.

9 Min. Lesezeit29.08.2025Justin Lanfermann
Interactive PartyMap view with clustered event markers and filter controls

Als ich an der Technischen Universität München ankam, entdeckte ich schnell ein frustrierendes Problem: Es gab keinen zentralen Ort, um Underground-Partys, Rooftop-Konzerte oder spontane Kunstshows zu finden. Event-Informationen waren überall verstreut, vergraben in Instagram Stories, versteckt in obskuren Telegram-Kanälen oder auf halb zerrissenen Flyern an Straßenecken. Als jemand, der gerne Lösungen für echte Probleme baut, fragte sich mein innerer Engineer sofort: Was wäre, wenn es eine Karte gäbe, die dir wirklich zeigt, wo gerade etwas passiert? Statt mit kryptischen Hashtags und verschwommenen Screenshots Detektiv zu spielen, könntest du einfach eine Karte öffnen und sehen, wie die Hotspots des Abends in Echtzeit lebendig werden.

Aus dieser einfachen Idee wurde PartyMap, eine experimentelle Webanwendung, die Social-Media-Posts sammelt, mit KI verarbeitet und alles auf einer interaktiven Karte visualisiert. Es ist zu gleichen Teilen Datenpipeline, geospatial Interface und Abenteuer in cutting-edge Technologie. In diesem Beitrag nehme ich dich mit durch den Bauprozess: die Herausforderungen, die Architektur dahinter und die Lektionen, die ich gelernt habe. Kleine Warnung: Es sind deutlich mehr AWS-Services beteiligt, als ich ursprünglich erwartet hatte.

Bild wird geladen...
PartyMap: gruppierte Events rund um Freising
Das PartyMap-Interface mit gruppierten Events und Kategorie-Icons. Smoothes Panning und Zoomen, anpassbare Dark- und Light-Themes sowie debounced Viewport Queries halten die Experience responsive.

Das Problem: Verstreute Nightlife Discovery

Moderne Städte pulsieren vor Pop-up-Events und Underground-Kultur, aber sie zu entdecken fühlt sich an wie ein Puzzle mit fehlenden Teilen. Clubs kündigen Shows auf Instagram an, Promoter verstecken wichtige Details tief in Story Highlights, und Leute fragen ständig „Was passiert heute Abend?“ in Gruppenchats, in der Hoffnung, dass jemand anderes die Recherche gemacht hat. Ich wollte zwei grundlegende Herausforderungen lösen:

Auffindbarkeit. Statt endlos durch Social-Media-Feeds zu scrollen und zu hoffen, nichts Gutes zu verpassen, sollten Nutzer in ihre Nachbarschaft hineinzoomen und sofort sehen können, was dort passiert. Denk an Foursquare trifft Event Discovery, aber tatsächlich nützlich für echte Erkundung.

Kontext. Fotos und Captions erzählen eine Geschichte, beantworten aber nicht immer die wichtigen Fragen. Ist das ein entspannter Jazzabend oder ein intensiver Techno-Rave? Lohnt es sich, dafür quer durch die Stadt zu fahren? Das bedeutete, unstrukturierte Social-Media-Posts in strukturierte, durchsuchbare und sinnvolle Daten zu verwandeln, die Menschen wirklich bei Entscheidungen helfen.

Die Datenpipeline und AI Engine bauen

PartyMap zu bauen erforderte deutlich mehr, als nur Pins auf eine Karte zu setzen. Im Kern steckt eine ausgefeilte mehrstufige Datenpipeline, die Inhalte von Social-Media-Accounts aufnimmt, mit künstlicher Intelligenz anreichert und alles in skalierbaren Cloud-Datenbanken speichert. Stell es dir wie eine Fließbandanlage für Party Intelligence vor, nur dass sie mit dem Chaos und der Unvorhersehbarkeit von Social Media umgehen muss.

Posts und Events aufnehmen

Das Fundament des Systems ist AWS DynamoDB als primärer Datastore. Ich habe separate Tabellen für verschiedene Inhaltstypen entworfen: party-map-accounts-table speichert Social-Media-Account-Informationen, party-map-events-table hält Event-Metadaten, während party-map-images-table und party-map-videos-table Medienreferenzen verwalten. Zusätzliche Batch-Tabellen verfolgen den Verarbeitungsstatus von Posts, Accounts und KI-Requests in der gesamten Pipeline. Das GPTBatch-Modell überwacht zum Beispiel OpenAI Batch Jobs und verfolgt, ob ein Job pending, running oder complete ist.

Jeder neue Post läuft durch ein sorgfältig orchestriertes Queue-System: Inhalte werden vom Quellaccount geholt, einem Processing Batch zugewiesen und mit essenziellen Metadaten gespeichert. Batch Worker verarbeiten diese Posts dann asynchron. So kann die Ingestion Pipeline auch dann sauber skalieren, wenn dutzende Events gleichzeitig veröffentlicht werden. Dieser Batch-Ansatz reduziert außerdem die Betriebskosten deutlich, da OpenAIs Batch API 50 % weniger kostet als Echtzeitverarbeitung.

Während des Prototypings nutzte ich Bright Data für kontrollierte Scraping-Aufgaben, um Ingestion Flows gegen öffentlich sichtbare Seiten zu testen. Das war auf experimentelle Läufe begrenzt und so konfiguriert, dass robots.txt und Plattformbedingungen als Teil meines Compliance-first-Ansatzes respektiert wurden.

Ingestion Workflow: Quellaccounts -> Fetch -> Queue -> Batch Processing -> DynamoDB-Tabellen
High-Level-Ingestion-Flow von Quellaccounts über queued Batch Processing in DynamoDB, optimiert für Kosten und Skalierung.

Inhalte mit KI und Computer Vision anreichern

Rohe Social-Media-Posts sind von Natur aus messy und unstrukturiert. Text hat oft keine klare Formatierung, und Bilder vermitteln häufig mehr Informationen als die zugehörigen Captions. Um sinnvolle Insights zu extrahieren, integriert PartyMap mehrere KI-Services, die zusammenarbeiten:

Natural Language Processing. Posts werden mit OpenAIs Sprachmodellen analysiert und kategorisiert. Jeder Processing Job wird über die party-map-openai-batch-table verfolgt, und die Ergebnisse werden mit den entsprechenden Events verknüpft. Die KI ist besonders gut darin, strukturierte Informationen wie Event-Zeitpunkt, Location-Details, Preise und Event-Kategorien aus conversational Social-Media-Text zu extrahieren.

Bild- und Videoanalyse. Visuelle Inhalte werden mit AWS Rekognition verarbeitet, um Text-Overlays zu erkennen und irrelevante Posts herauszufiltern. Das System pflegt eine dedizierte party-map-rekognition-table zur Speicherung dieser Analyseergebnisse. Diese automatische Kategorisierung hilft, echte Events von allgemeinem Social-Media-Rauschen zu unterscheiden, damit die Karte auf handlungsrelevante Informationen fokussiert bleibt.

Account-Kontext. Social-Media-Accounts werden regelmäßig in Batches analysiert, um ihren geografischen Fokus und ihre Kategorisierung zu bestimmen, egal ob Nightclubs, Event Promoter, Kunstkollektive oder andere Arten von Organisatoren. Dieses Kontextverständnis verbessert die Genauigkeit der Event-Extraktion drastisch, weil neue Posts intelligente Defaults aus den etablierten Mustern ihres Quellaccounts übernehmen, etwa die Location eines Nightclubs.

Warum AWS?

Eine Karte zu betreiben, die sich kontinuierlich aktualisiert, bedeutet, mit unvorhersehbaren Datenströmen und plötzlichen Traffic-Spitzen umzugehen. DynamoDBs Serverless-Architektur bietet automatische Elastizität. Ich muss mich nicht darum kümmern, Kapazität bereitzustellen oder Scaling während voller Freitagabende zu managen, wenn alle ihre Wochenendpläne posten. S3 übernimmt Bild- und Videospeicherung mühelos, inklusive globaler Auslieferung über CloudFronts CDN.

Jeder Batch Worker läuft als eigenständige Lambda Function, wodurch die gesamte Pipeline automatisch mit dem Volumen der wartenden Posts skaliert. In Peak-Zeiten startet das System dutzende Worker parallel. In ruhigen Stunden skaliert es auf nahezu null Betriebskosten herunter. Dieser elastische Ansatz passt perfekt zur unvorhersehbaren Natur von Social-Media-Inhalten.

Diese Architektur zu bauen hat mir wertvolle Lektionen über das Modellieren von Datenzugriffsmustern, Eventual Consistency in verteilten Systemen und idempotente Batch Operations beigebracht. Der letzte Punkt war entscheidend: Posts können wegen Retries oder Systemfehlern erneut verarbeitet werden, also muss jede Operation mehrfach ausführbar sein, ohne Datenkorruption oder Duplikate zu verursachen.

Frontend: Eine responsive interaktive Experience bauen

Während das Backend riesige Datenmengen verarbeitet, konzentriert sich das Frontend auf eine intuitive und angenehme User Experience. Ich wählte Next.js als Grundlage, weil es Reacts Component Model mit eingebauten Optimierungen für moderne Webanwendungen kombiniert. Next.js kümmert sich automatisch um Code Splitting und intelligentes Routing, sodass Nutzer nur das JavaScript herunterladen, das sie für die aktuelle Seite brauchen. Dadurch bleiben Ladezeiten auch auf langsameren mobilen Verbindungen kurz. Das Framework integriert sich außerdem sauber mit React Hooks, wodurch ich komplexen State wie Filterpräferenzen und Theme Switching ohne unnötigen Boilerplate Code verwalten konnte.

Die Map-Komponente

Für die Kartenvisualisierung implementierte ich Mapbox GL über die react-map-gl Library. react-map-gl kapselt Mapboxs mächtige Vector-Tile-Rendering-Engine in einer React-freundlichen Komponente, wodurch die Karte wie jedes andere React-Element behandelt werden kann. Die Kernlogik lebt in map.tsx, wo die Komponente Map State Management, dynamisches Theme Switching und intelligentes Event Clustering orchestriert. Dieser Ansatz ermöglicht weiche Übergänge zwischen Light und Dark Mode und lädt Events effizient basierend auf dem aktuellen Viewport des Users.

Smart Search und Filtering System

Eine Karte voller Pins wird schnell überwältigend und kontraproduktiv. Nutzer wollen nicht jedes einzelne Event in einer Stadt sehen, sondern ihre Art von Erlebnis entdecken. Damit Menschen genau das finden, wonach sie suchen, entwickelte ich ein umfassendes Filtersystem, das elegant über dem Karteninterface sitzt.

Bild wird geladen...
Kategorieansicht
Multi-Select Kategorie-Filtering für verschiedene Event-Typen: Aktivismus, Advocacy, Community Service, Tanz, Bildung, Entertainment und Ausstellungen.
Bild wird geladen...
Kalenderansicht
Flexibles Zeit-Filtering mit praktischen Presets (Any Time, Next Week, Next Month) plus Custom Date Range Selector mit integriertem Calendar Picker.

Multi-Layer-Filterarchitektur

Das Filterinterface kombiniert drei mächtige Werkzeuge: ein debounced Search Input für Textqueries, einen intuitiven Category Selector mit einzelnen Toggle Controls und flexible Zeitfilter von Quick Presets bis zu Custom Date Ranges. Nutzer können diese Filter kombinieren, um sehr spezifische Suchen zu erstellen, während ein prominenter „Clear Filters“-Button sofortiges Zurücksetzen für einfache Exploration bietet.

Event Details und User Experience Design

Wenn man in ein Viertel hineinzoomt, erscheint eine Konstellation farbiger Marker, die verschiedene Event-Typen repräsentieren. Das Interaktionsmodell ist intuitiv: Ein Klick auf Event-Cluster zoomt automatisch für mehr Details hinein, während ein Klick auf einzelne Marker umfangreiche Informationspanels öffnet. Diese Detailansichten enthalten Eventposter, KI-generierte Zusammenfassungen, Zeitinformationen, Preisdetails, Venue-Adressen und Action Buttons für Save, Add to Calendar und See More.

Bild wird geladen...
Einfache Eventansicht
Schlanke Event-Detailkarten mit Eventpostern, KI-generierten Zusammenfassungen, Zeit- und Location-Informationen sowie schnellen Action Buttons für Speichern, Kalenderintegration und Zugriff auf den Quelllink.
Bild wird geladen...
Account-Ansicht
Mehrere Eventbeschreibungen mit scrollbaren Inhaltsbereichen und strukturierten Metadaten, intelligent extrahiert aus ursprünglich unstrukturierten Social-Media-Posts.

Account Pages und Organizer Hubs

PartyMap geht über einfache Event-Listen hinaus, indem es die Personen und Organisationen hinter jedem Erlebnis hervorhebt. Jedes Event verweist zurück auf seinen Organizer, egal ob Nightclub, unabhängiger Promoter oder Community-Gruppe. Account-Detailseiten zeigen Profilbilder, Followerzahlen, Post-Statistiken und umfassende Listen kommender Events, inklusive „All Events“- und „See More“-Navigation für tiefere Exploration.

Bild wird geladen...
Account-Ansicht
Beispiel eines Organizer Hubs mit Profilinformationen, wichtigen Statistiken (Followerzahl, Post-Volumen, Event-Volumen) und intuitiven Navigationstools zum Entdecken weiterer Inhalte.

Performance-Optimierungen und technische Insights

Eine Echtzeit-Kartenanwendung zu bauen hat mir wichtige Lektionen über Web Performance Optimization beigebracht. Das System nutzt viewport-basiertes Laden von Daten, um nur sichtbare Events abzurufen, debounced User Interactions, um übermäßige API Calls zu verhindern, intelligente Bildoptimierung über Next.js Image Components kombiniert mit CDN-Auslieferung und Progressive Disclosure Patterns, die zuerst minimale Eventdaten laden und Detailinformationen bei Bedarf verfügbar machen.

Wichtige Learnings und zukünftige Entwicklung

KI ist stark bei messy, unstrukturierten Daten. Social-Media-Posts sind von Natur aus chaotisch, aber die Kombination aus Large Language Models und Computer Vision erzeugt erstaunlich saubere und strukturierte Event-Informationen, die manuell kaum extrahierbar wären.

Echtzeitsysteme brauchen durchdachte Architektur. Anwendungen, die kontinuierlich Live-Daten aufnehmen und anzeigen, erfordern sorgfältige Überlegungen zu Datenkonsistenz, idempotenter Verarbeitung und Graceful Degradation, wenn Services temporär nicht verfügbar sind.

Nutzer wollen Kontext, nicht nur rohe Informationen. Ausgefeilte Filteroptionen, klare Kategoriesysteme und Organizer-Kontext sind für wirklich nützliche Discovery Experiences genauso wichtig wie die grundlegenden Eventdaten selbst.

Mit Blick nach vorne könnten mehrere spannende Möglichkeiten die Plattform weiter verbessern:

  • Personalisierte Empfehlungen: Machine-Learning-Algorithmen, die Events basierend auf gespeicherten Präferenzen und Besuchshistorie vorschlagen.
  • Echtzeit-Updates: WebSocket-Verbindungen, die Live-Benachrichtigungen über neu angekündigte oder abgesagte Events direkt an aktive Nutzer pushen.
  • Social Features: Gemeinsame Eventlisten, die Freunde teilen können, plus Activity Feeds, die zeigen, was Personen im eigenen Netzwerk besuchen möchten.
  • Mobile App: Native iOS- und Android-Apps mit ortsbasierten Push Notifications und Offline-Eventspeicherung für U-Bahn-Fahrten.

Privacy und Compliance

PartyMap ist ein einmaliges technisches Experiment. Ich betreibe es nicht öffentlich und plane nicht, es in Production laufen zu lassen, um Anti-Scraping-Regeln der Plattformen, Privacy-Erwartungen und Terms of Service einzuhalten. Die Arbeit hier dokumentiert nur Architektur und Learnings.

Fazit

Bei PartyMap ging es am Ende weniger darum, ein produktionsreifes Produkt zu veröffentlichen, sondern mehr darum, mich selbst herauszufordern und auszuloten, was technisch möglich ist. Es zwang mich, skalierbare Pipelines zu entwerfen, KI-Services zu orchestrieren und ein responsives geospatial Interface zu bauen, während ich gleichzeitig Compliance und ethische Überlegungen berücksichtigen musste. Die App selbst bleibt ein Experiment, aber die Patterns und Lektionen daraus reichen weit über Nightlife Discovery hinaus. Ob in Logistik, Urban Analytics oder anderen Echtzeit-Karten-Use-Cases: Die Kernidee, messy und schnelllebige Daten in handlungsrelevante Insights zu verwandeln, ist breit übertragbar. Ich hoffe, dieser Deep Dive inspiriert andere, mutig zu bauen, Annahmen zu hinterfragen und in eigenen Projekten Experimentieren zuzulassen.

Skills Improved

Python +15
TypeScript +10
Next.js +15
React +10
Tailwind CSS +10
Language Models +10
Software Architecture +5
Serverless +5
Geospatial +5