Skip to content

gaminv/Project-Management-Systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Avito PMS — Task Management System

Avito PMS — это система управления проектами с drag-and-drop досками задач, фильтрацией, поиском и возможностью управления задачами через модальные окна.

🔧 Технологии

📡 API используется как основной способ взаимодействия между frontend и backend. Все запросы на получение, создание, обновление и удаление задач и досок реализованы через HTTP API.

Frontend

  • **React ** — компонентный подход и экосистема.
  • Vite — сверхбыстрая сборка и dev-сервер.
  • TypeScript — строгая типизация.
  • React Query — кэширование и работа с API.
  • **React Router ** — маршрутизация страниц.
  • @hello-pangea/dnd — drag-and-drop интерфейс доски задач.
  • SASS — модульные стили с вложенностью и переменными.

Backend

  • 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                      # переменные окружения

🚀 Как запустить проект

Шаг 1: Клонировать репозиторий

git clone https://github.com/gaminv/Project-Management-Systems.git
cd Project-Management-Systems

Шаг 2: Запустить проект через Docker

docker-compose up --build

Frontend будет доступен на http://localhost:5173

Backend — на http://localhost:4000

🧪 Тестирование

Проект покрыт unit-тестами с использованием Jest, React Testing Library, Mock Service Worker (MSW) и React Query Testing Utilities.

✅ 100% покрытие кода:

  • Все ключевые модули (api, hooks) протестированы

  • Проверены edge-кейсы и асинхронное поведение image

    🛠 Для запуска:

cd client
npm install --save-dev jest @types/jest ts-jest jest-environment-jsdom
npm test
npm test -- --coverage

🖼 Скриншоты интерфейса

🗂 Все доски

image


📋 Доска задач

image


✅ Все задачи

image


➕ Создание задачи

image


✏️ Редактирование задачи

image

About

Система управления проектами Avito PMS с интерактивными drag-and-drop досками задач, фильтрацией, поиском и модальными окнами для создания и редактирования задач.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors