Production /2026 /Geospatial · Full-stack · Mobile · AI
CityPulse
A real-time SaaS platform that matches street artists with nearby businesses: an artist goes live, nearby venues see them on the map and send a performance offer.
How it works
- 1
Artist goes live
The artist taps “Go Live” and appears as a pulsing live marker on the map.
- 2
Business sends an offer
A nearby venue sees the artist and sends a performance offer (fee, date, duration).
- 3
Match & booking
The artist accepts and the booking is confirmed instantly.
- 4
Message to finalize
Venue and artist sort out the details in-app.
Problem
Street performance is scattered and invisible: artists can't reach nearby audiences or venues, businesses miss live booking opportunities, and municipalities have no single view of permits or activity.
Solution
When an artist taps “Go Live”, they appear as a pulsing marker on the map; nearby businesses get an instant notification and send offers, audiences join and donate. The backend is .NET 9 with Clean Architecture and CQRS (MediatR): location queries on PostgreSQL 16/PostGIS (GiST, ST_DWithin), real-time updates over SignalR with a Redis backplane, async events through RabbitMQ/MassTransit. A Flutter app and a React + Vite admin panel share the same domain. An AI layer suggests offer budgets and scores permit risk, with rule-based fallback when the LLM is off.
Results
A production-ready, integrated monorepo with three clients (Flutter mobile, React admin, .NET 9 API), shipped via Docker Compose, Nginx + Let’s Encrypt HTTPS and GitHub Actions CI/CD. An interactive web preview of the mobile app is provided as the demo.