Search:   Help

Developers' side bar

Selected categories


Shared groups



Categories: Development, GSoC 2013
<< | Page list | >>

Template for LyX Summer of Code 2013 Students' applications

Summer of Code 2013 - Application Pointers

This document is primarily aimed at students who want to write a proposal, but it may also be useful for mentors to judge the quality of proposals.

A proposal should contain two parts: (1) An introduction, and (2) a project plan.

In the introduction, describe where you come from (among other things, it is good to know which time zone you are in), and your background (programming tools you know, projects you have participated in). Be brief; we are looking at many proposals so a list of your hobbies and favorite movies is not of primary interest to us. However, it is a good idea to include a motivation for your proposal. As a user, have you run into the particular problem that your GSoC project is going to solve? That is a very good way of getting a clear vision for the project plan.

Finally, it is always a challenge for us to judge your programming skills. Therefore, if you have anything to show that you can write good code in LyX or a similar environment, please highlight that. This may be in form of a previous project, or contributions to other projects.

Part 2, the project plan, is the key part of your proposal. Your plan should contain a clear goal, and a path to reach it, divided into subgoals. Having subgoals also allows us to adjust the schedule in case things do not go as planned.

In particular, if you have other time commitments (such as exams), make sure to let us know and adjust your plan accordingly!

As you can see from Google's web site, the key dates are:

June 17: Begin coding

July 29: Mid-term evaluations

Sept. 16: "Pencils down" with a one-week grace period.

This means that the main work periods are six and six + one weeks. Based on this, we recommend that the main goal (for the overall project) has a mid-term milestone, and there are two more subgoals in the middle of the first and second phase, respectively.

It is often the case that at the beginning, unexpected problems occur. It is therefore important that you resolve any configuration/compiler issues during the "community bonding period" before June 17, so at least these problems will be out of the way. You can even try simple changes before that date, to ensure you can work productively without having to ask for advice immediately (as mentors may be in different time zones).

We recommend having the first subgoal consist of a set of simple "warm-up" tasks, so you can get familiar with the project and have some early success.

Based on this, a possible schedule looks as follows:

June 17: Begin coding

July 8: First subgoal (for example, a number of examples and tests, and a proof of concept).

July 29: Mid-term milestone. The basic functionality of the summer project should be established, but maybe only for simple cases or without additional features.

August 19: Second subgoal (getting enhancements towards the main goal done).

Sept. 16: Final goal.

The three-week rhythm lends itself well to agile development. This means that you should test the code as much as possible throughout the project, and maintain high code quality (including drafts of the documentation) as well. This way, you avoid running into problems towards the end of the project. We recommend leaving the final week for final debugging, and finishing the documentation (which should already be in draft form then.) Don't be overly ambitious; we are looking for code that we can keep and maintain in the future, so one feature less may be better if quality may otherwise suffer.

The first subgoal should already be very clear in the proposal, such that you can describe it in more detail. The "requirements" and design in your proposal can also be used later to document your project.

Again, if you have schedule constraints, we can accommodate for them by adjusting the scope of a project. However, please let us know beforehand, as it is difficult to adapt in the middle of the project.

Finally, while we understand that English is not the first language for most of us, please be diligent when writing your proposal. Spell check it, and use proper grammar and punctuation.

Summer of Code 2013 - Student Application Template

Please use this template for your student application. If you have any questions, ask on the developers mailing list (

Table of contents (hide)

  1.   1.  You
  2.   2.  Your Coding Skills
  3.   3.  You and LyX
  4.   4.  Your Project
  5.   5.  Your Schedule

1.  You

In your application let us know your:

  • Name
  • University / current enrollment
  • Contact details: your email, your timezone, IRC nick (if any), your blog (if any).
  • Short bio / overview of your background
  • Subscribe to the LyX developers mailing list and introduce yourself (send a message to to subscribe)
You should provide all the information listed above, but we are not looking for a simple list.  

Sell yourself! Get across your enthusiasm for the project. Tell us what makes you stand out from the rest of the crowd. Talk about your past experiences, what makes you tick. Why are you interested in open source software, and Lyx in particular? What interests do you have, and how do these interests relate to the project for which you're applying? There is a basic assumption that people applying for Summer of Code will have at least some programming skills already. So rather than spend a lot of time elaborating on these (though by all means, do tell us what you know), spend time talking about you.

2.  Your Coding Skills

In your application let us know

  • What platform do you use to code? Hardware specifications and operating system?
  • Did you ever code in C++? what is your experience?
  • Have you used the QT toolkit before?
  • Are you familiar with Python?
  • If you apply for a project on our ideas list, have you experience in the areas listed under "Knowledge prerequisite"?

3.  You and LyX

  • Were you involved in LyX development? What was your contribution?
  • Were you involved in other Open Source development projects in the past? which, when and in what role?
  • Set your platform to build a Git snapshot of the current master branch of LyX (see for Git access)

4.  Your Project

  • What do you want to achieve?
  • If you have chosen an idea from our list, why did you choose this specific idea?
  • If you are proposing a project of your own, what is unique about it?
  • What makes you suited to carry the project?
  • Do you have other obligations from late May to early August (school, work, vacation, etc.)? Please note that we expect the Summer of Code to be a full-time, 40-hr a week occupation. It is important to be clear and upfront about other commitments that you may have during that time.

It is very important you discuss your idea with some established LyX developers. If your idea duplicates existing efforts or code (and does not provide a very convincing reason for doing so), it will be rejected. Try to have your application reviewed by someone before you submit it, whether that be the mentor for a particular project itself (in the case of already generated ideas on the ideas page), or a person with expertise in a certain area (such as (La)TeX, QT, XHTML, etc.) Don't be afraid to ask us on the developers mailing list or by writing in private to the admins. We want you to succeed just as much as you do!

5.  Your Schedule

  • Please provide a schedule of how this time will be spent on subtasks of the project. Try to divide your project's final goal into small subgoals that can be accomplished in a 2-week period. Ask on the developers' list for advice if you are unsure about your time estimates or your subgoals. While this schedule is only preliminary, you will be required to provide a detailed plan later at the beginning of GSoC 2013 (in early June) and during the coding period you will issue weekly progress reports against that plan.

Category: Development, GSoC 2013

Edit - History - Print - Recent Changes - All Recent Changes - Search
Page last modified on 2013-04-16 02:53 UTC