From Fedora Project Wiki

For information how to complete this form, refer to Summer Coding 2010 step-by-step for students.

Random list of application requirements

  1. Must include a schedule that was worked out with mentor
  2. Keep on eye on the Talk: page that is associated with the proposal page you create. Click on the discussion link on the top of your proposal page. The Talk: page is where mentors comment on your proposal.
  3. Make sure you have clicked on the watch link on the top of your proposal page(s) and Talk: page(s). Use the link to my preferences at the top of the page to set your Watchlist preferences to email you when changes are made.

About you

  1. My name is Gaurav Menghani
  2. My email id is
  3. My wiki username is Gauravmenghani
  4. My IRC nick is red_dragon
  5. My primary language is English.
  6. I am located in Mumbai, India which UTC +5:30. I am comfortable with any working hours.
  7. My college project 'Grid Computing Framework' is an open source project, made using Linux and other Open Source tools. It is designed for ease of deployment and use over a moderately sized network for Grid applications. You can find the source code at the git repository.

About your project

1. The project is titled 'Four Seasons of Code'

2. Does your project come from an idea on the Summer Coding 2010 ideas page? If so, provide a link for reference, as well as a link to any discussions with mentors about your proposal.

Yes, this project comes from the ideas page. This is a link to the specific page.

3. Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?

The project is for the Fedora community, and is aimed at automating the process of mentoring and easing the process of collaboration between the students and the mentors during the Fedora Summer of Coding. Currently, the process of is tightly not controlled. For example, the administrator of the program cannot automatically stop application submission after the deadline. The wiki format does not strictly enforce access control, and once the students are accepted, there is no strictly defined process for assigning tasks to students, deadlines, mail reminders etc.

All the above mentioned and several other features are automated in the project. Thus, I am hopeful that in the next edition of Summer of Coding, all users will have a very pleasant experience with respect to the application/collaboration process.

I will be using Ruby on Rails for making this project.

4. What is the timeline for development of your project? The Fedora Summer Coding work period is 11 weeks long, May 24 - August 9; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 5-12); the last steps always take longer than you think, and we will consider canceling projects that are not mostly working by then.

  • If your project development progresses differently so there is not 90% functionality by the mid-term, you must be in regular contact with your mentor about this. Your mentor must not be surprised about the state of your project when the mid-term comes.
  • If you are not progressed this far in mid-term, you must have a plan with your mentor to fix the situation.

The majority of the work is planned to be done before the mid-term evaluation deadline. Initially the development would be accompanied by concurrent Unit Testing. Later in the summer, the project would be open to the community to test and provide feedback.

Week 1 : June 1 - June 6

       1. Work on Mail Reminders

Week 2 : June 7 - June 13

       1. Work on the Task Journal functionality

Week 3 : June 14 - June 20

       1. Work on Project and User Dashboards
       2. Scrub up code, and discuss the work done till now with mentor.
       3. Make ammends as necessary. 

Week 4 : June 21 - June 27

       1. Work on the Admin Panel
       2. Work on Project Calendar
       3. Discuss work done with mentor, and corrections (if any) made. 

Week 5 : June 28 - July 4

       1. Work on the FAS integration.
       2. Fine tuning features 
       3. Implementing minor functionalities. Cleaning up code if necessary.       

Week 6 : July 5 - July 11

       1. Work on integration with code repository.

Week 7 : July 12 - July 18

       1. Beginning to compose documentation
       2. Preparing tutorials for Admin, Students and Mentors.
       3. Discussing the project with the community, and implementing any changes if required. 
       4. Buffer period for any unforeseen delays. 

Week 8 : July 19 - July 25

       1. Ironing out rough edges in the code. 
       2. Fixing bugs if any.
       3. Buffer period for any unforeseen delays. 

Week 9 : July 26 - Aug 1

       1. Final testing of system. Beta testing with community. 
       2. Fixing bugs if any. 

Week 10 : Aug 2 - Aug 8

       1. Scrubbing code and documentation 
       2. Fixing bugs if any.

5. Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.

I liked this project and immediately started working on it. In fact, I have contributed two new features to the project already. The first one is the 'Discuss' section on the project page and the second is the 'Mailer' utility. The features have been approved by the mentor and has been merged with the master branch. You can see my fork of the project here.

I believe I am familiar with the code written so far, and would be able to take it ahead from here.

You and the community

1. If your project is successfully completed, what will its impact be on the Fedora community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Fedora community, at least one of whom should be a Fedora Summer Coding mentor. Provide email contact information for non-Summer Coding mentors.

My Answer (Gaurav Menghani):

As I look at it, the Fedora Community is looking forward to conducting the Summer of Coding again. I believe, to conduct the event of such a scale in a smooth fashion, the project would be a great boon. As I mentioned, currently, the wiki format of the event does not provide ample features for the mentor-student connect, nor does it allow the administrator centrally control things like proposal submission etc. Neither there is an access control over important documents like proposals, which should not be accessible to other students.

The project's features are essential for conducting such a program in a controlled fashion. With the growth of Summer of Coding programs in the coming days, I feel this would become a necessity.

Mentor's Answer (Shreyank Gupta):

Summer Coding as a program needs a better structure and tooling in order to be administered efficiently. Four Seasons of Code aims to provide that structure. It will enable better student mentor collaboration, right from the stage of Project Ideas to Mentor's sign-off.

FSoC, if completed successfully, would like to replace the infrastructure for Fedora Summer Coding.

Non Mentor's Answer ( <Name> ):

2. What will you do if you get stuck on your project and your mentor isn't around?

I am active on the IRC channels, as well as Twitter. If stuck, I would first try to search for any possible solutions that exist for my problem on the Internet. If I do not meet with any success, I would like to take help from the Open Source community through IRC / Twitter etc. Also, some of my friends also have experience with web development, and I could leverage their expertise too.

3. In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?

I am active on Twitter and IRC. I would keep the community informed through those media.


1. We want to make sure that you are prepared before the project starts

  • Can you set up an appropriate development environment? Yes, I have done that.
  • Have you met your proposed mentor and members of the associated community? Yes, I have had discussions with the mentor several times.

2. What is your t-shirt size?


3. Describe a great learning experience you had as a child.

Coincidentally, it also pertains to Computer Science. As a student of fourth standard, my school's computer lab had computers that ran on MS-DOS, and only one computer had Windows 95. One day, we had to sit in the computer lab for a few hours for some work. I got done with my work soon, and started tinkering with the computers with the limited knowledge of DOS that I had. I saw programs written in BASIC by students of fifth and sixth standards in a directory. We were hardly taught a few elementary concepts of BASIC then. But I was amazed by what those programs did and started playing with the code. Soon, I was completely captivated and started writing programs involving simple text animation etc. In a couple of days, I had completed the entire syllabus of BASIC of fifth and sixth standards by myself.

4. Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?

I would say that I am quite passionate about this project, and as I said, have already made some progress. Given an opportunity, I will give it my best.