Final Report on Google Summer of Code 2021
Tags: gsoc, brlcal, opensource, gratitude
Published: 2021-08-18 19:13:42

TL;DR I had a super good experience in Google Summer of Code 2021. It was a sweet start to the journey with open source. Though I already had some experience with open source that was not enough for me to get satisfied. Fasten your seat belts and let's see the progress I made in GSoC.

# About my project
Online Geometry Viewer aka OGV is an online web application, which provides the user experience of uploading, viewing, and sharing 3D CAD models. OGV is a standalone application that can be installed on a server and used within the organization or publically. Users get the ability to like and comment on other people's 3D CAD models that provide a similar experience with any other social blogging platform but having 3D models in it. 

This project is written in meteor.js that plays the role of backend and frontend along with MongoDB that covers the database part.  

# What we achieved?
Before the coding period started I already had the plans of task with their execution. I gave my best to keep the plan in line with the timeline and development log. My major role was to fix issues in the project and add some new features and they are listed below with the link of PR:
- Show appropriate errors when uploading a model fails. [PR #105](https://github.com/BRL-CAD/OGV-meteor/pull/105)
- Prevent using the application before setting up the server. [PR #106](https://github.com/BRL-CAD/OGV-meteor/pull/106)
- Show the upload progress of the model. [PR #108](https://github.com/BRL-CAD/OGV-meteor/pull/108)
- Introduce eslint to the project and remove all linting issues. [PR #107](https://github.com/BRL-CAD/OGV-meteor/pull/107)
- Add husky to the project to make sure any commit shouldn't go against linter. [PR #109](https://github.com/BRL-CAD/OGV-meteor/pull/109)
- CSS code improvement by splitting one CSS file into multiple appropriate ones and add SCSS to the project [PR #111](https://github.com/BRL-CAD/OGV-meteor/pull/111)
- Fix edit link of the model that was showing 404 when clicking. [PR #101](https://github.com/BRL-CAD/OGV-meteor/pull/101)
- Introduce support of custom coloring of background canvas of object. [PR #113](https://github.com/BRL-CAD/OGV-meteor/pull/113)
- Improve the directory structure of the project for the better handling of components. [#112](https://github.com/BRL-CAD/OGV-meteor/pull/112)
- Upgrade meteor to the latest version. [#104](https://github.com/BRL-CAD/OGV-meteor/pull/104)
- Add an option to change the camera view of the object with buttons. [PR #119](https://github.com/BRL-CAD/OGV-meteor/pull/119)
- Fix issues in documentation and add contribution guidelines to the project. [#115](https://github.com/BRL-CAD/OGV-meteor/pull/115)

# What I under-estimated?
There are two things that I started work on but couldn't get completed due to some reasons that are mentioned after the link.
- Remove CFS dependency from the project [#110](https://github.com/BRL-CAD/OGV-meteor/pull/110) 
> Reason for incompleteness: While creating the plan this task was not estimated with all the ins and outs of it. This task required a rewrite of the front-end, back-end, and database of modules that have anything to do with the file system. This task was planned to replace the deprecated file system package the project is using.

- Add WikiMedia oAuth to the project [PR #114](https://github.com/BRL-CAD/OGV-meteor/pull/114) 
> Reason for incompleteness: This task was stuck due to an error from WikiMedia's side while adding OAuth to the project.

I'm still working on these issues and will get them done as soon as possible with some feasible solutions and move with further development.

# What's next?
After having the great experience of working on an open-source project. I'm continuing with the development of OGV and I'll surely write a proposal to the organization BRL-CAD about some other enhancements like porting frontend and backend with the latest technologies. I'm already super excited for the stuff that will happen in the future. There are some more issues that requires triage which I would love to work on after talking about that with my mentor.

# Work to do
To complete my pending tasks I'll talk about my mentor and will create a separate plan for the pending two tasks. To complete the file system issue requires a rewrite and testing of the whole module. To complete the oAuth of WikiMedia, I'll contact the WikiMedia organization with the problem as there was no solution given for the issue (Mentioned in PR).

# Final Note
I'll wrap up by saying GSoC was a great experience. I got a chance to work with people on an open-source project that is still unbelievable for me. I'd like to extend my gratitude to every person involved with me over this journey.

A special thanks to my mentor Dr. Daniel Rossberg. I saw very helpful leadership by my mentor. I  learned a lot from my mentor. Thank you for being patient with me and clarifying my doubts. I would love to solve things in the future with further development.

Thank you for reading this blog. That was all about my report of GSoC 2021.