- Spring Boot
- React
- Nginx
- MinIO
- PostgreSQL
- InfluxDB
- Mosquitto
This project is a smart home manager web application developed by a team of university students as part of their engineering software course. The project is a software solution for monitoring smart homes within smart cities. Each smart home contains various devices that measure values such as temperature, humidity, and energy consumption. Some devices have manual commands (e.g., turning on air conditioning) or automatic functions (e.g., lowering blinds when the sunlight is intense). The system provides a platform where homeowners can log in and monitor their home in real-time. Multiple users can track their properties, while administrators oversee energy consumption and production across neighborhoods or entire cities.
- Register an account
- Login onto the system
- Register smart homes and devices within them
- Monitor smart device status
- Control smart devices (lights, thermostats, etc.)
- Share access to devices
- Set up automation rules for devices
- Access historical data and analytics from InfluxDB
- Receive notifications for device alerts
- Review home registration requests
- View energy production and expenditure data
- Install all required technologies.
- To run the REST server, navigate to the
smart-home-back
folder and execute the commandmvn spring-boot:run
in the terminal. - To run the socket server, navigate to the
smart-home-sockets
folder and execute the commandmvn spring-boot:run
in the terminal. - To run the simulation server, navigate to the
smart-home-simulator
folder and execute the commandmvn spring-boot:run
in the terminal. - To run Nginx, navigate to the
nginx
folder and execute./nginx
ornginx
in the terminal, or double-click the corresponding file. - To run InfluxDB, navigate to the installation folder (default:
C:\Program Files\InfluxData\influxdb
) and execute./influxd
orinfluxd
in the terminal. - To run the Mosquitto MQTT broker, navigate to the installation folder (default:
C:\Program Files\mosquitto
) and execute./mosquitto
ormosquitto
in the terminal. - To run the MinIO file server, navigate to the installation folder (default:
C:\Program Files\minio
) and execute. \minio.exe server C:\minio --console-address :9090
. - To access the user application, open a browser and go to
http://localhost:80
.
- The application assumes that there is an organization named "ftn" and a bucket named "measurements" in InfluxDB.
- The API token located in the
application.properties
file in thesmart-home-back
folder will not be valid and needs to be regenerated. - The MQTT username and password specified in the
application.properties
files for each Spring Boot application (smart-home-back, smart-home-sockets, and smart-home-simulator) need to be set according to your installation. - The default folder for temporarily storing images during compression is
C:/temp
. This path can be changed as per your requirements. - The application requires an empty PostgreSQL database named "smart-home" to be created beforehand. The schema and data will be automatically generated on the first run.