overview icon indicating copy to clipboard operation
overview copied to clipboard

Automated Download Speed Testing for download.kiwix.org

Open rgaudin opened this issue 2 years ago • 54 comments

This ticket tracks the Kiwix GSoC ~~2023~~2024 Project Automated Download Speed Testing for download.kiwix.org until code contributions and/or specific tickets requires creating its own dedicated repository.

Candidates, contributors, this ticket is the preferred location to discuss this project. Ask your questions here and mentors (@rgaudin, @kelson42) shall respond.

Mandatory reads:

  • https://github.com/kiwix/overview/blob/main/CONTRIBUTING.md
  • https://github.com/kiwix/overview/blob/main/CODE_OF_CONDUCT.md

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

rgaudin avatar Mar 03 '23 09:03 rgaudin