Skip to content

Instantly share code, notes, and snippets.

@djbarnwal
Last active October 13, 2018 06:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save djbarnwal/944776d8348d61bb9ed225aa093b740b to your computer and use it in GitHub Desktop.
Save djbarnwal/944776d8348d61bb9ed225aa093b740b to your computer and use it in GitHub Desktop.
GSoC Report for Iodide 2018

GSoC Final Report for Iodide, 2018

While looking for GSoC projects in early February 2018, I found Iodide. Iodide was a project which perfectly aligned with my interests. I was so eager to look into it that I emailed the mentor for this project Brendan Colloran for making the repository public.

I have been contributing to Iodide since the day the repository became public.

What is Iodide?

The official website states - Iodide is a modern, literate, and interactive programming environment that uses the strengths of the browser to let scientists work flexibly and collaboratively with minimal friction. With Iodide you can tell the story of your findings exactly how you want, leveraging the power of HTML+CSS to display your results in whatever way communicates them most effectively -- but still keeping the live, editable code only one click away. Because Iodide runs in the browser you already have, you can extend and modify the code without having to install any software, enabling you to collaborate frictionlessly.

I prefer the shorter definition - cooler way of making notebooks.

GSoC Project

Proposal
Iodide is still in development and is at early alpha at the time of writing this report. During the proposal submission period, the Iodide app was rapidly changing along with its prospective future and goals. The proposal was a tentative schedule which was subjected to change. At first, we were planning to have a web extension, but after a lot of discussion with the team members, we agreed upon to have a server.

Work

A brief overview of my work can be seen below -

Adding New Features to Notebook
iodide-project/iodide#755 (Open)
iodide-project/iodide#754 (Open)
iodide-project/iodide#655
iodide-project/iodide#575
iodide-project/iodide#655

Working on Iodide Server
The server was the most prominent individual component of my project. Initially we were planning to have a NodeJS server. We later shifted to Django for a better development environment. I worked on creating API routes and linking Database when we planned to have a NodeJS server -
https://github.com/iodide-project/iodide/pull/677/files

After shifting to the Django framework, my job was to add some API routes for Users model and create views for Iodide website.
iodide-project/iodide#753 implements the above task. The mentioned PR is still open and is awaiting review.

Bug Fixes
A large part of my project was to dogfood it, find bugs and fix them. My contributions for fixing bugs can be seen in the list of my PRs -
https://github.com/iodide-project/iodide/pulls?utf8=%E2%9C%93&q=is%3Apr+author%3Adjbarnwal+

Writing Tests
iodide-project/iodide#664
iodide-project/iodide#614
iodide-project/iodide#374
iodide-project/iodide#373
iodide-project/iodide#367
iodide-project/iodide#364

Iodide Example Notebooks
Contributions to Iodide Example repository -
https://github.com/iodide-project/iodide-examples/commits?author=djbarnwal

During the course of working on Iodide, I have made numerous notebooks. The code for the ones on Iodide examples repository can be seen below -
World Happiness Report 2018
Introduction to JavaScript for Python Users
Brownian Motion Visualization

What Next?

A lot of work is still needed on the server piece before it can deployed for production and usage. The list of remaining work is mentioned in this PR.

What's Next for Me?

Working on Iodide has been a great experience for me. In these 5 months I have learned a lot of new things ranging from good coding practices to team management. It was truly wonderful to see how a new project is developed from the ground and how steps and decisions are taken while developing a new application. I am really grateful to Brendan Colloran, Hamilton Ulmer, William Lachance and Michael Droettboom for constantly guiding me throughout the project.

I'll keep on contributing to Iodide and work on making the application better and better. I am also thankful to the GSoC team for providing me with this oppurtunity and introducing me to such a great team and project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment