Коротко: это музыкальное приложение на базе Next.js + TypeScript, использующее архитектуру FSD (Feature-Sliced Design). Проект реализует проигрывание треков, управление плейлистом, избранным и аутентификацию.
- Установить зависимости:
npm install- Запустить в режиме разработки:
npm run dev- Сборка для продакшена:
npm run build
npm run start- Тесты:
npm run test
npm run test:watch
npm run test:coverage- Линтинг:
npm run lint- Next.js (App Router) — серверный рендеринг и маршрутизация
- React 19 + TypeScript
- Redux Toolkit / react-redux — управление состоянием
- axios — HTTP-клиент
- zod — валидация схем
- Jest + React Testing Library — тестирование
- ESLint (+ плагин Prettier) — проверка кода
- CSS Modules — scoped CSS
- gh-pages — деплой в GitHub Pages
Проект структурирован по принципам FSD. Кратко о слоях, которые вы увидите в src/:
app/— точка входа приложения и маршруты (Next.js app router:layout.tsx,page.tsx)entities/— бизнес-сущности (например,tracks,auth) с моделью, API и логикойfeatures/— отдельные фичи / сценарии использования, которые комбинируют сущности и UIwidgets/— независимые блоки интерфейса (собираются из фич и shared)shared/— переиспользуемые UI-компоненты, утилиты, API-оберткиapp/providers/иapp/api/— провайдеры (redux), маршруты API (Next.js)
Фрагмент дерева проекта (основные директории):
src/
├─ app/
│ ├─ (playlist)/
│ │ ├─ layout.tsx
│ │ └─ page.tsx
├─ entities/
│ ├─ tracks/
│ └─ auth/
├─ features/
│ ├─ audio/
│ └─ filter/
├─ widgets/
│ ├─ centerblock/
│ ├─ navigation/
│ ├─ right-sidebar/
│ └─ trackbar/
└─ shared/
├─ api/
├─ lib/
├─ model/
├─ redux/
└─ ui/
npm run dev— запуск dev-сервера (Next.js)npm run build— сборка проектаnpm run start— запуск production-сервераnpm run lint— запуск ESLintnpm run test— запуск Jestnpm run deploy— подготовка и деплой в GitHub Pages
- Просмотреть покрытие тестов:
npm run test:coverage- Запуск dev с инспектором:
npm run dev-inspect