Name : Sagarpreet Chadha
Github : https://github.com/sagarpreet-chadha
Affiliation : Delhi Technological University , India
Location : Delhi , India
Email : email@example.com
Project Title : LEL 2.0 and work on Leaflet-Blurred Projects .
Gitter : sagarpreet-chadha
Portfolio : https://sagarpreet-chadha.github.io/
I am in my Final year studying Computer Science Engineering (BTech) from Delhi Technological University , India . Originally I am from a small village in Punjab , India but currently living in Delhi , India to complete my studies .
Abstract/summary (<20 words):
I would be working on the issues described in planning issue of **LEL **(leaflet-environmental-layers) : https://github.com/publiclab/leaflet-environmental-layers/issues/134 .
Also working simultaneously on LBL (leaflet-blurred-location) , LBLD (leaflet-blurred-location-display) and the new upcoming blurred-location project .
Problem #1 : Architecture Problem
Currently the code has a lot of redundant code , Most of the layers have the same code in their JS files . When we add new layer , we are using the same code again with minor changes in the code like changing sourceURL , markersURL and the API_parsing function . Although the architecture is good as of now , but it is not scalable and maintainable .
Solution #1 : Using One-for-All Architecture
Let's make a generic common module which would be fully tested having all the functions implemented to add new layer . This module will be very flexible and existing layers like : Mapknitter Layer SkyTruth Layer Fractracker Layer PurpleLayer Layer Toxic Layer will be implemented by :
The architecture would be similar to that of PL.Editor where we have a generic module and all other modules are implementing that module . Also the new architecture will make sure that any new contributor while working on new layer will have to work on one single file only and not take care of the entire system . ---> Advantage :
1.) Maintainable 2.) Easy to review new layers 3.) Easily Testable 4.) Less lines of code
Problem #2 : Personal User-defined Layer
Although we have many amazing dynamic layers implemented , but their API URL is fixed . Many people on Stackoverflow and Github have asked how to add custom layers . Currently there is no library which allows users to add their own custom layer .
Solution #2 : Add Custom Layer module
We have already implemented similar feature in LBLD to add custom API with custom parsing function .
Problem #3 : Lack of Contributors
Currently there are a very few people working on LEL .
Solution #3 : Let's build a community !
I feel LEL has the potential to welcome many new first-time contributors . Let's make the documentation of how to add a new layer so easy and well structured that a new contributor can start work immediately . I will be working on making new well-defined first-timer-only issues during the course of the summer , describing each step of the process concisely . Also let's complete this checklist on Github :
Problem #4 : Segregate UI code
Currently all the UI code is in the index.html . Also we have not provided any provision to add Layers button on the map in the library . To add the Layers button , one needs to understand additional code .
Solution #4 : Build UI module
Let's make a provision in the library to automatically give the end user the layers button . I will implement a UI module for this purpose with function :
Problem #5 : Testing
We do not have any tests yet . I will be focussing majorly on testing the generic module first and then UI module part . Then moving on to testing individual layers . Also after implementations of this new tests , we can request first-timer contributors to write tests as well when they implement new layer module .
I have experience with using grunt-contrib-jasmine library and have implemented
testing in LBLD and blurred-location projects of Public Lab .
I would be working first on the structural issues . Then moving to the UI issues and finally the testing part . I would be following this planning issue : https://github.com/publiclab/leaflet-environmental-layers/issues/134
• 27th May to 23rd June: Working on the structural changes :
- Week 1 and 2 :
- 1.) Consolidation and standardisation of all layers
- 2.) Reduction of redundant layer code
- 3.) Code to make adding new layers of a generic type easier
- Week 3 and 4 :
- 1.) improved layer management system with bounding boxes + zooms from layer metadata (including #117)
- 2.) layer metadata -- description, source, docs for each, relevant bounding box and zoom levels, version, in a single file. Maybe rate limits too if we know them .
• 24th June to 28th June: Evaluations • 29th June to 21st July: UI Work
- Week 1 and 2 :
- 1.) UI for highlighting new layers in current viewport as you drag/zoom #133
- 2.) improved popup content, like thumbnail images if they exist: #112
- 3.) unique-id based layer toggling in URL hash - related to #33
- 4.) standardisation of per-item popover UI (image, description, source, toggle, link)
- 5.) legends for some layers (#103)
- Week 3 :
- 2.) examples for how to open the map at a given location and zoom level using URL hashes: https://github.com/mlevans/leaflet-hash
- 3.) search for a location to recenter upon with a button and autocomplete geocoder (like at https://github.com/publiclab/leaflet-blurred-location)
- 4.) minimal 'dots' ui #123 .
• 22nd July to 26th July: Evaluations
• 27th July to 25th August :
3.) Making PR template
4.) Making awesome first-timers-only issue .
All the resources I will be requiring are on the internet . And I would of course require the guidance of my mentor.
I have been part of PublicLab for approximately 2 years now . I had the privilege to work on LEL the previous summer under GSoC program . I also have worked on various other projects of PublicLab including plots2 , LBL , LBLD , BL , LEL and PL.Editor .
Throughout my academic career , I have been consistently praised as focused by my professors and peers . While working on academic and extracurricular projects , I have developed proven leadership , technical , and teamwork skills . I like to work in a team and have developed various projects with my college mates . Also as i am a regular hackathon participant , i have the experience of working in a team .
Belonging from a place having fresh air , pure water and green environment , and currently living in one of the most polluted city in the world - Delhi , Yes Public Lab interests me a lot and i wish to be the part of the PublicLab family for a very long time .
As Larry Page once said- "If you're changing the world, you're working on important things. You're excited to get up in the morning ."
Cheers to Contributors and to people using LEL :P
There is increase in people contributing to LEL on github . Also the number of stars on github has also increased .
There is sudden increase in weekly downloads of LEL on NPM as well :
I can assure you that if i get selected to work with Public Lab this summer , I will definitely try my level best to make this project successful and will love to continue working with Public Lab even after the summer .
THANK YOU ALL !