-
For the full list of issues you can work on, see our GitHub repositories /openZIM and /Kiwix
GSoC has two sets of projects, lasting ~175 and ~350 hours approximately so that people who can not work full-time (because of exams or whatnot) can still participate.
We want to be clear upfront that we will not chose candidates just because they came up with a long/complicated project over a short one: we make our choice based on how good previous PRs have been and because we need project to be completed. Some short projects can be really impactful whereas longer ones may be just nice-to-have.
Last but not least: over the years about half the students who did GSoC with Kiwix came up with their own project rather than one from our list – be bold.
Automated Download Speed Testing for download.kiwix.org
Objective: create a solution that automatically tests the download speed of download.kiwix.org from various locations on Earth. This will help Kiwix to ensure fast and reliable downloads for all users and improve the overall user experience, as 80% of our users are located in the Global South. By automating the testing process, Kiwix can save time and resources (we’re a non-profit, after all).
Technologies: Python, VPN, datacenters
Description:
Kiwix provides offline access to Wikipedia and other educational content to millions of users worldwide. Ensuring fast and reliable downloads from download.kiwix.org is critical to delivering a good user experience. However, it is challenging to accurately test download speeds from different locations on earth due to network latency and other factors.
The objective of this project is to create an automated solution to test the download speed of download.kiwix.org from various locations on earth using VPN or datacenters. The solution will use python to run the tests and record the results. The tests will be run at regular intervals and the results will be stored in a database. This will allow Kiwix to monitor download speeds over time and identify any issues that may be affecting performance.
Key Deliverables:
- A python script that tests download speed from various locations on earth.
- A database to store the test results.
- A web-based interface to view the results.
- Documentation for how to set up and use the solution.
Skills required:
- Strong knowledge of python programming language
- Familiarity with network testing and performance analysis.
- Experience with VPNs and datacenters.
- Knowledge of databases and web development is a plus.
Difficulty: Easy, but probably a longer (350 hours) project
Interested? Check out the main ticket
Nautilus Web UI
Objective: build a web-based interface for what is currently a command-line tool.
Technologies: Python, JavaScript, HTML, CSS
Description:
Kiwix is useful because it can provide a lot of content to people without internet access. Therefore, the easiest it is to generate content that is available offline, the more users can be reached.
Nautilus is a powerful tool for creating ZIM files from collections of documents (PDF files, videos, etc.), but it currently requires the user to run commands from the command line. This makes it challenging for users (usually schools) who are not familiar with the command line or who prefer a graphical user interface.
The goal of this project is to build a web-based user interface for Nautilus, making it easier for users to convert their collections of documents into browsable ZIM files. The web UI will be built using Python, JavaScript, HTML, and CSS and will provide an intuitive and user-friendly interface for Nautilus.
Key Deliverables:
- A web-based user interface for Nautilus.
- Documentation for how to install and use the web UI.
- Test cases to verify the correct functioning of the web UI.
Skills required:
- Strong knowledge of Python programming language
- Familiarity with JavaScript, HTML, and CSS.
- Knowledge of web development and user interface design.
Difficulty: Medium, but probably a 350hrs project
Interested? Check out the main ticket.
Automating Google Play Store Translation via Translatewiki
Objective: we want to automate the translation process of our Google Play store entries via Translatewiki. This will help in making the apps available in multiple languages, making it accessible to a larger audience.
Approach: we suggest using Kotlin and Gradle to develop a tool that can handle the translations. Your tool will extract the app’s text content and send it to Translatewiki for translation. After the translation is completed, the tool will automatically update the Google Play store entry with the translated text.
Deliverables:
- A Kotlin-based tool that can extract text content from Google Play store entries.
- Integration with Translatewiki for translation.
- Automated updating of Google Play store entries with translated text.
- A comprehensive guide for app developers to use the tool for their Google Play store entries.
Skills required:
- Good understanding of Kotlin and Gradle;
- be somewhat familiar with the Google Play store and Translatewiki.
Difficulty: Hard, but once you’ve figured it out it should go quickly and 175 hours or so should suffice.
Interested? Check out the main ticket.
-
Want to join?
Then think hard about what you want to do, and go to the Google Summer of Code
website between March 20 to April 4, 2023, to submit your projects!
After reviewing all proposal, students projects will be announced on May 4, 2023.
Help & Tips
Please read our guide to Writing your Google Summer of Code application
Do you have questions?
Then come and join us on our Slack channel!
Mentors are assigned based on which projects are selected and who’s available at the moment, so don’t even try to ask for names.