- usernmae: user1
- password: user1
This is a distributed system for an energy distribution operator that stores energy consumption data for its clients.
- Energy Platform: a web app for system management and data visualization
- Sensor Monitoring System and Real-Time Notification: a monitoring system for sensor data acquisition build with message-oriented-middleware and web sockets for asynchronous notification
- Smart Device Notification: a part of the web app which simulates a smart device for getting data about baseline energy consumption of the client
- users login and are redirected to the page corresponding to their role
- the users corresonding to one role will not be able to enter the pages corresponding to oher roles
- admin role:
- CRUD operations for clients, devices, sensors
- Create mapping client-device and associate sensors to devices
- client role:
- view on his/her page all the devices and sensors
- view their monitored energy consumption
- view historical energy consumption on a chart
- the message-oriented middleware allows the sensor system to send data tuples in a JSON format
- the message consumer component of the system processes each message and notifies asynchronously using WebSockets the client application
- the client application displays a chart with the client historical energy consumption over d days in the past (default d = 7)
- the client application displays the client baseline as a reference consumption for the next day
- the client application asks the server for the best start time in the next day to minimize the peaks of energy consumption; it displays the new chart of estimated consumption as the baseline summed with the device max consumption
- ReactJS for client development
- Material UI and Sass for client styling
- Spring Framework for server development
- PostgreSQL as database management system
- Java Swing for producer (simulator) development
- RabbitMQ as message broker
- Docker and Heroku for deployment