PROFESSIONAL

BerryBox

Provides a centralized interface for power, input, and volume control across multiple TV protocols using RabbitMQ for command dispatch.

4 TV gateway implementations across 3 brands and protocols.
22 controllers across action and AJAX namespaces.
10 core framework components.
1 RabbitMQ consumer worker with dynamic gateway resolution.

What it is


BerryBox is a TV control platform for managing networked displays. It provides an interface for power, input, and volume control across different TV brands. The system uses a custom PHP MVC framework and dispatches hardware commands via RabbitMQ workers. It includes a remote-control UI accessible via the local network.

Why it was built


Implemented to control a mixed fleet of displays using various protocols, including RS-232, Samsung network APIs, and LG WebSockets. The architecture uses a message queue to decouple the web layer from hardware I/O. A gateway pattern isolates brand-specific protocols, and the worker architecture prevents serial timeouts from blocking the system.

Technical Highlights


Core Architecture
Custom PHP MVC framework with namespace separation.
Gateway pattern for hardware I/O using a shared interface.
Custom ORM and singleton-based service layer.

Async Command Dispatch
RabbitMQ consumer with durable queues and QoS management.
Decouples HTTP requests from hardware latency.
Supports Wake-on-LAN and WebSocket control.

Hardware & Integration Layer
Gateway implementations for RS-232, Network, and WebSockets.
Unifi Protect and Audac MTX88 integrations. Service monitoring for worker daemons.

Authentication & Access Control
PIN-based authentication and hardened sessions.
CSRF protection enforced at the constructor level.

Frontend & UI
Launchpad dashboard with touch-optimized hero cards for mobile use.
SCSS architecture supporting dark mode.

What I worked on


Architected the RabbitMQ dispatch pipeline and gateway system. Implemented dynamic gateway resolution to handle multiple hardware protocols. Developed the remote control interface for mobile usability and verified it through field testing.

By the numbers


4 TV gateway implementations across 3 brands and protocols.
22 controllers across action and AJAX namespaces.
10 core framework components.
1 RabbitMQ consumer worker with dynamic gateway resolution.
29 views across remote control, admin, and auth pages.
1 developer — full-stack, hardware integration, and architecture.