=Profile=
**Name** : Swapnil Sinha
**IRC nickname on Freenode** : swapnil-sinha
**Github Profile** : https://github.com/siriuswapnil
Location (country or state) : Ranchi, India**Email** : reach_swapnil@outlook.com
**Location (country or state)** : Ranchi, India
**Time Zone** : UTC +05:30
**Typical working hours (include your timezone)** : 5 PM to 1 AM (UTC +5:30)
=Synopsis=
The Internet In A Box is a platform to provide offline access to educational content like Wikipedia slices, medical knowledge, videos, books, maps to users who have limited to no access to Internet via physical media. One of its core features includes the ability to render offline maps of a selected region based on a user’s preference. This project aims to develop a functionality to display an overlay of local information like medical facilities, disease outbreaks, important properties etc. This can enhance the readability of the map for the user and provide useful information in times of need for them.
Mentor(s) - @Tim-moody , @psinghal20
Co-Mentor - @Georgejhunt
**Have you contacted your mentors already?** Yes
=Timeline=
| **Period** | **Task** |
|------------ |-----------|
|May 4 to June 1|**Community bonding period**.Setup development environment and study various tools and techniques of existing codebase.|
|June 1 to June 7|Developing a working prototype that has a catalog of precalculated overlays to be shown on the admin console.Keep reading relevant material9|Creating a catalog of urls to wikidata queries for sample map features.Go deep into OpenLayers library and develop single offline maps with ability to drop features for display.|
|June 8 to June 21|Linking the catalog of overlays (in json format) to OpenLayers using a vector layer. Keep updating features in the mailing list. 10 to June 19| Implement a tool to download the feature catalog to local storage into intermediate files for rendering to offline maps.|
|June 22 to June 28|Testing the prototype for different map tiles and start working on phase II0 to June 28|Design and implementation of a working prototype with a tool to render the overlays using a drop method on IIAB maps for display. Get acquainted with OpenLayers. To impleWrite Document interactions for the admin console.ation with detailed design strategy that has been implemented. Update work done in blog post.|
|June 29 to July 3|**Phase 1 Evaluations** |
|July 3 to July 12|Testing the prototype for different map tiles and start working on phase IIDesign and implement tools to enable the users to do SPARQL queries themselves and implement a feature to move it to local storage. To implement interactions for the admin console.Update work done in blog postThe map features are not pre decided and generated by the user himself.|
|July 13 to July 26|Work on developing a tool for implementing Integrations in the Admin ConsoleDisplaying the overlays downloaded as a file in the local storage to the map. Additionally, develop a feature to display popups of geodata, on user defined regions, using Javascript. JSON catalog is linked to the Admin Console for directions from the implementor. The user should be able to generate their own queriesWrite detailed Documentation for design and feature additions. Develop a functionality to link to geojson.io forWrite blog post regarding the user and get results.changes. |
|July 27 to July 31|**Phase 2 Evaluation**|
|August 1 to 12|Connect backend to custom query.Receive feedback and do necessary changes.Update blog postFinalize working prototype by integrating the catalog with the Admin console. Complete all feature additions including Javascript popups.Implement additional features based on feedback received.|
|August 13 to August 23|(Optional- Work on configuring ansible for the completed project). Run tests, bug fixes and write documentation for overall design strategy. Do code cleanup for final submission. Update blog with recent additions.|
|August 24 to August 31|Final submission of code.Write Project Summary.|
|August 31 to September 7|**Mentors submit final student evaluations**|
|September 8|**Final results of Google Summer of Code 2020 announced**|
=Deliverables=
- Design and final implementation of the Overlay featureA working prototype to take in a catalog of urls containing wikidata queries, offline and render it to simple maps.
- A tool chain for users to make their own SPARQL queries using geojson, store it locally and render the features on offline maps.
- Giving users the ability to make their own overlays and link it to the project backend- A feature to show popups with geodata and additional information when user points on a particular feature.
- Complete- Proper documentation for every feature additionat all phases indicating design strategies used.
- Identify areas of improvement and continue working on the project.
**Phase 1 evaluations**
- A precalculated catalog of overlay- Catalog files that contains the list of urls containing sample wikidata queries for a regionmap features.
- Link the- A tool to implement catalog file to OpenLayers Librarys on offline maps.
- Documentation for feature additions.
**Phase 2 evaluations**
- Interactions for Admin Console
- Tool for Users to generate their own queries
**Phase 3 evaluations**- A tool chain allowing users to make their own Wikidata queries and move it to local storage for rendering to offline maps.
- Connect backend to custom query file- Popups to show geodata and additional information on offline maps.
- Improvise based on feedback received.
- Documentation, Bug fixes, code cleanup.
**Final evaluations.**
=Participation=
- I will make a new repo on git and have two branches. Code will be uploaded on my development branch periodically. I will keep creating Pull Requests for every feature addition into the main repo.
- For transparent communication,I will be online on my IRC during working hours from .
- I will use Phabricator for managing tasks and updates on the project.
- I will be available on email(reach_swapnil@outlook.com) to be contacted when needed in the non-working hours.
- According to WMF norms for Google Summer of Code students, I will submit periodic blogposts to the Bi-Weekly Reports page.
- I will publish the final summary of my work at the end of my coding period on my blog.
=About Me=
Currently, I am a sophomore studying B.Tech in Computer Science Engineering at Birla Institute of Technology, Mesra. I was introduced to open-source by a senior in my freshman year and since then I’ve been hooked. I have been doing Web Development for quite sometime now. I’ve always had this passion of building things from scratch. Passion coupled with discipline can get one all the success one wants, is what I believe.
With the current delay in college sessions, there might be a change in my college timetable.I will communicate the changes, when necessary.
With contributions in small open source projects and participation in a few community hackathons,I’m quite adept with open source technologies (like git, IRC, etc.). This year, with GSoC, it’ll be my first big project in the domain of open source.
In due course of exploring what the project is really about, I’ve begun to appreciate the concept of connecting people with the Internet for access to information,even more. With the current situation forcing us into self-isolation, a project like Internet In A Box really becomes the torch bearer for connecting people and ideas who do not have the luxury of a decent Internet connection at their disposal, and I would love to be a part of taking this project further with better and robust features.
=Past Experience=
I have experience in working with C++, Java, Python, HTML, CSS, Javascript among others. Among databases I mostly worked on mysql and for VCS, I’ve considerable experience working with git.I have experience of building web applications with Django, making production ready databases with PostgreSQL.
I’ve participated in a few hackathons in the past and just recently, was selected for a hackathon to build solutions with containment strategies for people suffering from CoVID-19.
I have been a part of a few tech conferences, and have taken workshops on Git, Github and Web development in general.
===Microtasks Completed
- Generated a SPARQL query to return the list of hospitals with labels in a 50km radius from central Delhi.
- Studied the existing codebase at https://github.com/iiab/maps to understand existing features.
- Studied the basics of OpenLayers library to render maps on a client system using Javascript.
- Completed the tutorials given at https://wikimania.wikimedia.org/wiki/2019:Libraries/Map_making_workshop_%E2%80%93_from_Wikidata_to_interactive_off-wiki_maps_in_three_steps to understand Vector maps, geojson, and other technologies to render offline maps.