Name : Sagarpreet Chadha
Github : https://github.com/sagarpreet-chadha
Affiliation : Delhi Technological University , India
Location : Delhi , India
Email : email@example.com
Project Title :
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 .
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 ."
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 .