Skip to main content

Introduction - Definitions, technologies, components and overall architecture

The Ocean Builder's Pod Management app is a complex software project that involves several components communicating with each other and it is actually an ecosystem formed by many different technologies, programming languages, code repositories and network protocols and offering a range of user experience depending on what is the user relationship with Ocean Builders, where is the user connecting from and  what device is used to do so.

This documentation is intended for readers with general tech knowledge but not necessarily deep knowledge in any of the technologies involved. It will not go down to the implementation level. For details about specific implementations please check the related repositories in our GitHub organization.

In this introduction document we will give a general overview of the different components involved, how they are being implemented, what is their role in the overall system and how do they communicate with each other. We will then expand on each of those components in other documents inside this book.

Home Assistant at the core of our app's software

Home Assistant (HA from now on) is the open source home automation software that we rely on as a base for several of the features needed in our apps. It is fundamental that before digging deep into our documentation you get a basic understanding of what HA does and how it does it. We will be referencing different functionalities, code repositories, technologies and APIs related to HA all along this documentation.

Home assistant resources:

- Website: https://www.home-assistant.io/
- Github: https://github.com/home-assistant
- Demo showing HA capabilities https://home-assistant.io/demo/
- Documentation: https://www.home-assistant.io/docs/
- Tutorials: https://www.home-assistant.io/getting-started/automation/

USER ROLES

Our apps will be used by two main user groups:

- Ocean Builders customers and, in general, pod users. Users that need to manage their experience in one or more pods.

- Ocean Builders staff: administrators, customer support members and other. These are users that work for Ocean Builders and need to have supervisor or monitoring capabilities for one or more pods.

A user can also follow in both groups: a person working for Ocean Builders who also owns one or more pods and uses the same account for both their work activities and also as customer.

Ocean Builders pod users

Pod users will interact with the Pod Management app to manage their experience in one or more pods. This is a broad group of users that can have different relationships with the pods:

- Pod owner

- Pod guest

- Pod tenant

Ocean Builders staff

- Administrators

- Customer support

Architecture overview and components