Задача
Создать внутреннее веб-приложение для сотрудников Optimum Nutrition Russia, позволяющее управлять маркетинговыми материалами компании — рецептами, тренировками, видео и статьями. Приложение разрабатывалось для внутреннего и внешнего (партнёрского) использования.
Основной функционал
-> Авторизация и безопасность:
Авторизация реализована по логину и паролю с использованием JWT. Middleware контролирует аутентификацию и доступ к административным разделам.
-> Управление пользователями:
Администратор может добавлять, редактировать и удалять пользователей, назначать им роли и права доступа.
Контент-модули
-> Тренировки и видео: Полный CRUD для фирменных тренировок Optimum Nutrition и связанных видео.
-> Новости и статьи: Админ может публиковать новости компании, статьи и маркетинговые материалы.
-> Рецепты: CRUD для брендовых рецептов с привязкой ингредиентов к продуктам Optimum Nutrition.
-> Добавки и спортпит: Управление ассортиментом продукции для отображения в материалах и рецептах.
UX/UI
Интерфейс разработан в фирменном стиле бренда, с анимациями (Framer Motion) и адаптацией под десктоп устройства. Используются динамические компоненты с клиентским рендерингом (CSR).
Технологический стек
-> Frontend: TypeScript, Next.js 14+, Zustand, Zod, Framer Motion, React Hook Form, CSS Modules
-> Backend: NestJS, DrizzleORM, PostgreSQL, AWS SDK, Sharp, Jose, Axios
Инфраструктура: Полностью модульная архитектура с разделением по сервисам, middleware для аутентификации и централизованным хранилищем ошибок
Особенности реализации
-> Оптимизация производительности благодаря серверной пагинации и выборочному CSR.
-> Типобезопасная валидация данных через Zod.
-> Загрузка и обработка изображений (обрезка, ресайзинг) через Sharp.
-> Единое состояние приложения на основе Zustand.
-> Конфигурация и деплой на AWS с импортом файлов через S3 SDK.
---
Демо: https://onadmin.stardev.space/
Тестовый аккаунт: admin / qwerty
По вопросам или для превью проекта — пишите в Telegram: @stardevelopment