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. This Repo contains the entrance point of all the API requests.
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 Gateway does not work by itself, it needs the other microservices to work.
Note: The gRPC protos import is missing, therefore it will not work!
To get it started:
- npm
npm install npm@latest -g
- Clone the repo
git clone https://github.com/AnBapDan/REC-Platform-Gateway.git
- Install NPM packages
npm install
- Enter the Profobuf repo in
package.json
on the dependencies tab"grpc-protos": "git+REPOSITORY",
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
Daniel Andrade - dani.andrade@ua.pt
Project Link: https://github.com/AnBapDan/REC-Platform-Gateway.git
Below are the other devs that helped during the development of the RECPlatform ๐