A full-stack, Generative AI powered mobile application which helps people control activities & sensors of their smart IoT home systems. IHome depends on the backend, a RESTFul API built with Django which uses a local PostgreSQL database.
Before running IHome, ensure you have the following installed:
Clone the application from GitHub.
git clone https://github.com/NikolaOgnjenovic/EESTech.git
mv example.env .env
Navigate to the backend directory and run docker-compose.yml.
cd backend
docker-compose up -d
cd ../frontend
flutter pub get
To run IHome on a connected device or emulator, use the following command:
flutter run
When the application starts, you can access the Swagger documentation.
Go to the pgAdmin web UI and login with the following credentials:
[email protected]
admin
Right click the Servers row and press Create in the Register menu.
Name the server any way you want.
Enter the following values: db for the host name/address user for the username anad password Afterwards, press Save.
View the tables by opening the dev_smart_home_db database, the public schema and the tables collection.
When you run the flutter application, you will be presented with a home screen with buttons that lead to two menus.
The first button takes you to the Preferences screen, on which you can toggle preferences that you have for the system: the system will adhere to them and prioritise them when performing actions after analyzing data.
Some preferences also have optional input which is used to enhance the action that the system takes when performing one based on a user preference. For example, if the system is playing music when it detects that someone is showering, it will play the song that the user manually inputed, or a hardcoded one otherwise.
The second button on the homepage takes yo uto the Sensors screen, on which you can toggle sensors that collect different types of data and enhance the experience of the user in the home system.
If you encounter problems with speech-to-text mp3 files when the AI talks, execute the following command:
sudo chown $USER:$USER speech.mp3