Разработка

Casewave

Платформа для создания, публикации и экспорта профессионального портфолио по одной постоянной ссылке.

Full-stack разработкапродуктовая разработкасистемный дизайнUX/UITypeScriptReactFastifyPostgreSQLREST APISSRRBACDockerCI/CD
Обложка работы «Casewave»

О проекте

Описание

Casewave — веб-платформа, на которой специалист собирает профиль и кейсы в единое портфолио, публикует его по постоянной ссылке и сохраняет в PDF. Редактор адаптирует структуру данных и подачу работ под девять направлений: дизайн, разработку, архитектуру, фото и видео, тексты и контент, маркетинг, продукт и аналитику, тестирование и другие специализации. Продукт закрывает полный путь от черновика до публичного результата: регистрацию и подтверждение email, профиль и контакты, загрузку изображений, галереи и видео, сортировку работ, адаптивное превью, историю неизменяемых ревизий, отправку на модерацию, публикацию и последующее обновление. У публичного портфолио есть отдельные страницы работ, адаптивные изображения, метаданные для поисковых систем и соцсетей, счётчик уникальных просмотров, PDF-версия и форма жалобы. Для модераторов и администраторов реализованы очереди проверки, сравнение версий, управление доступом, обработка жалоб и журналирование действий.

Детали проекта

Разработка

Роль
Автор продукта, product designer и full-stack разработчик
Стек
TypeScript · React 19 · Vite · Fastify · PostgreSQL · TypeORM · Zod · TanStack Query · React Hook Form · MinIO · Redis · Sharp · React PDF · Docker · GitHub Actions · Vitest · Playwright · axe-core · Nginx
Тип приложения
Адаптивное веб-приложение / SaaS-платформа
Личный вклад
Сформировал продуктовые требования, дорожную карту, информационную архитектуру и дизайн-систему. Спроектировал пользовательские сценарии владельца портфолио, модератора и администратора, а затем реализовал продукт целиком: React-интерфейс и общий renderer публичных страниц, Fastify API, доменную модель, контракты и валидацию, схему PostgreSQL и миграции, медиа-пайплайн, модерацию и публикацию, PDF-экспорт, жалобы, уведомления, метрики и административные инструменты. Настроил тестовую стратегию, Docker-окружение, CI/CD и безопасный production-деплой.
Архитектура
Проект организован как pnpm-монорепозиторий с разделением на приложение и самостоятельные пакеты домена, контрактов, базы данных, UI и конфигурации. Общий React-renderer используется и для серверной публичной страницы, и для приватного превью, поэтому пользователь проверяет тот же результат, который увидит посетитель. Zod-контракты задают границу между клиентом и API, а PostgreSQL-транзакции, неизменяемые ревизии и ETag защищают публикацию от гонок и потери изменений. Публикация построена как атомарное переключение одобренной ревизии при сохранении постоянного slug. Медиа отделены от контента и выдаются в нескольких размерах и форматах; пользовательский URL не попадает напрямую в iframe или PDF-renderer. PDF строится из общей view model и кешируется по хэшу содержимого. Production выкладывается неизменяемым Docker-образом по digest; pipeline выполняет проверки, миграции и readiness-check, а при неуспешном запуске возвращает предыдущую версию приложения.
Результат
Запущена production-версия Casewave с девятью профессиональными направлениями и полным циклом «черновик → модерация → публикация → PDF». Актуальный локальный прогон подтверждает 147 unit/runtime-тестов без ошибок; интеграционные и браузерные Playwright-сценарии дополнительно встроены в CI. Интерфейс адаптирован для экранов от 320 px, публичные страницы работают без обязательного JavaScript, а автоматический деплой проверяет готовность новой версии и откатывает приложение при сбое.
Открыть проект ↗

Ещё у автора

Другие работы

Лучшая работаОбложка работы «Купер»

Купер

Сервис доставки еды, продуктов и товаров из магазинов

Роль
React native разработчик
Стек
React Native · React · TypeScript · Reanimated · Unistyles · Redux · MobX · Tailwind CSS · React Query / TanStack Query · React Hook Form · REST API · WebSocket · Git · GitHub/GitLab · yarn · react-navigation
React NativeReactTypeScriptReanimated
Обложка работы «Люмен фильм»

Люмен фильм

Приложение сети кинотеатров «Люмен»

Роль
React native разработчик
Стек
React Native · React · Typescript · Redux Observable · RxJS · react-native-gesture-handler · react-native-reanumated · react-navigation · yarn · bitbucket · git
React NativeReactTypeScriptReanimatedRxJS
Обложка работы «Pizzaman»

Pizzaman

Приложение для выбора пиццы и оформления доставки

Роль
React native разработчик
Стек
React Native · React · Typescript · Redux Observable · RxJS · react-native-gesture-handler · react-native-reanumated · react-navigation · yarn · bitbucket · git
React NativeReactTypeScriptReanimatedRxJS