MeWater is a water conservation solution that uses IoT Devices (Solenoid Valves, Flow Meters, etc) to detect and monitor water leakages in realtime. The system auto-shuts down detected leakage lines thus saving on water.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
To get a local copy up and running follow these simple example steps.
This dashboard relies on AWS components and thus needs to connect to them to display data.
The cloud architecture diagram is as shown below. Read more here.
-
Clone the repo
git clone https://github.com/codewithlennylen/mewater-dashboard.git
-
Navigate to the
code-base
directorycd code-base/
-
[Linux Systems] Install Python Venv Package
pip3 install python3-venv
-
Create Virtual Environment
python3 -m venv venv
-
Activate Virtual Environment
[Linux]
source venv/bin/activate
[Windows]
source venv/scripts/activate
-
Install project requirements
pip3 install -r requirements.txt
-
Navigate to
app
Directorycd app/
-
Edit the
.env
file to include your AWS Access Credentials & Database URI (use the editor of your choosing)sudo nano .env
-
Navigate back to
code-base
Directorycd ..
-
Run project
flask run
The Dashboard has charts that display the system's state. i.e. Current water consumption, as well as whether any leaks have been detected.
As explained in the MeWater Cloud Setup, once a leak is detected an SMS & Email are sent to the user informing them of the incident. Additionally, a shutdown
command is sent to the IoT devices (valves in this case) to turn off the line with the detected leakage.
- Make dashboard dynamic by using live charts
- Asynchronous Data Fetching
- Add more charts - track longer periods of time
- User management system (AWS Cognito)
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Your Name - @codewithlenny - [email protected]
Project Link: https://github.com/codewithlennylen/mewater-dashboard
- Fanuel Conrad - IoT Lead