Капибара: открытый бета-тест

8969d6d4f224c31c494d76d062943ed2.png

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

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

История проекта

Проект «Капибара», как идея, был зарожден 24 июля 2023 года в ответ на объявление о ключевых изменениях на пикабу. Ответный пост прожил всего час перед удалением, но за это время собрал огромное количество комментариев поддержки и предложения помощи в создании нового портала. Сразу после объявления идеи был создан телеграмм-чат, в который за первые сутки пришло 3,5 тысячи человек, а через несколько дней число участников достигло 9 тысяч. Из этого числа была сформирована команда разработчиков. Основная концепция «Капибары» заключалась в создании портала с акцентом на честной саморегуляции контента пользователями, прозрачности алгоритмов и открытом исходном коде. Ввиду острой потребности авторов в площадке для публикации уникального контента, команда быстро создала телеграм-бота, который принимал посты пользователей и публиковал их в канале, где другие могли оценивать и комментировать их.

11 ноября 2023 года проект Капибара запустил закрытый альфа-тест, в котором более 500 авторов-альфа-тестировщиков размещали свои посты, наполняя портал контентом и тестируя функционал. В процессе альфа-теста было закрыто более 800 багов, внедрен новый редактор постов на базе Codex Editor и полностью переработана система комментариев.

31 декабря 2023 года «Капибара» перешла к этапу открытого бета-теста. На данный момент на сайте зарегистрировано более 2000 пользователей, а согласно аналитике Google и Яндекса, проект привлек около 20 тысяч уникальных пользователей за последний месяц, хотя SimilarWeb указывает на 86,2 тысячи, но эти данные вызывают определенные сомнения.

Особенности и решения.

Лента »Тренды». Формирование этой ленты осуществляется на основе активности пользователей: посты попадают сюда при получении 15 и более положительных оценок, при условии, что доля плюсов составляет более 70% от общего числа оценок (включая и минусы. Да, да, у нас есть минусы!). Таким образом, лента «Тренды» отражает наиболее популярный и интересный для сообщества контент.

Лента »Топ». Она формируется из постов, набравших 35 и более положительных оценок, при этом доля плюсов должна быть более 80% от общего числа оценок (включая и минусы). Это позволяет выделить наиболее высоко оцененный контент сообществом.

Лента »Авторское». Это отдельная лента, в которую попадают посты с тегами [свое] и [авторское], обладающие положительным рейтингом. Эта лента выделена специально, так как под тегом [свое] могут публиковаться различные материалы — от фотографий котов до домашних самоделок, в то время как [авторское] означает более значимые творческие работы, требующие значительных усилий и таланта.

Лента »Новое». В нее попадают все посты в момент публикации. Здесь пользователи, взявшие на себя роль Рыцарей Нового играют ключевую роль в определении того, какой контент считается годным (и выходит в Тренды, а потом и в Топ), а какой нет и обречен утонуть в минусах не выходя из Нового. Ведь Капибара строилась на принципах честности, открытости и прозрачности процессов.

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

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

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

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

Выбор технологий, платформ и инструментов разработки

Backend. Основным языком проекта выбрали Python3.11. Архитектуру делали монолит+микросервисы. Для монолита взяли Django, и не без гордости можем заявить что придерживались одного из самых каноничных способов приготовления джанги. 

Используем возможности DRF для создания RESTful API, что значительно упрощает процесс разработки API и для контроля доступа и аутентификации пользователей, что позволяет нам точно управлять правами доступа к различным частям API. Пермишены и политики доступов там где они и должны быть. Сериализация: каждая выдача обернута в свой сериалайзер, это позволяет нам точно управлять тем, как данные преобразуются в JSON и обратно, обеспечивая валидацию и сложную логику обработки данных.

Наши модели Django оптимизированы для эффективной работы с базой данных. Мы используем различные поля и связи (ForeignKey, ManyToMany, OneToOne) для точного отображения бизнес-логики. Также активно применяем методы save и delete, кастомные менеджеры и запросы QuerySet для повышения эффективности работы с данными и наши модели полностью соответствуют реальным таблицам. Классическое применение Django Filter для создания мощных и гибких фильтров запросов. Активно используем DjangoORM для безопасных и эффективных запросов к базе данных, агрегатные функции, аннотирование, все это на месте.

И качественное покрытие unit-тестами. 

Для микросервиса авторизации взяли FatApi + SQLAlchemy. Делали отдельным сервисом именно для обеспечения безопасности и гибкости в авторизации. В том же микросервисе сделали бот для верификации пользователей через Telegram. Мы не собираем номера телефонов пользователей, чтобы избежать сложностей, связанных с хранением и обработкой персональных данных. Но при этом, засчет верификации через телеграм нас реализована уникальность «один номер телефона = один пользователь» без использования номеров телефонов.

Инфраструктура: Для продакшен-среды мы используем облачную инфраструктуру DigitalOcean. Базы данных (стандартные PostgresSQL) развернуты в кластере в той же среде. Самое частое действие это простановка оценки, и чтоб каждый раз не нагружать БД для доставки оцено до таблицы и других асинхронных задач используем Celery. Для кэширования мы применяем Redis. Для непрерывной интеграции и доставки используется ArgoCD, а для управления инфраструктурой — Terraform. Вся эта красота контейнеризирована и развернута в кубернетес, что обеспечивает удобное управление и масштабирование приложения. 

Frontend: Наш фронтенд написан с использованием Vue 3, TypeScript и Pinia для управления состоянием. Подробно останавливаться на нем не буду, смотрите сами: https://gitlab.com/vortex185330/frontend/vortex-frontend 

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

Ссылки и ресурсы

Основной сайт: kapi.bar — здесь размещен портал Капибара.

Основной канал: Капибара — сообщество проекта.

Репозитории на Gitlab: backend, frontend, микросервис авторизации, бот для постинга, баянометр (будет), микросервис работы с медиа (будет), нагрузочные тесты.

Соц.сети: VK, Instagram

О Команде

За проектом «Капибара» стоит команда энтузиастов, которые решили создать альтернативное пространство для общения и обмена контентом. Я, Ольга, инициатор проекта и Senior Backend Developer с опытом работы в Python, горжусь тем, что смогла объединить таких талантливых разработчиков. Команда динамическая, основной костяк составляют 12 человек, в пике активности состав команды насчитывал более 40 профессионалов с опытом от 4 до 14 лет в коммерческой разработке. Мы все вкладываем свои знания и навыки в создание «Капибары», стремясь реализовать проект, который будет отвечать ожиданиям нашего сообщества.

Так же буду дополнять здесь список тех участников группы разработки, которые захотят представиться:
Александр @larikov
Михаил https://t.me/chicobambuni
Тимур timur-bv@ya.ru
Алёна @ally_g
Сергей: vk.com/sergej_serov
Эмин @Iameminmammadov

© Habrahabr.ru