Skip to content

GSOC 2023 Proposal Template

Gunjan Chhablani edited this page Feb 10, 2023 · 1 revision

We understand that the template has a lot of questions but this is a very important step in the process. It will not only help us know more about you and find a good fit but will force you to think about the project idea in great detail. By working on this proposal, you will already be taking your first steps towards a successful summer. We recommend that you start early and iterate on the application by getting feedback from the mentor. Please remember that you must submit your application to Google's GSoC portal. It is not possible to accept you if you do not do this. Please make sure your application follows the template.


Basic Details

  • Full Name
  • Location & Time Zone
  • Education
  • Email & Github Username
  • Skype Username
  • WWW / Blog
  • Resume

Statement of Motivation

  • What is your motivation for participating in Google Summer of Code?
  • Why did you choose CloudCV?
  • Why this project idea?
  • What are your expectations from us during and after successful completion of the program?
  • What are you hoping to learn?

Experiences

  • Have you taken Computer Vision, Machine Learning, Artificial Intelligence, Natural Language Processing, Deep Learning courses?
  • What kind of projects have you worked in the past? What technologies did you use?
  • What is your experience with Python and Javascript?

CloudCV Contributions

If you have contributed to projects of CloudCV, please provide the link of the pull requests with one-line description of the feature you added.

Other open-source contributions

Have you ever contributed to an open-source project, if so, to which project(s)?

Project Details

A very detailed description of the project idea.

  • Use flowcharts, diagrams and mocks as much as possible

  • Think about various tests that you will have to write

  • If your project involves writing APIs, what will those APIs look like

  • Discuss your assumptions

  • Mention your deliverables

  • Break down the bigger picture into smaller tasks and explain in detail each component of the pipeline. In planning your project, it is good to note where along the way you could formulate a pull request. These would be points where you can have a self-contained and well documented and tested piece of functionality. Doing this at several points during the summer helps to keep the branch merges reasonable and code reviews manageable. A big code dump at the end of the summer will likely be hard to review and merge before the project deadline.

  • If you have found existing work that we can build on top of - mention those.

  • If you plan to use a specific algorithm/layer/model/library/framework, mention them here.

  • Include technologies you are planning to use and your familiarity with them.

  • We can't stress enough that we want specific details! We love details! Think of this section as a specifications document that you would give to a team of software engineers and designers to build the feature.

Here is an example: For instance, how will the newsfeed in EvalAI work?

  • What will the newsfeed show? Some high-level ideas on what will it contain. Some rough mock-ups of what it will look like.
  • Then go into specifics of what will you need to store in the database? What is already present in the database. What other fields to store. What will the APIs look like? What will be the APIs, etc?
  • What will the workflow look like? When the user logs in, how will the data get fetched? Maybe identify bottlenecks such as a very convoluted database query to fetch relatively simple information.

Hopefully, this gives you a sense of what we are looking for. This is where feedback will also be important. If you aren't sure, then ask for feedback from mentors. They will point out missing details, inconsistencies etc.

Project Schedule

  • Include a weekly timeline for your project from when the coding period begins to the end of the program. What do you expect to have ready until each of the three evaluations? One of the keys to a successful project is very good planning. Try to set realistic goals for each sprint, leave the buffer for delays. If you are planning to go on a vacation or will be off-the-grid for a few days, then mention those in the timeline.
  • Also, include what you hope to achieve in the community bonding period. We will be organizing an orientation program for selected students to help them ramp up on the codebase and any other pre-requisites. If you feel that there is something that you will have to learn before the coding period starts, mention them here. This will help us cater to the orientation program towards your specific needs.
  • Also, discuss your plans after the GSoC period ends. Do you plan to continue working on the project after GSoC ends? What steps will you take to ensure that knowledge transfer to new contributors is easy?

While we understand this is preliminary and will get refined over the course of the summer with help from the mentor, it will help you plan the project much better. Think of this section as what you would give to the executives of a company who cares only about when will it get done. Not how will it get done, but when will it get done

Time

How much time can you spend weekly on the project? Are you doing some other internship along with GSOC? What happens when your college reopens after the summer break?