1. Redesign and Boost the Mobile Version of Website of Independent Russian Media

The mobile version of website is now a minimal adaptation of the web version. Media sites in our niche, on the other hand, have self-sufficient mobile interfaces that are intuitive, user-friendly, and fast. These are the qualities that our current mobile version lacks. We would like to implement the changes listed in the Activities section and get an interface that is up-to-date. Our top priority is to optimize the mobile version of our site, with a focus on improving site speed and overall user experience. Our main goal is to provide our readers with the best possible experience while accessing our content. The improvements to our website must adhere to the design code of our media outlet.

Objectives:

  • Improve the mobile version of our website to make it more accessible and user-friendly
  • Reduce page load time to enable quick and seamless consumption of our content, improving overall user experience

Roadmap:

  • Layout and Design – implement responsive design to ensure that the site adapts to various screen sizes and orientations; Optimize the layout and design to prioritize important content and avoid clutter on small screens; Fix display errors
  • Content – implement a smart recommendation system that suggests content of interest to the reader; Visually separate content of different formats (e.g. longreads, monologues, interviews) on the home page and within “Read more” blocks; 
  • Performance — Improve the site’s speed by reducing the initial load time and optimizing browsing through site pages; Test the site on various mobile devices and browsers to ensure compatibility.

Prize: $500

2. Develop a Telegram Bot for a Textual Game for Independent Russian Media

An independent media about social and political life in Russian regions, is developing a game, a text-based quest about the mobilization of 2022. For the hackathon we request assistance in developing a telegram bot for our game. The bot should give users the ability to change the specified characteristics of the player in the process of choosing options for the development of the plot by the player.

This game is both educational and charitable. The educational idea of ​​the game is to tell the players about the variety of trajectories of Russians during the mobilization (emigration to different countries in different ways, decision to stay in Russia to carry out resistance actions, or decision to move from cities to forests). We want to show that emigration was and remains a difficult life choice. Plot ideas for this game are based on real stories of the heroes of the materials. The charitable idea of the game is to offer players opportunities for an easier passage, provided that donations are made to charitable organizations.

Challenge:

Development of a telegram bot for a text novel. The player will have to cross the Russian-Georgian border, saving the hero from mobilization. Text choices lead the hero to different endings: he can either safely get to Tbilisi, or get stuck at the border, or end up at a mobilization point and go to the front line. To progress through the story, the player is offered choices, each choice affects the characteristics of the hero. Two of them are visible to the player: indicator of money and indicator of health (physical and mental). The third characteristic is that the level of morality decreases if the player makes immoral choices (for example, stealing money) and increases (for example, when he decides to help other heroes).

Game progress. The player performs story actions by choosing options in each step. For example:

“By midnight, almost a thousand people are gathering at the Upper Lars checkpoint from the Russian side. Border guards are ready to let people through on foot and in small groups, but they demand to organize a queue.”

Choices:

1.Help organize queue groups

2. Refuse to help, try to get to the gate first.

When each parameter is reduced to 1, the possibility of its restoration opens – a short story side quest. With any variant of the passage, the player then returns to the last completed plot point.

The game has fourteen options for the finals of varying degrees of success. When passing the game to a good ending, the player is given the opportunity to make a donation to a charitable organization. After making a donation, the “golden” ending opens. There are two golden endings. The media team will provide you with all the related materials.

Prize: $400

3. Build a Mobile App for Independent Russian Media Podcast

Independent Russian media is a podcast outlet that specializes in narrative podcasting. It has over 28 podcasts that are listened to 3M times a month with 80% of the audience in Russia. Yandex.Music (39%), YouTube (20%) and Apple podcasts (19%) are the main platforms media’s audience is using. Recently, Yandex.Music blocked three of their podcasts and there is high risk that YouTube will be blocked too. 

  • Build a clickable mobile app prototype for the media.
  • Provide access to all podcasts in one click;
  • Implement solution to prevent content blocking;

The app can use an existing app-building solution that can be adjusted to meet media’s needs.

Prize: $600

4. Build Amnezia VPN client for Linux Arm

Amnezia VPN is a free open source application for creating your own VPN on your server. The task consists to build Amnezia VPN for Linux Arm distribution, developing a pipeline for GitHub Actions, with an installation for AmneziaVPN for Linux arm64. 

Amnezia VPN Github: https://github.com/amnezia-vpn/amnezia-client 

Skills required: good experience with с++/Qt.
Prize: $400

5. Build Docker Container for AmneziaVPN With a Preinstalled GoodbyeDPI 

Develop a docker container with preinstalled GoodbyeDPI, a system to circumvent DPI blocking (see code here: https://github.com/ValdikSS/GoodbyeDPI). Integrate container into AmneziaVPN. 

Skills required: good experience with с++/Qt.
Prize: $600

6. Implement AmneziaVPN for a Chosen App

Sometimes users want to only use VPN with specific apps, and not for all their traffic. An example: when you are within Russia, if you filter all your traffic with VPN, Russian websites or apps may not work (such as gosuslugi or sberbank etc).

The challenge is to develop a possibility to only use VPN for a specific app (for example, Facebook, Telegram, Firefox or Instagram), and integrate this function into Amnezia VPN for Android or for iOS. 

Skills: Java/Kotlin for Android or ObjectiveC/Switf for iOS + skills in c++/Qt to deploy the logic for choosing the app inside Amnezia client.
Prize: $1000 for each app

7. Integrate Ouinet into Element Android

Ouinet is a Free/Open Source technology which allows web content to be served with the help of an entire network of cooperating nodes using peer-to-peer routing and distributed caching of responses. This helps mitigate the Web’s characteristic single point of failure due to a client application not being able to connect to a particular server. The Ouinet library is a core technology that can be used by any application to benefit from these advantages. Ouinet integration provides any content creator the opportunity to use cooperative networking and storage for the delivery of their content to users around the world.

Challenge: use Ouinet library as a request mechanism for the Matrix client Element for Android: GitHub – vector-im/element-android: A glossy Matrix collaboration client for 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)*

References:  

Prize: $600

8. 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)*

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

Prize: $600

9. Anonymizer for an Activist Hotline

Na Svyazi is a hotline that helps activists with informational security issues. Currently it is relying on a Telegram bot. The admins are treating requests using the opensource solution Zammad. However, this has its security limitations.

Challenge: to develop an anonymizer that will connect our Telegram bot to Zammad and help hide the username of the user who contacted our helpline. 
Prize: $500

10. Develop a toll for finding visual duplicates for independent Russian media

The task is to develop a tool in which it will be possible to upload links to several telegram channels and / or tweeters, and after that the tool will parse video or photo materials from them and, as a result, will produce unique ones.

This will solve the problem in which the user is faced with a very large number of reposts and reuploads of materials, as a result, one can drown in this amount of repetitive information.

Prize: $500

11. Develop a secure tool for connecting an undesirable organization with readers from the Russian Federation


It can be rather difficult for a Russian-language media to quickly and safely receive information “from the fields”, that is, directly from Russia. The possibility of recognition as undesirable organization, foreign agent status and subsequent risks for people working with them.

The task is to develop a convenient tool, preferably based on Telegram or another widely available messenger, with which you can conveniently, quickly and safely contact readers from Russia.

Prize: $500

12. Ceno.life schedule page

Ceno.life is a solution for delivering blocked content, using Ouinet to deliver cached versions of certain crawled websites from a predefined list. 

The task is to create a better looking page that would replace the schedule currently at https://schedule.ceno.life/

Requirements:

Front end design: Tailwind CSS, HTML

Deliverable: Demonstrate a redesigned dashboard to replace the schedule currently at https://schedule.ceno.life/

Build a customized tailwind CLI tailwind.conf.js file (using the latest version of tailwind) that aligns with the project’s branding to redesign the dashboard

Add a submission form that end users can use to submit suggested sites to crawl

This challenge does not require the implementation of a backend, but the participant can create a copy of schedule.ceno.life’s frontpage to use as sample data to populate the tables for the challenge.

Add-on challenges:

  • Add a placeholder image for all sites that features a clickable banner image and/or favicon
  • Add a placeholder image for sponsors at the bottom footer
  • Implement pagination of the table (limit it to 10 sites as an example)

References:

Prize: $400

 13. A bot for VPN recommendations

Na Svyazi is a hotline that helps activists with informational security issues. 

Challenge: to develop an Telegram-bot that a user can add to their chat. The bot should be able to automatically recognize when someone in the chat asks for a VPN recommendation (“could you recommend a good VPN”? “What VPNs work well in Russia”, “how can I bypass censorship etc). When bot identifies these questions, it sends back recommendations with top VPNs and suggests the user to contact NaSvyazi hotline for a more detailed advise on VPN. The solution should have a front-end where NaSvyazi administrator could add keywords for search.

Prize: $500

14. Implement an LLM (ChatGPT or other) to a parser for Novaya Gazeta Europe

We have a parser of rss feeds and telegram feeds that can find keywords in texts and selected texts to a special telegram feed. But this method is primitive – not always the desired query may be represented as a set of keywords, because different wording may be used, and the mere presence of words in the text does not necessarily say anything about its subject. 

Challenge: to attach a big language model (GPT or any other), which would be able to search the texts for relevant topics on a query formulated in natural language. 

An example of how you can search for news now: “war”, “mobilized”, “missing in action”, “LdnR”.

An example of how we want: a prompt “find all the news in which there is a mobilized person from LdnR, who was sent to the war and is missing”.

Prize: $500

Choose a challenge, register and come to the hackathon!