Introduction
The Philips Hue lighting system provides a mesh-network of lights (and other devices, like sensors and switches) using Zigbee technology.
Philips provide an open web-service API for their "bridge" hardware to enable application developers to create their own applications and advanced lighting automation solutions.
The Brue project is a single-page web application built using a modern technology stack - specifically Spring, SpringMVC and Spring Security. Brue enables you to control your Hue home lighting system using any internet browser.
The application is responsive for desktop, tablet and mobile use, and comprises a single-page user interface with dynamic content built using HTML5, AngularJS and Angular Material Design.
A RESTful API, including Hypermedia as the Engine of Applications State is also provided.
Key Architectural Features
The web application is a contemporary single-page AJAX application built using modern technologies.
- Single Page Web Application with dynamic AJAX and WebSocket updates
- Middle-tier implemented in Java, with Spring, SpringMVC and Spring Boot
- Security/authentication model using Spring Security
- RESTful JSON web services API, with Hypermedia As The Engine Of Application State (HATEOAS)
- Web application state is kept dynamically in sync with a Philips Hue lighting Bridge by using web-services and WebSockets
- HTML5 Canvas and a custom AngularJS directive is used to provide bespoke colour pickers
Responsive User Interface for Mobile
The web application user interface is designed to be responsive across desktop, tablet and mobile form-factors.