Censorship.no is a browser that uses the BitTorrent and Ouinet protocols to access blocked information. Tasks from CENO include: popularization of the browser among non-technical users (memes, video content, cards for social networks); improvement of the Ouinet protocol; development of the CENO plugin for Chrome and more.
CENO & Ouinet Hackathon challenges
The Internet Without Borders 2022-23 conference series is introducing an a-la-carte menu of hackathon challenges set by our technology partners. Each challenge has a cash prize associated with it, paid out by eQualitie on successful completion and acceptance by the technology partner
1. Exposing all ouinet client options (specify) to CENO.
This should be simple enough to be done in a day with someone who knows some Java. See settings exposed in C++ code and AAR. Eg: DoH,
Requirements: +++ – Docker, Java/C++ skills, access to github repo / access to Docker / Kotlin ? Javascript / access to compiler
Deliverable: Pull request exposing the settings we want exposed
Acceptance criteria: passed tests (link to github)
Ideal team size: 2
Price paid: 600 USD
References:
2. Ouinet integration projects
Use Ouinet as a request mechanism for a popular Podcast or RSS applications (look up some example apps on F-Droid, e.g. https://f-droid.org/en/packages/com.nononsenseapps.feeder/ or https://f-droid.org/en/packages/me.ash.reader/)s
Requirements: ++ (Kotlin/Java, Android development skills)
Deliverable: A fork repository of the RSS or Podcast application used as a base that can be built to a fully functional APK
Acceptance criteria:
Include a README that explains how to build and run the app
The application should fetch the content (RSS or Podcasts) using only the Ouinet’s p2p network: ouinet.Config.setDisableOriginAccess(true)
Add-on challenge:
Expose Ouinet on/off in the Settings
Enable or disable different request mechanisms; Origin, Public network, Shared by other users
Ideal team size: 2
Price paid: 600 USD
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
3. Improvements to the Ouinet example applications
e.g. add a settings activity to configure the Ouinet mechanisms used for testing:https://ouinet.work/docs/integration/examples.html
Requirements: ++ (Kotlin, Android development skills)
Deliverable:
A pull request to the equalitie/ouinet-examples repository with the following improvements
Buttons for starting and stopping the Ouinet client
A separate activity to configure the Ouinet client (request mechanisms, log level, etc)
Replace the current output text area with a scrollable component
A button to download the log
Acceptance:
Follow best practices in terms of components organization in the UI
The code is clean, readible and maintainable
Add automated tests when possible
Ideal team size: 1
Price paid: 300 USD
References:
- http://ouinet.work/docs/integration/
- https://github.com/equalitie/ouinet-examples/blob/main/android/kotlin/README.md
- https://github.com/censorship-no/ceno-docker-client/blob/main/ouinet-client.conf
4. Video and image asset narrations and translations, iterations, and memifications
Requirements: + –
Deliverable: Create a nontechnical « share the web » to help popularize CENO usage among diaspora as a website with a simple elevator pitch of the benefits of surfing in ‘public’ mode; making sure you can share content with others; and a call to action to install CENO
Include informative images (infograph style?) that can be easily shared via social media, maybe also create an embedded banner, button, and/or iframe snippet to add to a website.
Second prize – few variants for A-B testing
Acceptance:
Ideal team size: 1-2
Price paid: not specified
5. Porting CENO Extension to Chrome
Here’s some documentation from mozilla
- Requirements: ++ – Javascript; Chrome extension experience; Ouinet client running on host OS
- Deliverable: A chrome extension, technically and visually identical to firefox extension
- Acceptance: Able to retrieve, cache, and share content in Chrome Browser
- Ideal team size: 1-2
- Price paid: 600 USD
6. Implementing proper bookmarking in CENOv2 (not properly enabled in Moz Ref Browser)
- Requirements: + – Kotlin, Android development skills
- Deliverable: A bookmarking menu/toolbar option in CENOv2
- Acceptance: Bookmarks can be saved, exported, and imported.
- Add-on: Bookmarks might not persist after app data is cleared (i.e. purging with panic button), come up with a clever work around for this (e.g. backup the bookmarks to an encrypted file on phone storage)
- Ideal team size: 1
- Price paid: 500 USD