#RoboHome-Web
##What Is RoboHome-Web?
This repo is one of a few repos that make up the whole project. RoboHome-Web is the codebase that represents the frontend of the RoboHome project. The web interface provides a way to create users, add and manage devices, and an additional way to control devices. RoboHome-Web is primarily built using PHP with the F3 Framework for MVC and routing, MySQL for the database, and Bootstrap for layout and basic mobile support.
##What Is the RoboHome Project?
RoboHome is a SaaS tool that also integrates with Amazon's Echo to enable control of semi-connected devices (think IR, and RF) in your house over wifi! This is done using an MQTT pub-sub network to send messages between the website or Echo to a microcontroller like the NodeMCU which has various transmitters hooked up to it (like IR and RF transmitters) to send signals to these devices. This can be used to control RF outlets with lights plugged into them, or to turn on your TV and change channels for instance.
##Developing RoboHome-Web
###Requirements
- Webserver with PHP 5.6 or greater with MySQL and a SSL/TLS cert available for Free with Let's Encrypt. This is used to host the Bootstrap based website to add, delete, edit, and control devices from anywhere.
- MQTT broker for pub-sub. I personally use CloudMQTT. This service is used to send messages a webservice and a microcontroller.
- An account with Amazon to be used for account registration using OAuth.
- An account with Login with Amazon to allow your website to use OAuth to verify users. Tip, be sure to register both www and non-www versions of URLs for the "Allowed JavaScript Origins."
###Configuring
- Open the
secrets.ini
file and populate the information needed to connect to your MQTT broker, MySQL database, and an Amazon login Client ID.
##Contributing
###How To Contribute
Contributions are always welcome! Please open a PR with your code or feel free to make an issue. All PRs will need to be reviewed and pass automated checks. This repo supports the principles of Bob Martin's Clean Code.
###Notes
- To avoid seeing the
secrets.ini
file (particulary when Git says you have unstaged changes during a rebase) in your repo and you don't want to ignore it, rungit update-index --assume-unchanged web/fatfree/app/secrets.ini
This is a new project and will be changing rapidly, more details will be provided when entering a beta state