This microservice was necessary for me to graduate in the Master's Degree in Engineering of Computer and Telematics. If interested, check MSC Eduardo Almeida to know more!
The Renewable Energy Community Platform consists in a microservices API to enable and enhance Peer-to-Peer energy Transactions between Prosumers and consumers of a community.
The meter microservice is where the real-time measurements sent by the meters are stored for later access.
Why building a REC Platform using microservices:
- The project was developed together with other devs
- Changes in one particular module forced to shutdown/reboot the whole API.
- This is part of a research program, therefore multiple experimental ideas, frameworks, and scripts were used.
To make the API work, these are the core features of the Gateway:
The Meters microservice requires Gateway to be operational as well as a InfluxDB database to store the data.
Other microservices links:
To get it started:
- npm
npm install npm@latest -g
- Clone the repo
git clone https://github.com/AnBapDan/REC-Platform-Meters.git
- Install NPM packages
npm install
- Enter the Profobuf repo in
package.json
on the dependencies tab"grpc-protos": "git+REPOSITORY",
- Update the influxdb client in
src/meters/meters.service.ts
The all microservices structure is supposed to be deployed using Docker Swarm. Below are the steps to achieve it correctly.
-
Create a network that hosts all the stack
docker network create --driver=overlay --attachable RECNetwork
-
Run every Dockerfile to create its image
docker build -t <img_name>:<version>
-
Deploy the whole Docker stack
docker stack deploy -c docker-compose.yml RECNetwork
docker ps -f "label=com.docker.swarm.service.name=RECNetwork_gateway" --format "{{.ID}}"
docker stack services RECNetwork
docker service logs <service_name>
docker exec -it <HASH_name> command
Eduardo Almeida - [email protected]
Project Link: https://github.com/eapsa/REC-Platform-Meters.git