April 28th-30th, 2023
Berlin, Germany
Forum Factory, Besselstraße 13-14, 10969 Berlin
Apply to participate

Facilitator: Dmitry Vitaliev

1. Docker containers for Amnezia VPN (Jitsi and Nextcloud)

Develop Docker containers (separate) with Jitsi and Nextcloud preinstalled, and integrate the containers into AmneziaVPN. Required skills: c++/Qt to add to Amnezia’s ui, and bash/Docker to make the containers themselves using Amnezia’s format.

Prize: $300

2. Build Amnezia VPN client for Linux Arm

Build AmneziaVPN for Linux Arm. Create a build pipeline on GitHub Actions, the output of which will be an AmneziaVPN installer for Linux arm64. A good C++/Qt experience is needed for the task.

Prize $400

3. Build Docker container with preinstalled GoodbyeDPI 

Develop a docker container with GoodbyeDPI preinstalled (https://github.com/ValdikSS/GoodbyeDPI), and integrate the container into AmneziaVPN. Required skills: C++/Qt.

Prize $600

4. Implement AmneziaVPN for a chosen app

To implement the VPN function for the selected application, for the AmneziaVPN application for Android or iOS. This task requires knowledge of Java/Kotlin stack for Android, or ObjectiveC/Swift for iOS, as well as knowledge of c++/Qt, for routing application selection logic to Amnezia.

Prize: $1000 for each platform – Android and iOS.

5. Integrate Ouinet into Element Android

Description: Use Ouinet as a request mechanism for the Matrix client Element:

https://github.com/vector-im/element-android/

Requirements: ++ (Kotlin/Java, Android development skills)

Deliverable: A fork repository of the application used as a base that can be built to a fully functional APK

Acceptance criteria:

  • Includes a README that explains how to build and run the app
  • The application should authenticate using Ouinet’s private mechanism
  • It’s okay to keep all the subsequent requests using the private mechanism but origin should be disabled: *ouinet.Config.setDisableOriginAccess(true)*

Add-on challenges: Fetch public content using Ouinet’s p2p network.

Ideal team size: 2

Prize: $600

References:

http://ouinet.work/docs/integration

https://github.com/equalitie/ouinet-examples/

https://github.com/censorship-no/ceno-docker-client/blob/main/ouinet-client.conf

6. Integrate Ouinet into Streaming apps

Use Ouinet as a request mechanism for a popular streaming front-end application (look up some example apps on F-Droid, e.g

  • https://f-droid.org/packages/org.schabi.newpipe/
  • https://github.com/Shabinder/SpotiFlyer  
  • https://github.com/z-huang/InnerTune

Requirements: ++ (Kotlin/Java, Android development skills)

Deliverable: A fork repository of the application used as a base that can be built to a fully functional APK

Acceptance criteria:

  • Includes a README that explains how to build and run the app
  • The application should fetch the content using only the Ouinet’s p2p network: *ouinet.Config.setDisableOriginAccess(true)*

Ideal team size: 2

Prize: $600

References:

http://ouinet.work/docs/integration

https://github.com/equalitie/ouinet-examples

https://github.com/censorship-no/ceno-docker-client/blob/main/ouinet-client.conf

7. What email servers are compatible with Delta Chat?

Delta Chat is a decentralized, encrypted, open source messenger that works on SMTP/IMAP mail protocols and does not require binding to a phone number. It’s easy to use and has an interface similar to Telegram or Signal. You can use any suitable email address to register in Delta Chat. But now the main entry threshold for users is to choose a suitable email provider. 

The goal is to test email servers offered by popular domain registrars and web hosts (e.g. gandi.net, godaddy, and so on). This would be good for small media user groups or organizations that can buy or already have their own domain and email issued with it.

You need to test: support for IMAP, SMTP, IDLE/CONDSTORE/QUOTA extensions, limits on size of sent and received files, limits on data storage, limits on frequency of sending mails, registration requirements (phone, card, etc.)

An example of such testing and comparison of providers, which has already been conducted by Delta Chat: https://github.com/deltachat/eppdperf/tree/main/src/eppdperf

The analysis criteria are also available here: https://imapclient.readthedocs.io/

Prize: $600

8. Self-hosted LLM with an interface to the messenger Delta Chat (or at least Telegram, IRC or XMPP).

At the moment in Delta Chat you can use the bot chatbot@testrun.org, which gives access to ChatGPT functionality. But the problem is that this solution is tied to API from OpenAI, we want to offer users an alternative with open-source code, that wouldn’t be tied to proprietary projects. For example, llama. Ideally, after the hackathon has a ready bot that the user can interact with, as well as simple instructions on how to deploy at least something on their own without having the latest Macbook and access to servers with 30 Gb of memory and GPU.

Prize: $600

9. Anonymizer for hotline

A task from NaSvyazi project (hotline for info-business activists). To develop an anonymizer for Zammad+telegram-bot that hides username of a user who applied to desk service when passing a ticket to Zammad (possibility of admin viewing?)

Prize: $400

10. Develop a research and testing protocol to test VPN availability in Russia

Challenge curated by OONI and eQualit.ie. 

Problem: Since 2022, RKN has started to use TSPU (DPI) to filter certain VPN protocols, such as WireGuard. We have heard about blocking of NordVPN, ProtonVPN, RiseUp VPN, Opera VPN and others. Recently users from Russia also reported about Mullvad working only partially. In this context, it is important for users to know which VPNs are still accessible. However, it is a tricky task, since we also need to hide this information from the censors. 

OONI fellow Ain Ghazal has been working on VPN testing protocols and has done an extensive testing of various VPNs; however this testing was not focused on Russia. 

Task: design a secure and robust VPN measurement process for Russia. Come up with a solid, shared evaluation of the risks of VPN accessibility measurements; and think about how to involve testers into the process.

Prize: $500

11. Create a tool to search for news stories in the regional media

Challenge curated by Novaya Gazeta Europe

The proposal is to create a tool that would browse the sites and social networks (one of them, for starters) of regional media, and be able to determine the genre of text (so as not to take columns, say), the topic of the text, and the degree of «breaking». If the news is classified as breaking — send a notification to telegram bot. A list of sites and social networks will be provided

Prize $500