Smart Assistant and Room Automation
Sara is a lightweight, open-source and configurable control and monitoring system for your room.
At the moment it has a few features such as
- Light control
- Temperature monitoring
- Light level monitoring
My plan is to make Sara easily usable for a variety of internet enabled smart devices such as smart lights, fridges, Google Home, Alexa, etc.
This project uses multiple technologies centered around the web.
The technology stack mostly uses JavaScript (ES6) both on the client and the server.
This allows for fast developement because of the nature of Javascript but also makes it easier to work on the whole stack at the time, no need to switch between languages for front end and back end.
The client app is built using ReactJS, an open-source library built by Facebook and the community.
The project was also bootstraped with create-react-app which lets you quickly, well, create a React application.
The backend which provides the API, serves the React app and interact with other systems like the database and arduino is built on NodeJS.
Amongst the several library used, I used
- Express an open-source web framework
- db-migrate to manage migrations
- DiscordJS to interact with the Discord API
I used PostgreSQL a powerful, open-source SQL Server for my database, paired with node-postgres and pg-promise to communicate with it from the backend.
I used an Arduino board and the arduino language (which is basically C++) to connect my sensors and lights to my "server"
The whole project runs on a single Raspberry Pi running Raspbian Stretch, a minimal version of the Rasbian distro.
To see a complete list of all technologies used in this project
This is still in beta, this README (and all other READMEs) are bound to change and might be outdated
For instructions on how to setup Sara, see the development document
For instructions on how to deploy Sara, see the deployment document
For instructions on how to update Sara, see the updating document
This project is licensed under the MIT License - see the LICENSE file for details