IoT platform prototype based on microservice architecture.
The architecture consists of 4 services:
- Ingestion service - Persists the data that arrived from the sensors in InfluxDB.
- Query service - Persists the data that arrived from the sensors in InfluxDB and is responsible to respond to customer queries.
- Analytics service - Uses machine learning to analyze incoming measurements and decides on actuation based on the result of the analysis.
- Device service - Runs an actuation job which triggers device actuation.
Services were written in Java/Spring Boot. Frontend was written in React.
- Run the containerized databases:
$/docker> docker-compose up
- Run the backend services on by one
- Run the frontend application by running
$\master-rad\app\FE\fe-app> npm install
$\master-rad\app\FE\fe-app> npm start
- Run the sensorImitation service
- Stop the sensorImitation service
- Stop the front end application (Ctrl+C in the terminal where it is running)
- Stop all the backend services
- Run
$/docker> docker-compose down
$/docker> docker rm -f $(docker ps -a -q)
$/docker> docker volume rm $(docker volume ls -q)