Source code: Project Mayhem C++ Source Index đź› 

C++ Source Code Index for Project Mayhem

The following is an index of the C++ source code modules, posted here at OG, as part of a long term project development effort code named, Project Mayhem. At this point, these software modules are intended for the DIY types that have some software background.

Each module posted is shared under Creative Commons Share-Alike which allows individuals to utilize and modify the source code to meet their needs for both private and commercial use. The license terms are designed to protect both you and I from corporate greed and insanity. You can read more about Creative Commons licensing terms here, CC BY-SA 4.0

Each module is developed to allow it’s independent integration into a larger framework. This allows developers with creative ideas and ambitions to modify and utilize only what they need. While, this may seem like a mis-mash of random pieces of code, over the long-haul, as new modules are added, this will start to make more sense. This approach is termed bottom-up development. Additional links to source code modules will be posted in this thread as developed.

The sourcecode is presented here on Overgrow, alternatively the code is mirrored on Github for ease at:

Light / Lighting

Environmental

Utility

10 Likes

/* Placeholder for OP additional categories */

Front-End

Architectural diagram for the front-end control / user interface / API

Description:
Interface to the core controller is abstracted through several microservice interfaces. Each microservice is contained as a Docker image which can be served from the same device as the core controller. One or more of the microservices can be provided by any other device of any architecture that is able to execute a Docker container and access the core controller over the network.

The current microservices include:

  1. postgresql embedded relational database
  2. graphql server
  3. angular2 based webserver / user interface

This architecture provides for security, scalability, and deployment flexibility.

What this means is the following:

  1. the entire system can run on a single embedded platform
  2. or, portions of the system can run on a one system while other portions run on a different system
  3. multiple instances of the core controller can be deployed while deploying single instances of the microservices
  4. mix/match only what you need and create your own microservices to access the core
  5. place portions in the “cloud” or keep it all private
  6. abstracted interfaces allows for several rings of security along with a standardized access API
4 Likes