1. Редизайн и продвижение мобильной версии сайта независимого российского СМИ
Мобильная версия сайта этого СМИ сейчас представляет собой минимальную адаптацию веб-версии. Медиа-сайты в нашей нише, напротив, имеют полноценные мобильные интерфейсы, интуитивно понятные, удобные и быстрые. Это те качества, которых не хватает нашей текущей мобильной версии. Мы хотели бы реализовать изменения, перечисленные в разделе «Задачи», и получить актуальный интерфейс. Нашим главным приоритетом является оптимизация мобильной версии нашего сайта с акцентом на повышение скорости сайта и общего удобства для пользователей. Наша главная цель — предоставить нашим читателям наилучшие возможности при доступе к нашему контенту. Улучшения нашего веб-сайта должны соответствовать нашему дизайн-коду.
Задачи
- Улучшить мобильную версию нашего сайта, чтобы сделать ее более доступной и удобной для пользователей;
- Сократить время загрузки страницы, чтобы обеспечить быстрое и беспрепятственное использование нашего контента, улучшая общее взаимодействие с пользователем.
Дорожная карта
- Макет и дизайн — реализуйте адаптивный дизайн, чтобы сайт адаптировался к различным размерам и ориентациям экрана; оптимизируйте макет и дизайн, чтобы выделить важный контент и избежать беспорядка на маленьких экранах; исправьте ошибки отображения;
- Контент — внедрить умную рекомендательную систему, предлагающую интересующий читателя контент; визуально разделить контент разных форматов (например, лонгриды, монологи, интервью) на главной странице и в блоках «Читать дальше»;
- Производительность — повысить скорость работы сайта за счет сокращения времени начальной загрузки и оптимизации просмотра страниц сайта; протестируйте сайт на различных мобильных устройствах и браузерах, чтобы убедиться в совместимости.
Приз: 500$
2. Разработать Telegram-бота для текстовой игры для независимого российского СМИ
Независимое СМИ об общественно-политической жизни регионов России, разрабатывает игру, текстовый квест о мобилизации 2022 года. В рамках хакатона просим помочь в разработке телеграм-бота для нашей игры. Бот должен давать пользователям возможность изменять заданные характеристики игрока в процессе выбора вариантов развития сюжета игроком.
Эта игра носит как образовательный, так и благотворительный характер. Образовательная идея игры заключается в том, чтобы рассказать игрокам о многообразии траекторий движения россиян в период мобилизации (эмиграция в разные страны разными путями, решение остаться в России для проведения акций сопротивления или решение переехать из городов в леса). Мы хотим показать, что эмиграция была и остается трудным жизненным выбором. Сюжетные идеи этой игры основаны на реальных историях героев материалов. Благотворительная идея игры заключается в том, чтобы предложить игрокам возможности для более легкого прохождения при условии, что будут сделаны пожертвования в пользу благотворительных организаций.
Задачи
Разработка телеграм-бота для текстовой новеллы. Игроку предстоит пересечь российско-грузинскую границу, спасая героя от мобилизации. Текстовые выборы приводят героя к разным концовкам: он может либо благополучно добраться до Тбилиси, либо застрять на границе, либо оказаться на мобилизационном пункте и отправиться на передовую. Для прохождения сюжета игроку предлагается выбор, каждый выбор влияет на характеристики героя. Два из них видны игроку: индикатор денег и индикатор здоровья (физического и психического). Третья характеристика заключается в том, что уровень нравственности снижается, если игрок делает аморальный выбор (например, воровство денег) и повышается (например, когда он решает помочь другим героям).
Ход игры. Игрок выполняет сюжетные действия, выбирая варианты на каждом этапе. Например:
«К полуночи на КПП «Верхний Ларс» с российской стороны собирается почти тысяча человек. Пограничники готовы пропускать людей пешком и небольшими группами, но требуют организовать очередь».
Выбор:
- Помочь организовать группы очередей
- Отказаться помогать, попробовать первым добраться до ворот.
При снижении каждого параметра до 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)
Ссылки:
- https://ouinet.work/docs/integration/
- https://github.com/equalitie/ouinet-examples/
- https://github.com/censorship-no/ceno-docker-client/blob/main/ouinet-client.conf
Приз: 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