>MARAT_SHVETS.portfolio
> cd ../projects
010
Fullstack · Платформа

Мы.Школьники — видеоархив школьной жизни СССР

Fullstack-разработчик · Соло·2024 · в разработке

Платформа для хранения и стриминга архивных школьных видео с 1900-х годов. HLS, очереди, S3, 334 города.

Next.jsFFmpegBullMQS3Redis
334
Городов · Стран
Городов в базе334 в 16 странах
Репозиториев3 независимых
ВидеопайплайнHLS + BullMQ + S3
Разработчиков1 (я)
// ЗАДАЧА

Архивные видеозаписи школьной жизни СССР и СНГ разбросаны по личным архивам и теряются. Нужна публичная платформа с удобным поиском по стране, городу, году и тематике — и возможностью загружать свои записи. Весь проект: архитектура, БД, API, UI/UX, деплой — в одиночку.

// ПРОЦЕСС
01
Архитектура и база данных

Спроектировал три независимых репозитория: Node.js API, публичный Next.js сайт, Next.js админ-панель. PostgreSQL + Prisma: 36 стран, 334 города с привязкой к странам, древовидная структура тегов с неограниченной вложенностью, каскадное удаление. Два VPS — Россия и Нидерланды — для обхода региональных ограничений.

02
Пайплайн обработки видео

Загрузка оригинала → BullMQ ставит задачу в очередь → FFmpeg транскодирует в HLS (адаптивный стриминг с несколькими качествами) → сегменты и превью уходят в Yandex Object Storage (S3). HLS.js на фронтенде обеспечивает плавный стриминг с переключением качества в реальном времени.

03
Публичный сайт

Next.js 14 App Router + SSR/ISR: каталог с навигацией по странам, городам, годам и десятилетиям. Поиск по тегам с вложенной структурой (дерево). HLS-плеер, лайки и комментарии без регистрации, форма загрузки с прогресс-баром. Страницы городов с обложками. Вёрстка строго по макетам Figma.

04
Админ-панель и аналитика

Модерация и редактирование метаданных, просмотр в модалке с HLS-плеером, удаление с очисткой S3. Управление тегами как файловый проводник — папки, вложенность, перемещение. Recharts: видео по годам/городам/тегам/статусам. Live-мониторинг CPU, RAM, uptime с историческим графиком. Счётчик онлайн через Redis (heartbeat 30 сек).

// РЕШЕНИЕ

Полноценная видеоплатформа: пользователь загружает видео → автоматический транскодинг в HLS → публикация после модерации → поиск по 334 городам и 36 странам с тегами и фильтрами. Вся инфраструктура задеплоена на двух VPS, всё — в одиночку.

// РЕЗУЛЬТАТЫ
334 в 16 странах
Городов в базе
3 независимых
Репозиториев
HLS + BullMQ + S3
Видеопайплайн
1 (я)
Разработчиков
// СТЕК
Node.jsExpressTypeScriptPostgreSQLPrismaRedisBullMQFFmpegHLS.jsNext.js 14RechartsYandex Object StorageDockerPM2Nginxn8n