ТЗ разработки сайта
1. Цель проекта
Мы разрабатываем сервис по отслеживанию активности Twitter аккаунтов. На сайт будет поступать информация о топах, действиях твиттеров, статистике активностей, аналитике.
2. Описание необходимого функционала сайта
- Регистрация, аутентификация и авторизация, коннект твиттер аккаунта
- Админская панель для доступа к базе данных и ручной выдаче подписок пользователям при необходимости.
- Личный кабинет пользователя.
- Интеграция с телеграм ботом для уведомлений
- Работа с базой данных для вывода информации пользователю по исследуемому твиттеру
2.1. Типы пользователей
Всего будет четыре типа пользователей:
- админ
- обычный пользователь (с доступом только к базовому функционалу)
- платный пользователь первого уровня (с доступом к части функционала)
- платный пользователь второго уровня (с доступом к полному функционалу)
Какой конкретно функционал будет доступен для бесплатных/платных пользователей, распишем отдельно.
2.2. Регистрация и авторизация
Пользователю на выбор будет предложено два варианта регистрации и логина:
2.3. Оплата
Оплата будет производиться посредством криптовалют, поэтому должна быть кнопка присоединения кошелька (есть готовые модули).
Будет реферальная система, которая позволит пользователям получать часть от оплаты рефералов на свой личный счет.
3. Список фич и основных страниц сервиса
Список фич и страниц, со временем будет дополняться.
Большинство фич будет создано кодерами в виде отдельных модулей, так что проблем с интеграцией на сайт возникнуть не должно. Эти фичи будут находиться на нескольких разных страницах, функционал каждой страницы будет выглядеть примерно следующим образом:
Шапка будет состоять из: слева лого проекта, название и ссылка на твиттер, в середине поиск, чтобы человек с любой из страниц мог искать проекты, а не только с главной, справа кнопка "Connect wallet" и "Get Premium".
Также все фичи будут представлены в виде боковой панели слева в виде списка. По мере увеличения их количества, нужно будет начать их группировать в выпадающие списки.
3.1 Главная страница
- Большая поисковая строка в середине страницы
- Внизу страницы краткое описание работы сервиса и его фич.
3.2 Страница найденного аккаунта
Всплывающая поверх текущей при поиске
Здесь будет показываться следующая информация:
- Аватарка твиттера, описание (взято из аккаунта Twitter), ссылка на сам аккаунт в виде кликабельного имени этого аккаунта + маленькой иконки самого твиттера.
- Score (Уровень полезности аккаунта, определяемый нашими алгоритмами)
- Изменение Score за последнее время
- Количество подписчиков
- Количество актива на постах
- Возможная накрутка
- Кто из известных людей подписан (будет разбито на категории инфлы/проекты/фонды и тд). Для базовых пользователей видно только количество аккаунтов из каждой категории, при нажатии на кнопку категории, выпадает список с информацией об аккаунтах
- Дата создания/первого поста.
- Количество упоминаний этого аккаунта за последнее время
- Кнопка "Поделиться аккаунтом", при нажатии на которую будет генерироваться картинка с краткой информацией по найденному аккаунту и предложением поделиться этой картинкой в Twitter.
На этой же странице будет возможность добавить аккаунт в Watchlist или Alert list, с возможностью выбрать следующие вещи для отслеживания:
- Кто-то из очень известных людей/проектов подписался
- В твиттере выложили пост с конкретным словом (testnet, giveaway, ambassador и т.д.)
- За последние сутки резко увеличился Score
3.3 Страница топа
Здесь будет выведен общий топ аккаунтов, основанный на Score.
- Возможность сортировки по увеличению score за последние 1/7/30 дней.
- Возможность показать в топе только аккаунты зарегистрированные, например, за последнюю неделю (для 2 уровня подписки).
- Сортировка с теми же параметрами, но по количеству подписчиков (базовый).
Каждый из аккаунтов должен содержать информацию о Score, подписчиках, изменении этих показателей и дате создания акка/первом посте. Помимо этого ссылка на сам аккаунт твиттера в виде кликабельного имени + маленькой иконки твиттера. Также возможность "Поделиться аккаунтом", при нажатии на которую будет генерироваться картинка с краткой информацией по найденному аккаунту и предложением поделиться этой картинкой в Twitter.
3.4 Страница поиска активностей
Пользователь выбирает какое из слов искать (testnet, node, ambassador и тд), затем выбирает категорию (инфлы, проекты, фонды и тд). Все это делается предустановленными кнопками. Затем нажимает кнопку "поиск" и ему выдается список проектов отсортированный по убыванию Score. При нажатии на проект, выпадает список твитов с этим словом. Все они кликабельны. Процесс поиска долгий, так что необходима будет анимация загрузки.
В админской панели должен быть доступ к редактированию данного раздела: кнопок, добавлению коммента.
3.5 Страница альфа проектов
На этой странице нами вручную будет заполняться топ найденных за последние сутки Twitter аккаунтов, основанный на score. Должна быть возможность сортировки по дате создания/score/количеству подписчиков.
Каждому из этих аккаунтов заранее будет присваиваться определенная категория и краткое описание, которое будет видеть пользователь. При нажатии будет открываться полноценная "страница найденного аккаунта". Рядом должен быть небольшой значок твиттера, для быстрого перехода сразу к аккаунту, а не на страницу с информацией.
Около каждого аккаунта должна быть кнопка быстрого добавления в Watchlist или Alert list.
3.6 Личный кабинет пользователя
Личный кабинет будет содержать следующую информацию:
- Оставшееся время подписки, возможность продлить подписку
- Отдельно Watchlist и Alert list с возможностью отписываться от этих функций на конкретных проектах. В Alert list возможность привязать Телеграмм-бота.
- При привязанном твиттере анализ личного твиттера
- Возможные активности во благо сервиса: условно делаешь пост в твиттере с указанием нашего акка — получаешь 3-5 дней к подписке.
- Количество рефералов. За каждую оплату рефералом, человеку будет 10% от оплаты приходить в виде дней подписки, а также 10% самому рефералу.
3.7 Админская панель
В ней администратор имеет доступ к базе данных, может делать постинг во вкладку "Активности проектов" и "Альфа проекты", менять привилегии пользователей, добавлять дни подписки или банить пользователей.
4. Дизайн проекта
Хотелось бы видеть минималистичный юзер-френдли дизайн, чтобы человеку было интуитивно понятно где и какая информация находится. Основная тема однозначно темная (светлая тема опциональна, через тумблер).
Вся информация на сайте будет только на английском языке.
Сайты-конкуренты с похожим функционалом (плохие примеры дизайна):
Сайты с относительно отдаленно похожим функционалом, но с неплохим дизайном, на который можно ориентироваться:
Сайт необходим как в десктоп, так и мобильной версии.
5. Задачи и вводные данные
Нам нужны дизайн и верстка сайта для этого сервиса.
На бекенде будет Django + FastAPI. Нужна статика только. Интеграцию с фронтом сделает наш разработчик.