Google Summer of Code 2022 - ankidroid/Anki-Android GitHub Wiki
You're reading an outdated page. You are probably looking for the 2024 page
Table Of Content
- What is Google Summer of Code?
- Contributors Guide
- Getting started
- Dates and Deadlines
- GSoC 2022 proposal template
- Selection Criteria
- Communication
- Project Ideas list
- FAQs
AnkiDroid has applied to participate in Google Summer Of Code! 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: 2021
In order to receive updates about GSoC at Ankidroid, please subscribe to the AnkiDroid GSoC Announce mailing list and join the 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: Google Summer of Code contributor guide Google's list of resources GSoC FAQ
- GSOC Student Advice
- GSOC Student Guide
- Google's Resources
- Development Guide
- Contribution Guide
- Code Style
Getting started
If you're interested in applying to work with AnkiDroid for GSoC, please follow these steps:
- Sign up to the Ankidroid's mailing list in order to receive important notifications about AnkiDroid organization,
- Get better understanding of what AnkiDroid Orgniazation is all about by taking look at link,
- Read and follow the instructions in the contributors' guide carefully contributions guide link
- It would be advisible to start contribution in Ankidroid to get familiar with the contribution process. This will 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.
- Once you've merged at least 2(or may be 1) pull requests, you will added the contributors role and be officially onboarded as participant! This step is a prerequisite to applying for GSoC.
- Now, you can select one or more GSoC projects that you're most interested in, and write your project proposal! We'll add more details to this point if AnkiDroid is officially accepted into GSoC.
Dates and Deadlines
- Feb 7 - Feb 21: Mentoring organizations apply
- Mar 7: Mentoring organizations are announced
- Apr 4 - Apr 19: GSoC contributor application period
- May 20: Accepted GSoC contributors are announced
- May 20 - Jun 12: Community bonding period
- Jun 13 - Sep 12: GSoC contributors enjoy the summer by contributing code to their projects
- Sep 12 - Nov 21: Extension period for GSoC coding (for projects with extended deadlines)
GSoC 2022 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.
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 2022 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.
- Visual Editor (175 hours)
- CSV Import (175 hours)
- Notification Subsystem (350 Hours)
- Migrate AsyncTask to Coroutines (175 Hours)
- Profiling AnkiDroid Operations (175/350 hours)
- [Your Project Here] (175/350 hours)
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: 1-2, we expect 2 maximum, we had 2 in 2021.