Avito PMS — это система управления проектами с drag-and-drop досками задач, фильтрацией, поиском и возможностью управления задачами через модальные окна.
📡 API используется как основной способ взаимодействия между frontend и backend. Все запросы на получение, создание, обновление и удаление задач и досок реализованы через HTTP API.
- **React ** — компонентный подход и экосистема.
- Vite — сверхбыстрая сборка и dev-сервер.
- TypeScript — строгая типизация.
- React Query — кэширование и работа с API.
- **React Router ** — маршрутизация страниц.
- @hello-pangea/dnd — drag-and-drop интерфейс доски задач.
- SASS — модульные стили с вложенностью и переменными.
- Golang — высокая производительность, лаконичный синтаксис.
- SQLite — встроенная БД, идеально подходит для небольших проектов.
- Chi Router — легковесный HTTP роутер.
- Docker + Docker Compose — контейнеризация, простота запуска и деплоя.
pms-app/
│
├── client/ # frontend на React
│ ├── components/ # переиспользуемые компоненты UI (Header, TaskModal и т.д.)
│ ├── pages/ # страницы: BoardPage, IssuesPage и т.д.
│ ├── api/ # хуки и запросы к API (React Query)
│ ├── types/ # глобальные типы: Task, User, Board и др.
│ ├── contexts/ # контексты, например TaskModalContext
│ ├── styles/ # SASS/SCSS стили
│ └── main.tsx # точка входа фронтенда
│
├── server/ # backend на Go
│ ├── cmd/ # основная точка входа приложения
│ ├── handlers/ # HTTP-хендлеры для CRUD операций
│ ├── models/ # модели данных и логика
│ ├── db/ # инициализация и миграции SQLite
│ └── routes.go # маршруты chi
│
├── docker-compose.yml # запуск client + server
├── README.md # документация
└── .env # переменные окружения
git clone https://github.com/gaminv/Project-Management-Systems.git
cd Project-Management-Systemsdocker-compose up --buildFrontend будет доступен на http://localhost:5173
Backend — на http://localhost:4000
Проект покрыт unit-тестами с использованием Jest, React Testing Library, Mock Service Worker (MSW) и React Query Testing Utilities.
✅ 100% покрытие кода:
-
Все ключевые модули (
api,hooks) протестированы -
Проверены edge-кейсы и асинхронное поведение

🛠 Для запуска:
cd client
npm install --save-dev jest @types/jest ts-jest jest-environment-jsdom
npm test
npm test -- --coverage



