Skip to content

Google Summer of Code 2024

David Allison edited this page Dec 24, 2024 · 13 revisions

Important

Google Summer of Code 2024 Applications are now closed

Selected Candidates

All 3 selected candidates were successful in their GSoC projects, and their work was released publicly in AnkiDroid 2.19

If you're on GitHub, give them a follow!

Honorable Mentions

Every year, we receive a large number of extremely high quality Google Summer of Code applications. Due to organizational and operational constraints, we are unable to select all candidates. AnkiDroid's mentors felt the following applications were of exceptional quality in their written proposals, and/or the code submissions made to AnkiDroid during the application period.

Congratulations to all those selected! Thank you for your contributions, discussions and enthusiasm. AnkiDroid is better due to your contributions, and you're ALWAYS welcome to continue contributing to open source, whether it be with AnkiDroid, or with another project close to your heart. Best of luck - wherever your journey takes you in the future.

Table Of Contents

expand

External Links

expand

AnkiDroid is participating in Google Summer Of Code 2024! GSoC is a global program which offers non-experienced contributors (and, historically, post-secondary students) the opportunity to discover and work with open-source organizations. The contributions are supported by a stipend. Contributors work closely with one or more mentors from an open-source organization to implement either a project idea by the organization, or a proposal of their own. You might be interested in our GSoC info pages from previous years: 2022; 2021

In order to receive updates about GSoC at Ankidroid, please join our Discord,

Also, please note that acceptance into GSoC isn't a prerequisite for becoming an AnkiDroid contributor. The AnkiDroid project is run by the community for the community, and we welcome any contributors, you can start contributing immediately if you desire so. For the sake of transparency, we are all volunteers here and if you participate now, it's as a volunteer, it does not guarantee, even implicitly, that you will be selected for GSoC.

What is Google Summer of Code?

Google Summer of Code is a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors.

Contributors

Potential candidates should take a look at the guidelines on how to contribute to AnkiDroid

Contribution links & advice

Getting started

If you're interested in applying to work with AnkiDroid for GSoC, please follow these steps:

  1. Sign up to AnkiDroid's Discord [#ankidroid-gsoc] in order to receive important notifications about GSoC
  2. Understand what AnkiDroid is all about by taking a look at our README and Development Guide
  3. Start contributing to AnkiDroid to get familiar with our contribution process
    1. Our recommended first issue is designed to help you quickly get your first pull request merged is: [Cleanup]: Fix Android Studio Warnings
    2. Your contributions help us get an idea of what it's like to work with you — e.g. how independent, resourceful, responsive, etc. you are. It will also help you get a better understanding of the codebase, so that you can write a good and detailed project proposal.
  4. Once you've merged your first pull request, you will be assigned the AnkiDroid Contributor role and be officially onboarded as participant! This step is a prerequisite to applying for GSoC.
  5. You can now select one or more GSoC projects and write your project proposal!
  6. We recommend that you continue submitting pull requests and integrating yourself with our mentors and development community while you're writing your project proposal

Dates and Deadlines

  • March 18 - Apr 2: GSoC contributor application period
  • May 1: Accepted GSoC contributors are announced
  • May 1 - May 26: Community bonding period
  • May 27 - Aug 26: GSoC contributors enjoy the summer by contributing code to their projects
  • Sep 3 - Nov 4: Extension period for GSoC coding (for projects with extended deadlines)

Google - GSoC Timeline

GSoC 2024 proposal template

Please fill this proposal template and contact us for feedback, Your proposal should be shared as "anyone with the link can leave comments", Mentors have been instructed not to respond to proposals that are not shared publicly, and we take a negative view on restricting access to proposals after feedback is provided. This is because, in the spirit of open-source, we would like to keep the discussions open, so it is intentional that everyone (including non-mentors) should be able to see your proposal and leave comments and suggestions on it.

Your proposal must be original (see section 2.4 of the Contributor Participation Agreement). During the selection process, proposals that are found to have plagiarized others' work will automatically be disqualified. If you include any text in your proposal that is copied from the Internet or other sources, you should make it clear that you are doing so and provide a link or reference back to the source.

As example of great proposal, here is the list of proposal accepted in our last GSoC:

Selection Criteria

In order to select contributors for GSoC, we will mainly be looking at:

  • The quality of the submitted proposal
  • The quality of the applicant's previously submitted PRs (in order to assess their ability to code, debug, break down complex tasks, etc.). Note that quantity isn't a prerequisite in itself, though contributors who've submitted multiple PRs are likely to have had more opportunities to demonstrate the abilities needed to succeed in GSoC.
  • Clear, unambiguous communication. We expect you to comment at least one PR you did not create to show your interaction with other contributors. (This is important; your proposal will be read by many mentors!)
  • A proposed solution approach that is sufficiently concrete and which demonstrates that the applicant has a good understanding of both the scope of the problem and the existing codebase.

View Student Eligibility and we created a document explaining our selection process.

Communication

AnkiDroid has a real-time chat server on Discord! You can join the server by clicking this link and you will then be able to communicate with the AnkiDroid community. Please feel free to ask for help from the community or if you have any general questions.

AnkiDroid's Project Ideas List

The following is a list of AnkiDroid's 2024 GSoC project ideas. You are welcome to choose among these ideas or propose your own! However, if you're planning to propose something original, it's essential to engage with the AnkiDroid community beforehand in order to get feedback and guidance to improve the proposal. We'd also recommend taking a look at issues and seeing if there is a natural way to tie your idea to the AnkiDroid project's goals, otherwise, it might not be a good fit at this time.

Please note that the list of project ideas below is not set in stone: more projects may be added later, and some project descriptions may also change a bit, so check back regularly. In addition, the mentor assignments listed below are provisional, and may change depending on which proposals are eventually accepted.

Expected ideas list will be updated.

FAQs

Q: How can I increase my chances of getting selected? A: Writing a good project proposal, engaging with the community, helping other contributors, successfully contributing, and demonstrating that you can work independently can all help you. We've also compiled some notes below on the selection criteria we'll be using this year.

Q: Can you be flexible around my other commitments in the summer?

A: Yes (within reason)! This year, GSoC is going to be a bit different from previous years. The program has been restructured in a way that allows contributors to take some time off for any other commitments such as exams. (view timeline here.) AnkiDroid will respect the same timelines that are given by GSoC; the main concern is whether you can still get the project done on time. Be upfront about your other commitments and make sure you schedule your time accordingly when creating your proposal. Other commitments you should list include time when you'll be in school and will commit less time to GSoC, time when you'll be travelling and away from GSoC work, any summer jobs you need to commit to, etc. We will try to be flexible around other time commitments, as long as your proposal convinces us that you will have enough time to complete the project by the end of the GSoC coding period. On the other hand, if you do not disclose other commitments, and it turns out that you are unable to commit to what you wrote on your proposal, this is grounds for failing the program.

Q: Can I submit more than one proposal to AnkiDroid?

A: Yes, you can. However, we strongly recommend picking one project and writing a solid proposal for it. Splitting attention across multiple projects might not be a great idea. (That said, since this is the first year GSoC is offering full-length and half-length projects, one exception might be if you're interested in doing either the 'full version' or the 'half version' of a project idea that can support both modes. In such a case, you would be welcome to submit both the 'full version' and the 'half version' as separate applications, but, before doing so, please make sure that you'd be happy with either outcome if you are selected.)

Q: How early should I start working on the proposal?

A: As early as possible. Make sure to get feedback from mentors before finally submitting the proposal. This will help you to write a better proposal, as you can refine the details based on the feedback you receive. Mentors will need some time to review your proposal, so it's a good idea to begin as early as possible. Make sure to follow all instructions in the proposal template (especially around sharing and access) to reduce delays in reviewing your proposal.

Q: I do not have any experience in skill XYZ. Is some certification required?

A: Try to work on good first issues and take courses online. In the field of software development, it is common to develop experience and expertise as you take up and complete projects successfully. We do not require any formal certification of particular skills.

Q: How many people is AnkiDroid planning to mentor this year?

A: 2

Clone this wiki locally