Skip to content

Repository files navigation

Система управления заявками (Ticketing/Helpdesk)

Демонстрационный проект представляет собой монорепозитойрий Helpdesk/Ticketing — система управления заявками. Пользователи создают тикеты, техподдержка назначает исполнителей и меняет статус. Фронт реализован на Angular 19. Бэкенд на NodeJS и NestJS. В работе использовался AI.

Функции приложения

Авторизация/регистрация

  • Login / register / logout, JWT + refresh (отслеживание 401)
  • Сессия через signals + /auth/me
  • Guards для ролевой модели: auth, admin, staff, guest

Тикеты

  • Список с фильтрами, сортировкой, infinite scroll (по 10)
  • Фильтр «Все / Назначенные мне»
  • Создание, деталка, редактирование, удаление
  • Цветные статусы в таблице

RBAC

  • 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 workspaces

Запуск приложения

Показать справку

make help

Запуск в development режиме

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 для работы с БД и миграциями

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages