Google Summer of Code is a competitive program where many students present interesting project proposals. Every year, organizations receive many more proposals than they can accept. Thus, a strong and well-written proposal is essential to become accepted into the program. Here you will find tips and good practices to help strengthen your application.
You should get in touch with mentors that have been assigned to a specific project and discuss the project ideas with them. To contact mentors, please use the provided email address or reach out to them on our Mattermost server.. After creating the account, please join the Google Summer of Code
channel to contact mentors and discuss projects.
All students are expected to conduct initial research into the topic, evaluate requirements, and discuss potential solutions with mentors. Active collaboration before the application is vital to a successful project proposal.
The description of each project does not specify exactly all steps needed to accomplish the goal. Your task is to assemble the information on the problem, analyze relevant solutions, find out how similar problems have been approached in the past, and propose tentative solutions. The research phase is successful when undertaken under a mentor's guidance, who can provide you with initial research directions and help with feedback on your ideas.
Please note that for many projects, it is not required to stick exactly to the specification. Based on your research results, you can discuss adjusting the project idea with mentors and propose more interesting directions for the project.
A good proposal requires many iterations and cannot be written in the last hour before a deadline. Make sure you complete the first draft early enough to give yourself time to review it, receive feedback for your ideas, and convince us that your project will succeed. The proposal should be formal and precise. When writing, include only details and information relevant to your background and the project.
The proposal should include the following elements:
- Problem description - do you understand the scope and complexity of the project?
- Motivation - why is this problem relevant to the project? How will the project benefit from your contributions?
- Related work - compare the proposed solution to other existing solutions in other projects.
- Proposed solution - best described as a sequence of milestones.
Each project defines an entry task that should be completed before the deadline of the application period. This task is used to verify that you can work with frameworks and accomplish basic goals. A proposal from a student who cannot demonstrate basic proficiency in programming languages and toolchains needed for the project will not be considered.
Student proposals should follow the template below.
It should include your personal details, information on your current degree (university, program, dates), and contact information.
Please include your availability: how much time do you plan to spend on your GSoC project? Are there other factors that might impact your availability, such as part-time work, exams, summer school, university courses?
Please summarize and describe your education and experience, including skills acquired at the university and practical experience, such as large university projects, internships, jobs, open-source contributions, publications, etc.
Please describe briefly your experience level for each skill required for the selected project.
Please answer the following questions:
- Why did you choose this project? What made you interested in our organization?
- What do you wish to accomplish during GSoC?
- Have you worked with the required technologies before? If yes, then in what scope? Which projects?
- Did you contribute to open-source projects before? Have you ever made a pull request, helped to fix an issue, or developed a project?
- The proposal should consist of a sequence of milestones. Each milestone should clearly state an achievable goal and a tentative description of a code package that will be implemented for this milestone.
- Each milestone should specify a set of tests that could validate it.
- Based on the milestones, propose a project timeline aligned with the GSoC dates. Your timeline should specify milestones that you will deliver for each GSoC evaluation.