DOOH Media Management Platform
Building a scalable SaaS foundation for Digital Out Of Home media operations, focused on solid architecture, modular organization, and readiness for multi-tenant expansion.

Map-based media discovery, with offer and traffic filters

Panel record: price, availability and technical specs
iMidooh represents the construction of a scalable SaaS foundation for DOOH media operations, focused on solid architecture, modular organization and readiness for multi-tenant expansion.
iMidooh was built to structure and scale DOOH (Digital Out Of Home) media operations, offering a centralized platform for managing campaigns across LED panels distributed in multiple locations — with a solid foundation for SaaS evolution.

Development began with a deep discovery phase: operational flows, user profiles, display rules, and the physical limitations of the panel ecosystem. The strategy was to avoid improvisation and build a modular foundation ready to scale.
Campaign, panel, display and data integrity rules.
Operational management, configuration and a consolidated view.
Field operations and hands-on tracking.
The architecture was designed to be decoupled, modular and easy to maintain — with well-defined domain modules (panels/media, campaigns/bookings, metrics) behind a single gateway, and a data model ready for multiple clients from the very first migration.
PostgreSQL with relational modeling for panels, campaigns, bookings and performance metrics.
Prisma to speed up data access with a typed, stable layer across the API and its modules.
Docker isolating dev, staging and production, with configuration parity between them.
NestJS organizes panels, campaigns/bookings and metrics as independent, individually testable modules.
Every record carries a tenant_id from the initial design, avoiding rework to separate clients later on.
Gateway, API modules and database are versioned and deployable separately.
The system was structured to allow a future full rollout of multi-tenancy and white-label expansion, without requiring a rewrite of the data model or the domain modules already implemented.
Each media panel carries operational data (location, resolution, weekly availability, price) and performance data (daily views, unique audience, conversion rate and rating), with audience demographics broken down by age range. This model let clients decide whether to book based on real data, not a sales estimate.

Per-panel metrics: views, audience, conversion and demographics
Execution covered campaign rules, display control and panel management — with clear integration between backend, admin panel and mobile operations.
The application was prepared for distinct environments (development, staging and production) with containerization and structured versioning.
The infrastructure was designed to ensure:
The project was structured from the start with observability and operational growth in mind.
iMidooh established a robust foundation for centralizing DOOH media operations, reducing reliance on manual processes and paving the way for commercial expansion.
Beyond the technical solution, the project established a replicable architectural model for SaaS products — focused on organization, scalability and maintainability.
The project was discontinued before its commercial phase, but it reached a clear point of technical maturity: a data model ready for multiple clients, isolated domain modules, real per-panel performance metrics, and containerized infrastructure across three environments. That stopping point — not an unfinished version — is what this case study documents.
I'd invest in automated tenant-provisioning tests from the start instead of validating it manually with every new module. With the project stopped at a clear point of technical maturity, that's the clearest gap between what exists today and what it would take to safely onboard the first client.
iMidooh is a product conceived and owned by Click Software House. All rights to the project, including brand, source code, design and other materials, are reserved to Click Software House. This case study is presented solely to demonstrate the technical work performed, and any reproduction, copying or reuse of the project without prior authorization from the originating company is prohibited.
iMidooh's complexity wasn't just in the code, but in modeling a product that needed to be built ready to grow from day one.
Designing a data model ready for multiple clients from the very start
Ensuring data consistency and integrity across simultaneous, distributed campaigns
Organizing a modular backend for future white-label expansion without a rewrite