Skip to content

Lemorz56/GarbageManagement

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn LinkedInIsa


Logo

Garbage Management

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

Table of Contents

  1. About The Project
  2. Getting Started With Device
  3. Getting Started With Web App
  4. Usage
  5. Roadmap
  6. Contributing
  7. License
  8. Contact

About The Project

Product Name Screen Shot

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.

Built With

Getting Started With Device

To get a local copy of the device application up and running follow theese steps.

Prerequisites Device

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.

Installation Device


Go to this Readme for instructions on how to install the device application.

Getting Started With Web App

To get up and running with the server and the client install the prerequisites and read the installation Readme.

Prerequisites Web App

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

Installation Web App


Go to this Readme for instructions on how to install the client and server application.

Usage

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.

Roadmap

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.

Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Sebastian Mossberg - @Lemorz56 - [email protected]
Isa Magomadov - @isa4042 - [email protected]

Project Link: https://github.com/backbonzo/SchoolProjectV2

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 67.5%
  • Python 18.0%
  • HTML 8.2%
  • CSS 6.3%