During our project kickoff meeting, we gathered a wide array of ideas and feature requests from our clients for their new platform. So, the first challenge was to identify what were the most important functionalities for people that were going to use the platform.
Different groups of people had varying needs, all of which were equally important. Product owners conducted interviews with representatives from each group, including owners, managers, and tenants, to understand their specific requirements. However, the resulting list was still quite long. This led us to collectively decide on the most crucial functionalities and identify where we could save development time while still delivering a solid solution. We also explored which functionalities could be addressed with third-party solutions to streamline the process.
When you're dealing with many integrations (many device providers with their own data structures, authentication methods), it's always challenging to make sure your application runs smoothly.
Each integration brings its own set of protocols and requirements that must be synchronized into user-friendly applications. Our goal was to ensure that users never feel the complexity of underlying integrations, but also to make it simple enough for developers to manage our internal code and database. We decided that the best approach would be to follow the standards, so we designed our solution following the Real Estate Core ontology.
The next challenge was to choose which technologies and architecture designs best fit the needs of the platform. The first MVP that was built before we took it over was very simple and its design could not support all the goals of the project. That MVP only provided functions to control the device (i.e. door unlock, temperature check, etc.).
After a deep analysis of the requirements and future plans, we introduced a new architecture that included the use of the Neo4j database for relations instead of previously used MongoDB. This was a perfect fit for the project because of how complicated relationships between entities in a property can become and due to supporting many different functionalities it was a challenge to design optimal database schema.
The next thing was to choose how we want to handle authorization and authentication. The platform needed to support several different user roles, each with different permissions. For example, property owners need an overview of all their properties, the ability to manage leases, access to the building itself, but not the ability to enter the apartments or inspect the interior of the apartments.
At the same time, the super admin can grant or revoke tenants' access to their apartments as needed, such as when tenants move in or out. Tenants, on the other hand, can view and control their smart devices, including opening and closing doors and windows, adjusting the fridge temperature, and managing flood alarm settings.
To support these features effectively, we had to integrate secure authentication mechanisms. Due to limited time and the urgent need for this functionality (MVP did not support authentication or authorization), we decided to use Keycloak.
It is an open source project that provides an interface where users, roles and permissions can be managed. It also provides APIs so it can be easily integrated into your application. Keycloak provides so many user management options and supports all major protocols and still leaves enough flexibility while saving development time.
By ensuring secure and efficient management of building systems, everyone benefits from using a Building Management System (BMS):
- Building Owners: A BMS enhances property value by boosting efficiency, cutting operational costs, and promoting sustainability, which can lead to increased property value.
- Facility Managers: A BMS streamlines the management of complex building systems by providing a single platform for data collection, analysis, and control, making management more efficient and proactive.
- Occupants: With a BMS, occupants enjoy a more comfortable and productive environment. The system optimizes lighting, heating, and cooling based on real-time data, improving overall comfort and well-being.
Our smart building platform integrates and automates various systems to make building management easier and more efficient. It connects different systems and technologies such as HVAC (heating, ventilation, air conditioning), energy and lighting, saving you time and improving sustainability.
This means you can automate routine tasks, such as adjusting lighting based on occupancy or time of day. This not only frees up your time to focus on more strategic FM tasks, but also ensures that your building is running at peak efficiency without constant manual intervention. Contact us to see how our custom platform can improve your building's performance.