
My Experience of Fedora Summer Coding
08/28/2010 3:54 am By Gaurav Menghani | Articles: 7
Fedora Summer Coding (FSC) [1] is a summer coding program, similar to the popular Google Summer of Code. Fedora has been with GSoC since the beginning, but this year it was not in the list of organizations chosen for the program, and hence the Summer Coding program was run independently. In this article, I would like to highlight what I have experienced as a student.
Let me begin with GSoC first. It is an extremely prestigious coding program, which receives thousands of applications from students all over the world. However, only few are selected to work on projects. If you do not know about GSoC, read [2]. If you are a student and like to code, you should definitely consider applying for GSoC.
A lot of students apply for GSoC, FSC and other such programs and I have noticed some things, which prospective applicants to such programs must keep in mind.
First, some students don't know much about the project (the one they are applying to work for) and its functioning. Consider it as proposing to build a huge Dam without the knowledge of how even a small one is built in the first place. Take some time to research about the project. If it is available as a product, use it, understand what is to be done, go through documentation, discuss on IRC, etc. It is important that students interact with the community and potential mentors, seek information and ask for clarifications if needed. Mentors generally prefer students who discuss the project and their proposals with them before applying.
Secondly, I cannot emphasize enough the need of a detailed plan. This essentially is the blueprint of how you plan to do your job. A plan should also contain a schedule tied with SMART (Specific, Measurable, Achievable, Realistic and Time-bound) goals. You should mention the technologies you plan to use, the design etc and justify them. You can probably check out the proposals received for Fedora Summer Coding [3].
Sometimes, the community and the mentors need to be convinced that you have the technical know-how to execute the project. I did not get through GSoC because the organization was looking for development in Ruby-on-Rails, which I was not fluent in at that time. Thus, even though the mentor was happy with my design, I did not make the cut because I did not demonstrate sufficiently that I could do the project.
Therefore, when Fedora Summer Coding came my way, I took up a project which also required Ruby-on-Rails knowledge. This time I learned RoR before applying for the project. I forked my mentor's work, and started adding features to it. Though, I was a newbie, but taking the initiative gave me some extra brownie points.
It is also extremely helpful if you have been around in the community before applying. Like, if you have been around in the KDE community, fixed some bugs, wrote a little code, you have already built some trust. Actually, when you are in a community, a lot of ideas for improvement may come in to your mind, and you may propose to work on an idea of your own too.
Once, you are in a project, the first few steps would be to set up the basic infrastructure for the project. Create a mailing list, where you can add yourself, the mentor(s) and other interested community members. Create a repository, and hook it with your mailing list. For example, in github.com, you canadd a hook to send a mail to the list whenever a commit is done. This aids in collaborating with your mentor and community members more easily. Also use the community's IRC channel instead of IM to talk with your mentor and other members.
My experience with Fedora Summer Coding was quite good. My mentor was extremely helpful. Mentors usually are extremely busy people, therefore do not bug them every now and then. Instead, fix up a meeting time, when you can discuss the work done, since the last time you talked. Also, make sure you keep your mentor updated. In case you are facing any problems, let him/her know, they will help you out.
The project I worked on is titled 'Four Seasons of Code' (FSoC). It is a project tracking and management application for coding programs like FSC. Google uses an application called Melange for GSoC, but it is not generic enough and does not go much beyond the proposal acceptance stage. Thus, the basic motive was to empower organizations to set up a coding program, and provide the ability to track individual projects.
FSoC allows mentors and students to collaborate by providing several tools. Task Journals enable the student to log the progress in achieving a particular project task. The in-built reminder system, reminds a student and his/her mentor when a particular task assigned to the student becomes overdue. The administrator can send 'Updates' to students and mentors when an announcement is to be made. Also, when a student completes all the tasks assigned to him/her, the mentor can sign-off the proposal, subsequently the administrator can sign-off and allow the student to collect his/her certificate of participation instantly. There are several other smaller features, which further contribute towards the objectives.
FSoC is also generic enough. You can use it either in the time-bound 'Summer Coding' mode, or allow the mentors to create projects and accept proposals in an ad-hoc fashion in the 'Year Round' mode. If you need, you can plug-in your own authentication system into FSoC. We linked up FSoC with the Fedora Account System (FAS), so that it can be used by Fedora for FSC. You can find it at [4] and the upstream is at [5], and I encourage you to fork the code, point out bugs (if any), suggest improvements, etc. If you want to use FSoC for your coding program, please reach out to me at 'gaurav DOT menghani AT gmail DOT com'. I would be happy to help you deploy it.
I have created a few screenshots of the app demo with a fictional coding program, please see them at [6].
On the overall, the past two and a half months have been great. I got to learn a lot from the able guidance of my mentor and the community. Fedora Summer Coding [1] will resume with new projects this September. I would strongly recommend taking part in the program. It is a golden opportunity to work with leading developers of the FOSS world, and learn from them.
References:
[1] http://fedoraproject.org/wiki/Summer_Coding_2010
[2] http://socghop.appspot.com/
[3] https://fedoraproject.org/wiki/Summer_Coding_2010_projects
[4] http://www.github.com/reddragon/fsoc
[5] http://www.github.com/shreyankg/fsoc
[6] http://bit.ly/FSoCScreenshots



Post new comment