A Garbage Management app that we created for our school project.
We aim at having an embedded device inside the garbage container and send information to a databse.
Then we will display the devices along with the information inside the web-app on for example a map and dashboard.
View the docs »
View Demo (COMING SOON)
·
Report Bug
·
Request Feature
With this project we aim at solving and helping out with garbage with two main parts: The Web App and The Device.
For example, inside a garbage container we would mount a device inside the garbage container or bin. The device would then send the GPS coordinates along with information to our database.
The thought later on would be to run Machine Learning on the image and train AI to recognize how full it is and send that information too. That would require us to use another server/middleman to process the image.
The last resort would be to use a laser distance measurement device to simply see how much garbage would be inside.
Here's what the device will send in a JSON format:
- ID
- Title
- Description
- Image taken by camera
- Longitude & Latitude
The Web App would then be displaying the information from the database inside of a map.
Think Google Maps but it displays markers where the device is.
Once you click on the marker you can view information about the device and see a picture that displays how full it is along side with a quick display on how full the device is if the image is unclear.
There will be a dashboard that can view the infomration in a more structured way too and contain multiple devices for quick listing.
So in general it would feature:
- A Device mounted inside the container(s).
- A Web App that shows the information along with the locations on a map.
We don't have all the features finished or planned out yet. But we'll be adding more in the near future. You may also suggest changes or features by forking this repo and creating a pull request or opening an issue.
So far into the prototype we have a:
- Device that runs with Raspberry Pi and USB/Pi Cam and sends information and picture to the DB.
- Web App Server that runs with Node, Express and mongoDB and working API that creates routes to GET or POST information.
- Web App Client that runs with ReactJS and shows a Mapbox map together with locations and information of the device.
To get a local copy of the device application up and running follow theese steps.
This is require to run the Device:
- Python 3.7.3
- Raspberry Pi / Python Instance
- USB Camera
- A MongoDB Connection
- Pip
Pip should be installed from Python. Otherwise choose correct way of installing depending on your OS.
Go to this Readme for instructions on how to install the device application.
To get up and running with the server and the client install the prerequisites and read the installation Readme.
This requires NPM to be installed.
-
npm
npm install npm@latest -g
-
MongoDB instance (cloud or local).
Put the connection string into DATABASE_URL inside of servers .env
- MapBox Account (to get token).
Put the mapbox token into DATABASE_URL inside of clients .env
Go to this Readme for instructions on how to install the client and server application.
Currently we have the devices hard coded. Later on we will publish a demo website that you can access and use to see a few example devices.
It's a bit harder to showcase the Device, we recommend that you run a device on your own with a local setup if you can.
See our Trello for a list of proposed features and todo's (and known issues).
We are currently in the Prototype phase.
Heres how the client is designed:
Heres how the server is designed:
There will be quite alot of differences between the prototype and the finished product. We will list them below soon.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- 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
for more information.
Sebastian Mossberg - @Lemorz56 - [email protected]
Isa Magomadov - @isa4042 - [email protected]
Project Link: https://github.com/backbonzo/SchoolProjectV2