Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# BugDefect

BugDefect - система для работы с досками дефектов: пользователи создают доски, приглашают участников, настраивают статусы и двигают дефекты между колонками.

Проект состоит из PHP API на собственном mini-framework, Vue 3 SPA, MySQL и Redis.

## Стек

- Backend: PHP 8+, собственный mini-framework, PDO, DI container, middleware, migrations.
- Frontend: Vue 3, TypeScript, Vite, Pinia, Vue Router, Axios, Sass.
- Database: MySQL 8.
- Sessions: PHP sessions через file driver или Redis.
- Dev environment: Docker Compose.

## Быстрый Старт

```bash
docker compose up --build
docker compose exec backend php command.php migrate:run
```

Сервисы:

- Frontend: `http://localhost:5173`
- Backend API: `http://localhost:8000/api`
- MySQL: `localhost:3307`
- Redis: `localhost:6379`

## Возможности

- Регистрация, вход, выход и получение текущего пользователя.
- Сессии через file driver или Redis.
- Рабочая зона со списком досок пользователя.
- Создание, просмотр и удаление досок.
- Роли участников доски: admin, developer, guest.
- Приглашения пользователей на доску и уведомления.
- Принятие и отклонение приглашений.
- Создание, удаление и сортировка статусов доски.
- Создание дефектов с исполнителем, автором, статусом и позицией.
- Drag-and-drop перенос дефектов между статусами.
- Middleware для авторизации, доступа к доске и проверки администратора.

## Архитектура Backend

HTTP-точка входа: `backend/public/index.php`.

Приложение собирается через `backend/app/bootstrap/app.php`:

- регистрирует `Core\Container`;
- описывает фабрики для `Request`, `Response`, `Logger`, `Auth`, `Router`;
- регистрирует модели, middleware и все API-контроллеры;
- передает контейнер в `Router`.

`Router` берет контроллеры и middleware из контейнера, поэтому зависимости можно передавать через конструкторы. Для обратной совместимости в контроллерах и моделях оставлены fallback-значения через `?? new ...`.

## Структура

```text
backend/            PHP API, mini-framework, routes, migrations
backend/Core/       ядро framework: Router, Container, Request, Response, CRUD
backend/app/        controllers, models, middleware, bootstrap
backend/docs/       документация backend mini-framework
frontend/front/     Vue 3 SPA
docker-compose.yml  локальная инфраструктура
IDEAS.md            заметки и roadmap
```

## Полезные Команды

```bash
docker compose up --build
docker compose down
docker compose exec backend php command.php migrate:run
docker compose exec backend php command.php migrate:down
docker compose exec backend php command.php migrate:fresh
docker compose exec frontend npm run build
```

Локально:

```bash
cd backend
composer install
php command.php migrate:run
php command.php serve

cd ../frontend/front
npm install
npm run dev
```

## Проверка

```bash
cd backend
php -l Core/Container.php
php -l app/bootstrap/app.php
php -l Core/Router.php

cd ../frontend/front
npm run type-check
npm run build
```

## Документация

- Backend: `backend/README.md`
- Frontend: `frontend/front/README.md`
- Mini-framework: `backend/docs/README.md`
- DI container: `backend/docs/container.md`

About

task tracking

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages