OpenLitterMap is an open, interactive, and accessible database of the world's litter and plastic pollution.
We are building a fun data-collection experience to harness the unprecedented potential of citizen scientists around the world.
We believe that science on pollution should be an open, transparent and democratic process- not limited or controlled by anyone or any group.
If you would like to help shape the future of OpenLitterMap, we would love to have you in our Slack Channel
Every Thursday, 6pm Irish time, we run a community zoom call for ~1 hour where anyone interested in OpenLitterMap can listen in to learn more, and share ideas to help the future direction of the platform.
OpenLitterMap is underdeveloped, but we are a community of over 3,600 contributors who have crowdsourced more than 100,000 uploads from 80 countries.
All of our data is available to explore on the Global Map and more sophisticated "city grid maps" are also available to explore. Anyone can download all of our data for free.
We have just launched a GoFundMe which includes our first promotional video and a new demo video showing how to use our app.
The source code for the mobile app (React Native) will launch soon, followed by the OpenLitterAI and our smart contacts.
OpenLitterMap is the first project to reward users with cryptocurrency for the production of geographic information. By using the app and doing "proof of work", users are "mining" Littercoin which we are experimenting with to reward and incentivize the sharing of geospatial data on plastic pollution.
STAY TUNED FOR LOTS OF EXCITING UPDATES
OpenLitterMap-web is built with Laravel, Vue.js and Bulma
To install this project locally on your machine, download and install Homestead
First, download Virtual box which will give you a Virtual Machine. This is used to give us all the same development environment. Alternatively, if you use mac, you can use Laravel Valet
Second, you are going to need to download Vagrant which you will use to provision, turn on and shut down your VM.
In your root directory, add the vagrant box with
vagrant box add laravel/homestead
then clone the box with
git clone https://github.com/laravel/homestead.git ~/Homestead
You should now have a "Homestead" folder on your machine at
Before turning on the VM, we are going to set up the Homestead.yaml file. Every time you save a file, Homestead.yaml will mirror your local code and copy it to the VM which your web-server (VM) will interact with.
Open the Homestead.yaml file, add a new site and create a database.
ip: "192.168.10.10" memory: 2048 cpus: 1 provider: virtualbox authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/Code to: /home/vagrant/Code sites: - map: olm.test to: /home/vagrant/Code/openlittermap-web/public databases: - olm - olm_test features: - mysql: true - minio: true buckets: - name: olm-public policy: public - name: olm-public-bbox policy: public
Next, update your hosts file on your host machine (
sudo nano /etc/hosts on windows it's
C:\Windows\System32\Drivers\etc\hosts) and include
When you want to boot up the VM, cd into the Homestead folder on your host machine and run
Download the repo and save it locally into your "Code" folder
If this is your first time installing, you need to run
You also need to install composer and npm dependencies.
SSH into the VM with
vagrant ssh. cd into Code/openlittermap-web, and then run
You can migrate and seed the tables with
php artisan migrate --seed
Once you're done, run
npm run watch which will build the project into the
You should now be able to open the browser and visit olm.test
If you would like to contribute something, make a new branch locally
git checkout -b feature/my-new-feature. We would love to see your pull requests!
You might notice there are some websocket errors in the browser. Some operations like adding photos broadcast live events to the client. It's easy to get websockets set up to resolve this.
In your .env file, add "WEBSOCKET_BROADCAST_HOST=192.168.10.10" In broadcasting.php, change 'host' => env('WEBSOCKET_BROADCAST_HOST') In one window, run `php artisan websockets:serve --host=192.168.10.10` Then, in another window, run `php artisan horizon` To test it's working, open another window. Open tinker and run event new(\App\Events\UserSignedUp(1));
If you would want to generate some dummy photos for development purposes, you can do so by
php artisan olm:photos:generate-dummy-photos command to generate 1500 dummy photos. It also takes
arguments so you can do for e.g.
php artisan olm:photos:generate-dummy-photos 2000 and 2000 photos will be generated.
After running the above command, run
php artisan clusters:generate-all and the photos should be visible in the
tab and in http://olm.test/world/Ireland/County%20Cork/Cork/map
The project uses AWS S3 to store photos on production. On development, however, it uses Minio, an open source object storage server with an Amazon S3 compatible API. If you copied the .env.example file into .env you should be able to access the Minio control panel at http://192.168.10.10:9600 (homestead:secretkey). Remember to update the Access Policy to public for your buckets, on the admin panel.
You are now ready to get started!
Have fun and thanks for taking an interest in OpenLitterMap