Демонстрационный проект представляет собой монорепозитойрий Helpdesk/Ticketing — система управления заявками. Пользователи создают тикеты, техподдержка назначает исполнителей и меняет статус. Фронт реализован на Angular 19. Бэкенд на NodeJS и NestJS. В работе использовался AI.
- Login / register / logout, JWT + refresh (отслеживание 401)
- Сессия через signals + /auth/me
- Guards для ролевой модели: auth, admin, staff, guest
- Список с фильтрами, сортировкой, infinite scroll (по 10)
- Фильтр «Все / Назначенные мне»
- Создание, деталка, редактирование, удаление
- Цветные статусы в таблице
- user — свои + назначенные; create без priority/assignee; edit title/description своей open-заявки; delete своей open-заявки
- moderator/admin — полный доступ к тикетам, назначение, смена статуса/приоритета
- admin — управление ролями и удаление пользователей
- Регистрация всегда с ролью user
- /users — смена ролей, удаление (не себя)
- Регистрация/Авторизация ( Обычные пользователи (создают заявки) и Техподдержка (обрабатывают) ).
- Таблица Список всех заявок:
- Сущность: Заявка (Номер, Тема, Приоритет (Выс/Ср/Низ), Автор, Исполнитель, Статус (Открыта/В работе/Закрыта), Дата создания).
- Доступные действия: Сортировка по приоритету и дате. Фильтрация по статусу и исполнителю. Поиск по таблице
- Детальная страница: Полное описание тикета. Возможность редактирования в зависимости от роли пользователя.
- Форма создания заявки: Назначение исполнителя, смена приоритета, закрытие заявки с указанием решения.
- Список пользователей. Назначение роли, удаление пользователя
Проект представляет собой монорепозиторий Nx со следующей структурой:
AI_Project/
├── backend/ # NestJS + TypeORM + MySQL
├── frontend/ # Angular 19 (standalone, signals)
├── shared-types/ # Общие TypeScript-типы и enum'ы
├── docker-compose.yml
├── Makefile # Docker-команды (start, migrate, logs...)
└── package.json # npm workspacesmake help
make start
make stop
После запуска откройте в браузере: http://localhost:4200
| Сервис | Порт |
|---|---|
| Backend (NestJS) | 3000 |
| Frontend dev | 4200 |
| MySQL | 3306 |
| phpMyAdmin | 8080 |
-
Docker — управлениe контейнерами
-
Makefile — управлениe сборкой и тестированием --
-
Angular 19 — реализация фронта
-
RxJS 7+ — реактивное программирование
-
TypeScript 5+ — типизация
-
SCSS — стилизация --
-
NodeJS - серверная часть
-
NestJS 10 - фреймворк для Node.js
-
TypeORM - ORM для работы с БД и миграциями