#
Pratyush Tiwari
Avid programmer, learning the art of problem-solving. Android Developer. Opensource Contributer. To build services which would ease the life, not make it less mobile.
June 2021 • 6 min read


My journey to GSoC @Pitivi | Facts.

Finally, I am writing a blog. It's the first time I am writing it so please bear with me if I go a little off-trend.



What is GSoC?


I assume you probably are aware of Google Summer of Code (GSoC). In simple terms, it's an opportunity for you to gain real-world project experience where your even a bit of contribution will impact millions of users. You feel proud of it :).
You get to connect with an awesome community of developers, always a space to learn from other's experiences.

And finally, Google helps to connect and bring together student developers who would like to work with the respective organization. You get a decent stipend as well! from google and other perks.



How to start?


Just Start ASAP!, pick an organization! (depends on your interest, if you don't have any, look for some technology you use or have seen people using. It's a personal suggestion as I feel you develop interest if you know even a bit about the Idea/Goal behind an organization).

After you have decided, your first hurdle/goal is to get the Development environment up and running, a.k.a, build the project from the source. It means you will have to use the codebase ( Code) and get the software/service running locally on your system. You can visit the contribution documentation of the organization to help you with that.

See, not all projects are ~hard, nor all projects are ~easy but, the catch is, you can't overlook and judge this is easy or hard. You will have to come on the same level of understanding to implement a new feature. Again you don't need to grasp the whole codebase, but you should know how the things are plugged in and working.

So start exploring part by part, and the great way of doing it is to look for the issues marked with the label ~beginer wherever the project is hosted (GitHub, GitLab, etc.). This small-large contribution will also help you to show your work wherever you want.

~The good thing about working on a huge codebase is, you find most code/syntax within the codebase. The rest you can ~Google and look for documentation :).

Just try to learn at every step. With honest efforts, you will very soon be very comfortable with the codebase and Vola!!!.



My journey?





I got selected as a Student developer GSoC'21 with Pitivi, a beautiful and powerful movie editor continuously evolving with new features added. Pitivi uses GStreamer which is a project under GNOME Community.





I started contributing to pitivi in 2019. I would say I was lucky to find an open feature request, Interactive Intro for Pitivi guiding through parts of the Editor and features. Implemented from scratch but developing things, explored other features/code also while working on this issue, of course with the help of mentors, wherever I got stuck. The only thing I regret, not paying much attention to the Typos. Please use Extensions so that you don't make any typos and to be concise, it will save time for mentors reviewing your code and your time fixing it. Though, I do mess up sometimes. :(



~For beginners naming stuff is sometimes more time taking than the actual coding part xD.



Fun fact: I was looking for a Multimedia based organization so I initially picked up Musescore, successfully build the project from the source, but I had to install Visual Studio :( then my pc had 2 GB Ram. It was difficult for me to keep up with it. So not all but some projects may require you to have decent PC specifications, so If you can then it's the right time for you to invest and buy a new machine ;)

I fixed a typo and made a pull request :).
Here you go: Click!



My GSoC Project ~Pitivi: Cut Mode


In simple words, we have a new Timeline with minimal UI which will represent the whole timeline view, you can easily track everything without needing to zoom in and zoom out.
This will essentially bring in a non-zoomable Timeline which will serve to ease the task of trimming, cutting, rearranging clips on the timeline in sync with the other timeline.
Project Link

For a more detailed overview of my proposed project and work up till now, head over here.