005
Archive 005Инструмент

Feedplace

Маркетплейс специалистов и фрилансеров: профиль-визитка с портфолио и услугами, отзывы, чат в реальном времени, заказы, студии и Telegram-бот

websites

Feedplace
01 /О проекте

Маркетплейс специалистов и фрилансеров: профиль-визитка с портфолио и услугами, отзывы, чат в реальном времени, заказы, студии и Telegram-бот.

Разрабатывалось под перепродажу / будущий продакшн проект

02 /🎯 Суть проекта
  1. 01Платформа для поиска специалистов/фрилансеров: у каждого своя визитка с портфолио, услугами и отзывами
  2. 02Позиционирование: «Платформа для поиска специалистов. Визитка, отзывы и портфолио — всё в одном профиле»
  3. 03Три роли: specialist, client, administrator; роль выбирается в онбординге после регистрации
  4. 04Отдельный саб-продукт Webreview — независимый каталог сторонних сайтов с отзывами о них
  5. 05Три языка интерфейса (ru/uk/en) с автоопределением по cookie, geo-IP и заголовку Accept-Language
03 /🏗️ Архитектура (backend/ + frontend/)
  1. 01Монорепозиторий из двух независимых частей: backend (FastAPI) и frontend (Next.js) без единого корневого конфигуратора
  2. 02Backend: асинхронный SQLAlchemy 2.0 + asyncpg, PostgreSQL с UUID/JSONB, 35+ ревизий Alembic
  3. 03Слои: routers/ → 24 сервисных *_services.py модуля → models.py (32 таблицы) → database.py
  4. 04Redis опционально: rate limiting, отзыв версий JWT, кэш публичных настроек и статистики, pub/sub для WebSocket между процессами
  5. 05Frontend: Next.js 16 (App Router), React 19, Tailwind CSS v4, Framer Motion; состояние — React Context (Auth, Messaging, Notifications, Theme, i18n)
04 /🧑‍💼 Профили специалистов
  1. 01Публичная страница /{username}: визитка, теги, локация, опыт, языки; контакты открываются только авторизованным
  2. 02Резюме — JSON-документ profile_resume: грейд (intern…lead), навыки, опыт, образование, каталог инструментов резюме
  3. 03Аватары через DiceBear: готовые стили, рандомизация, покомпонентный конструктор (цвета, форма, аксессуары)
  4. 04Оформление профиля по тарифу подписки (free/brand/studio): баннер, фон, тема, рамка аватара, стиль виджета
  5. 05Каталог специалистов: фильтры по категории/тегу/локации, поиск, сортировка (новые/рейтинг/отзывы)
05 /🛒 Услуги и заказы
  1. 01Публикация услуг (Product): цена (фиксированная/«от»/по договорённости), срок выполнения, состав работ, до 5 изображений
  2. 02Заказ создаётся прямо из чата как предложение (order_proposal) с отдельным сообщением в диалоге
  3. 03Жизненный цикл: proposed → accepted → awaiting_payment → payment_claimed → funded → in_progress → delivered → completed (+ cancelled/disputed/refunded)
  4. 04Контрпредложения (counter), ручной режим оплаты — клиент и специалист подтверждают оплату/получение вручную
  5. 05Модели Payment/EscrowHold и комиссия гаранта заложены в схеме, но платёжный провайдер для режима с гарантом пока не подключён
06 /🏢 Студии и команды
  1. 01Регистрация студии с модерацией администратора (approve/reject/needs_info)
  2. 02Публичная страница /studios/{slug}: описание, логотип, баннер, услуги, отзывы, команда
  3. 03Роли команды: owner/admin/manager/member; приглашения по email-токену через /invite/studio/{token}
  4. 04Услуги студии — из общего справочника категорий (ServiceCategory/ServiceCatalogItem) или собственные
  5. 05Отдельный тип диалога studio-conversation с назначением ответственного члена команды
07 /⭐ Отзывы, верификация и доверие
  1. 01Отзыв на профиль: рейтинг 1–5 и текст, один отзыв на пару «автор — профиль» (частичный уникальный индекс)
  2. 02Отзывы на сайты и студии работают по upsert / с уникальностью пары «автор — сущность»
  3. 03Модерация: скрытие отзыва администратором, жалобы (ReviewReport) с полиморфной привязкой к типу отзыва
  4. 04Верификация специалиста: анкета (имя, опыт, портфолио, документ), статусы pending/needs_info/approved/rejected, бейджи junior/middle/senior/expert
08 /💬 Сообщения и уведомления
  1. 01Realtime-чат: история по REST + постоянный WebSocket /api/v1/ws/me, вложения, редактирование, read receipts, presence, блокировка
  2. 0224 вида внутриплатформенных уведомлений с автоочисткой спустя несколько дней
  3. 03Email-уведомления через настраиваемый SMTP (приветствие, смена пароля, статусы заказа и верификации)
09 /🤖 Telegram-интеграция
  1. 01Отдельный бот на aiogram 3 (long polling): меню, сообщения, уведомления, услуги, поддержка
  2. 02Привязка аккаунта через deep-link или Telegram Login/OIDC (PKCE)
  3. 03Дублирование уведомлений платформы в Telegram при привязанном аккаунте
10 /🌐 Webreview и встраиваемый виджет
  1. 01Каталог сторонних сайтов: добавление домена (нормализация), модерация pending/approved
  2. 02Отзывы о сайтах по upsert, карточка домена со сводным рейтингом, жалобы на отзывы
  3. 03Виджет /widget/{username}.js: рейтинг со ссылкой на профиль, стили classic/premium, открытый CORS
11 /🖥️ Личный кабинет и админ-панель
  1. 01Кабинет специалиста: профиль, резюме, оформление, услуги, отзывы, верификация, сообщения, заказы, студия, поддержка
  2. 02Кабинет заказчика: поиск, избранное, сообщения, заказы, отзывы, поддержка
  3. 03Админка: пользователи, модерация сайтов/отзывов/верификации/студий, справочник услуг, тикеты, настройки сайта, SEO-аудит, аналитика, системные журналы
12 /🧩 Технические особенности
  1. 01Pydantic v2 схемы, JWT (python-jose) + bcrypt, rate limiting и версия JWT через Redis
  2. 02Docker Compose (PostgreSQL 16 + Redis 7) для локальной разработки, поддержка managed Postgres (Supabase)
  3. 03Единая обработка 5xx-ошибок: пользователю — обобщённое сообщение, детали — в журнал разработчика
  4. 0418 роутеров FastAPI, 32 ORM-модели, статическая раздача загрузок через /uploads