1. Редизайн и продвижение мобильной версии сайта независимого российского СМИ

Мобильная версия сайта этого СМИ сейчас представляет собой минимальную адаптацию веб-версии. Медиа-сайты в нашей нише, напротив, имеют полноценные мобильные интерфейсы, интуитивно понятные, удобные и быстрые. Это те качества, которых не хватает нашей текущей мобильной версии. Мы хотели бы реализовать изменения, перечисленные в разделе «Задачи», и получить актуальный интерфейс. Нашим главным приоритетом является оптимизация мобильной версии нашего сайта с акцентом на повышение скорости сайта и общего удобства для пользователей. Наша главная цель — предоставить нашим читателям наилучшие возможности при доступе к нашему контенту. Улучшения нашего веб-сайта должны соответствовать нашему дизайн-коду.

Задачи

  • Улучшить мобильную версию нашего сайта, чтобы сделать ее более доступной и удобной для пользователей;
  • Сократить время загрузки страницы, чтобы обеспечить быстрое и беспрепятственное использование нашего контента, улучшая общее взаимодействие с пользователем.

Дорожная карта

  • Макет и дизайн — реализуйте адаптивный дизайн, чтобы сайт адаптировался к различным размерам и ориентациям экрана; оптимизируйте макет и дизайн, чтобы выделить важный контент и избежать беспорядка на маленьких экранах; исправьте ошибки отображения;
  • Контент — внедрить умную рекомендательную систему, предлагающую интересующий читателя контент; визуально разделить контент разных форматов (например, лонгриды, монологи, интервью) на главной странице и в блоках «Читать дальше»;
  • Производительность — повысить скорость работы сайта за счет сокращения времени начальной загрузки и оптимизации просмотра страниц сайта; протестируйте сайт на различных мобильных устройствах и браузерах, чтобы убедиться в совместимости.

Приз: 500$

2. Разработать Telegram-бота для текстовой игры для независимого российского СМИ

Независимое СМИ об общественно-политической жизни регионов России, разрабатывает игру, текстовый квест о мобилизации 2022 года. В рамках хакатона просим помочь в разработке телеграм-бота для нашей игры. Бот должен давать пользователям возможность изменять заданные характеристики игрока в процессе выбора вариантов развития сюжета игроком.

Эта игра носит как образовательный, так и благотворительный характер. Образовательная идея игры заключается в том, чтобы рассказать игрокам о многообразии траекторий движения россиян в период мобилизации (эмиграция в разные страны разными путями, решение остаться в России для проведения акций сопротивления или решение переехать из городов в леса). Мы хотим показать, что эмиграция была и остается трудным жизненным выбором. Сюжетные идеи этой игры основаны на реальных историях героев материалов. Благотворительная идея игры заключается в том, чтобы предложить игрокам возможности для более легкого прохождения при условии, что будут сделаны пожертвования в пользу благотворительных организаций.

Задачи

Разработка телеграм-бота для текстовой новеллы. Игроку предстоит пересечь российско-грузинскую границу, спасая героя от мобилизации. Текстовые выборы приводят героя к разным концовкам: он может либо благополучно добраться до Тбилиси, либо застрять на границе, либо оказаться на мобилизационном пункте и отправиться на передовую. Для прохождения сюжета игроку предлагается выбор, каждый выбор влияет на характеристики героя. Два из них видны игроку: индикатор денег и индикатор здоровья (физического и психического). Третья характеристика заключается в том, что уровень нравственности снижается, если игрок делает аморальный выбор (например, воровство денег) и повышается (например, когда он решает помочь другим героям).

Ход игры. Игрок выполняет сюжетные действия, выбирая варианты на каждом этапе. Например:

«К полуночи на КПП «Верхний Ларс» с российской стороны собирается почти тысяча человек. Пограничники готовы пропускать людей пешком и небольшими группами, но требуют организовать очередь».

Выбор:

  1. Помочь организовать группы очередей
  2. Отказаться помогать, попробовать первым добраться до ворот.

При снижении каждого параметра до 1 открывается возможность его восстановления — краткий сюжетный побочный квест. При любом варианте прохождения игрок затем возвращается к последней пройденной точке сюжета.

В игре есть четырнадцать вариантов финала разной степени успешности. При прохождении игры до хорошей концовки игроку предоставляется возможность сделать пожертвование в пользу благотворительной организации. После внесения пожертвования открывается «золотая» концовка. Есть две золотые концовки. Команда СМИ предоставит вам все сопутствующие материалы.

Приз: 400$

3. Создать мобильное приложение для подкаста независимого российского СМИ

Независимое российское СМИ — это подкаст-издание, специализирующееся на повествовательном подкастинге. В нем более 28 подкастов, которые слушают 3 млн раз в месяц с 80% аудитории в России. Яндекс.Музыка (39%), YouTube (20%) и подкасты Apple (19%) — основные платформы, которые использует аудитория СМИ. Недавно Яндекс.Музыка заблокировала три наших подкаста, и есть большой риск, что YouTube тоже будет заблокирован.

Задачи

  • Создать интерактивный прототип мобильного приложения для СМИ;
  • Предоставить доступ ко всем подкастам в один клик;
  • Внедрить решение для предотвращения блокировки контента;
  • Приложение может использовать существующее решение для создания приложений, которое можно настроить в соответствии с потребностями СМИ.

Приз: 600$

4. Создайте клиент AmneziaVPN для Linux Arm

AmneziaVPN — это бесплатное приложение с открытым исходным кодом для создания собственного VPN на вашем сервере. Задача состоит в том, чтобы собрать Amnezia VPN для дистрибутива Linux Arm, разработать конвейер для GitHub Actions с установкой AmneziaVPN для Linux arm64.

AmneziaVPN Github: https://github.com/amnezia-vpn/amnezia-client

Требуемые навыки: хороший опыт работы с С++/Qt.

Приз: 400$

5. Создать контейнер Docker для AmneziaVPN с предустановленным GoodbyeDPI

Разработайте докер-контейнер с предустановленной системой GoodbyeDPI для обхода блокировки DPI (см. код здесь: https://github.com/ValdikSS/GoodbyeDPI). Интегрируйте контейнер в AmneziaVPN.

Требуемые навыки: хороший опыт работы с С++/Qt.

Приз: 600$

6. Внедрить AmneziaVPN для выбранного приложения

Иногда пользователи хотят использовать VPN только для определенных приложений, а не для всего трафика. Пример: когда вы находитесь в России, если вы фильтруете весь свой трафик с помощью VPN, российские сайты или приложения могут не работать (например, госуслуги или сбербанк и т. д.).

Задача состоит в том, чтобы разработать возможность использования VPN только для определенного приложения (например, Facebook, Telegram, Firefox или Instagram) и интегрировать эту функцию в AmneziaVPN для Android или iOS.

Требуемые навыки: Java/Kotlin для Android или ObjectiveC/Switf для iOS + навыки в c++/Qt для развертывания логики выбора приложения внутри клиента Amnezia.
Приз: $1000 за каждое приложение

7. Интегрировать Ouinet в Element Android

Ouinet — это бесплатная технология с открытым исходным кодом, которая позволяет обслуживать веб-контент с помощью всей сети взаимодействующих узлов, используя одноранговую маршрутизацию и распределенное кэширование ответов. Это помогает смягчить характерную для Интернета единую точку отказа из-за того, что клиентское приложение не может подключиться к определенному серверу. Библиотека Ouinet — это основная технология, которую можно использовать в любом приложении, чтобы воспользоваться этими преимуществами. Интеграция Ouinet предоставляет любому создателю контента возможность использовать совместную сеть и хранилище для доставки своего контента пользователям по всему миру.

Задача: использовать библиотеку Ouinet в качестве механизма запроса для клиента Matrix Element для Android: GitHub – vector-im/element-android: A glossy Matrix collaboration client for Android.

Требуемые навыки: ++ Kotlin/Java, навыки разработки под Android

Ожидаемый результат: форк-репозиторий приложения, используемый в качестве базы, из которой можно построить полнофункциональный APK.

Критерии готовности:

  • Включает README, в котором объясняется, как собрать и запустить приложение;
  • Приложение должно аутентифицироваться с использованием закрытого механизма Ouinet;
  • Можно оставить все последующие запросы с использованием закрытого механизма, но происхождение должно быть отключено: ouinet.Config.setDisableOriginAccess(true)

Ссылки:  

Приз: 600$

8. Интегрировать Ouinet в стриминговые приложения

Используйте Ouinet в качестве механизма запроса для популярного потокового внешнего приложения (посмотрите несколько примеров приложений на F-Droid, например:

https://f-droid.org/packages/org.schabi.newpipe/

https://github.com/Shabinder/SpotiFlyer

https://github.com/z-хуанг/InnerTune

Требования: ++ (Kotlin/Java, навыки разработки под Android)

Ожидаемый результат: форк-репозиторий приложения, используемый в качестве базы, из которой можно построить полнофункциональный APK.

Критерии готовности:

  • Включает README, в котором объясняется, как собрать и запустить приложение;
  • Приложение должно получать контент, используя только сеть p2p Ouinet: ouinet.Config.setDisableOriginAccess(true).

Ссылки:

http://ouinet.work/docs/integration

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

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

Приз: 600$

9. Анонимайзер для горячей линии для активистов

«На связи» — это горячая линия, которая помогает активистам по вопросам информационной безопасности. В настоящее время проект полагается на бота Telegram. Администраторы обрабатывают запросы с помощью решения с открытым исходным кодом Zammad. Однако это имеет свои ограничения безопасности.

Задача: разработать анонимайзер, который подключит нашего Telegram-бота к Zammad и поможет скрыть имя пользователя, обратившегося на нашу горячую линию.
Приз: 500$

10. Разработка инструмента для поиска визуальных дублей для независимого российского СМИ

Создать инструмент, в который можно загружать ссылки на несколько телеграм-каналов и/или твитеров, а в результате будет выдавать уникальные.

Это решит проблему, при которой пользователь сталкивается с очень большим количеством перепостоы и перезаливок материалов, в итоге в этом объеме повторяющейся информации можно утонуть.

Приз: 500$

11. Разработка безопасного инструмента для связи нежелательной организации с читателями из РФ

В современных условиях работы русскоязычных медиа (признание нежелательными, иностранными агентами и последующие риски для работающих с ними людей) довольно сложно оперативно и при этом безопасно получать информацию «из полей», то есть непосредственно из России.Хочется иметь удобный инструмент желательно на основе Телеграма или другого широко доступного мессенджера, с помощью которого можно было бы удобно, быстро и безопасно связываться с читателями из России.

Приз: 500$

12. Страница для Ceno.life

Ceno.life это решение для доставки заблокированного контента, которое использует библиотеку Ouinet и раздаёт кэшированные версии сайтов из предустановленного списка. 

Задача: создать более аккуратную и симпатичную страницу которая заменит   существующую версию https://schedule.ceno.life

Требования: Front end design: Tailwind CSS, HTML

Что надо сделать за хакатон: Предложить редизайн дэшборда чтобы заменить https://schedule.ceno.life/

Создать кастомизированный CLI для tailwind – файл tailwind.conf.js file (используя самую последнюю версию tailwind) так чтобы он сочетался с брэндингом нашего проекта, чтобы предложить редизайн нашего дашборда.

Добавить форму через которую пользователь может предлагать свои сайты для кроулинга. 

Эта задача не требует разработки бэкенда, но вы можете скопировать schedule.ceno.life и использовать данные оттуда для наполнения таблиц в рамках исполнения задачи.

Дополнительные задачки:

Добавить плэйсхолдер-изображение для всех сайтов с кликабельным баннером и/или фавиконкой. 

Добавить плэйсхолдер-изображение для спонсоров в футере сайта.  

Внедрить разбивку таблицы по страницам (ограничив, например, до 10 сайтов на страницу)

Приз: $400

13. Бот для рекомендаций ВПН 

«На связи» — горячая линия помощи активистам помогающая решить проблемы по цифровой безопасности. 

Задача: разработать Телеграм-бот который пользователь может добавить в свой чат. Бот должен уметь автоматически распознавать когда кто-то в чате спрашивает совета о хорошем ВПН или задаёт связанные с этим вопросы типа «какой лучше выбрать ВПН?» «Какие ВПН доступны в рф?» И так далее). Когда бот распознает такие вопросы, он даёт в ответ рекомендации с топом лучших ВПН и предлагает пользователю обратиться в «НаСвязи» чтобы получить более подробные рекомендации. 

Важно: у разработанного решения должен быть фронт-энд куда администраторы НаСвязи смогли бы добавлять ключевые слова для поиска.

Приз: $500

14. Прикрутить GPT или другую LLM независимого СМИ.

Есть парсер rss-лент и телеграм-каналов, который умеет находить в текстах ключевые слова и пересылать нужные тексты в специальный телеграм-канал. Но этот метод примитивный – далеко не всегда нужный запрос можно представить в виде набора ключевых слов, поскольку могут использоваться разные формулировки, а само наличие слов в тексте необязательно говорит что-то про его тему. 

Задача: прикрутить к парсеру большую языковую модель (GPT или любую другую), которая могла бы искать в текстах нужные темы по запросу, сформулированному на естественном языке. 

Пример как можно искать новости сейчас: «война», «мобилизованный», «пропал без вести», «лднр».

Пример: промпт «найди все новости, в которых фигурирует мобилизованный из лднр, которого отправили на войну и который пропал без вести»

Приз: $500

Выберите задачу, регистрируйтесь и приходите на хакатон!