Waste Manager

Platform to control waste generation in cities.

GitHub repository

Commit your changes and pull request when a new feature has been added. If any doubt or question you can create an issue and we'll be there to help you.

Problem

Waste is a big issue in our world. Our cities generate a lot of wastes for the global population and living standards. It's really important to have all the information possible to make better plans and take smarter approaches.

How we solve it

We are building a system that makes trash bins smarter to allow city councils to have more information about the waste generated in each neighborhood.

We think that is key to know some aspects:

  • When a trash bin is full. They only need to be emptied when are full of waste.

  • What neighborhoods generate more waste. Each district or area has a different amount of waste and maybe type of it. Knowing this we can take better actions according to those different situations.

  • With this info, we can generate optimal routes to collect garbage with the trucks

Technical description

The system, a solar-powered Raspberry Pi, with a weight sensor will collect data about the capacity, the frequency and placement of the different waste containers. This whole data will be accessible through a web application that will show, by neighborhood and by street (to make it more precise), all the previous information.

The goal of this project is to make a fully functional platform as cheap as possible.

Elements

  1. Internet module

  2. MongoDB

  3. Data

    • Weight

get
Get all containers

http://localhost:3000/api/containers
Request
Response
Request
Response
200: OK
[
{
id: "507f1f77bcf86cd799439011",
district: "pacifico",
calle: "narciso_serra_1",
capacity: "30",
updatedAt: ISODate("2021-04-26T10:55:51.603Z")
},
{
id: "345b1b88afb65fd112256234",
district: "aluche",
calle: "illescas_23",
capacity: "79",
updatedAt: ISODate("2021-04-26T14:32:51.603Z")
},
.
.
.
]

get
Get the neighborhood containers

http://localhost:3000/api/containers/:district_name
Request
Response
Request
Path Parameters
district_name
required
string
District or neighborhood name
Response
200: OK
[
{
id: "507f1f77bcf86cd799439011",
district: "pacifico",
calle: "narciso_serra_1",
capacity: "30",
updatedAt: ISODate("2021-04-26T10:55:51.603Z")
},
{
id: "345b1b88afb65fd112256234",
district: "pacifico",
calle: "narciso_serra_7",
capacity: "35",
updatedAt: ISODate("2021-04-26T14:32:51.603Z")
},
.
.
.
]

get
Get info of a specific container

http://localhost:3000/api/containers/:container_id/info
Request
Response
Request
Path Parameters
container_id
required
string
Unique identifier of the container you want to consult
Response
200: OK
{
id: "507f1f77bcf86cd799439011",
district: "pacifico",
calle: "narciso_serra_1",
capacity: "30",
updatedAt: ISODate("2021-04-26T10:55:51.603Z")
}

get
Get the capacity of a specific container

http://localhost:3000/api/containers/:container_id/capacity
Request
Response
Request
Path Parameters
container_id
required
string
Unique identifier of the container you want to consult
Response
200: OK
{
capacity: "30"
}

put
Update the capacity of a specific container

https://localhost:3000/api/containers/:container_id/capacity
Request
Response
Request
Path Parameters
container_id
required
string
Unique identifier of the container you want to consult
Response
200: OK
{
success: "Ok"
}