/mts_business_trip

MTS Bank Hackathon

Primary LanguageJavaMIT LicenseMIT

mts_business_trip

MTS Bank Hackathon

Описание задачи

Создание сервиса автоматической организации командировок.

В рамках этого кейса необходимо разработать инновационный веб-сервис, который позволит компаниям автоматизировать и оптимизировать процесс организации командировок для сотрудников.

Основной целью кейсаявляется упрощение и ускорение процесса планирования,бронирования и оформления поездок, а также повышение эффективности управления корпоративными командировками.

Решение

В рамках этого MVP был разработал Frontend и Backend.

Для пользователей были определены 3 основные роли: сотрудник, руководитель и бухгалтер.

Для каждой роли был создан отдельный интерфейс с различным функционалом.

Для всех ролей предусмотрен функционал создания заявки на командировку, просмотра статуса заявок, а также формирование авансового отчёта.

Для Руководителя доступен функционал принятия заявки.

Для Бухгалтера доступны функции одобрения заявки и просмотра авансового отчёта.

Для удобства развёртывания всегор проекта был использован Docker Compose.

Для каждого сервиса представлена Swagger документация.

Ниже представлена информация о всех релизованных компонентах системы.

Frontend

На стороне фронтанда были реализованы основные операции над заявками:

  1. Создание заявки
  2. Согласование руководителем
  3. Согласование бухгалтером
  4. Прикрепление финансового отчета
  5. Перенос в архив
  6. Отображение всех заявок пользователя и его профиля

Backend

Основной компонент системы, с которым Frontend обменивается информацией.

Подробнее с документацией по этому компоненту можно ознакомиться тут

Сервис авторизации

Mock-сервис авторизации, к которму обращается Frontend в момент аутентификации и авторизации сотрудника.

Подробнее с документацией по этому компоненту можно ознакомиться тут

Справочник сотрудников

Mock-сервис с данным о сотрудниках внутри компании, используется при работе Backend'а.

Подробнее с документацией по этому компоненту можно ознакомиться тут

Сервис Booking'а

Mock-сервис, который позволяет выбрать рейс, отель и остальные необходимые для коммандировки услуги.

Подробнее с документацией по этому компоненту можно ознакомиться тут

Технологический стек

Frontend

  • JavaScript
  • React

Backend

  • Java 17
  • Spring-Boot
  • Spring-Cloud
  • Swagger
  • Maven
  • Docker

Инструкции

Запуск Backend'а

Для запуска необходимо иметь установленный Docker версии 2.25 и выше.

Собираем docker-image для каждого сервиса

$ bash mvnw clean install spring-boot:build-image

Предоставляем права для запуска скриптов

$ chmod +x ./assets/*

Запускаем Backend-сервисы

$ docker-compose up

Запуск Frontend'а

Для запуска необходимо иметь установленный npm версии 10.5 и выше.

Переходим в директорию с Frontend'ом

$ cd frontend

Устанавливаем зависимости

$ npm install

Запускаем Frontend

$ npm start

Сервис будет доступен по адресу http://localhost:3000

По умолчанию в систему добавлены 3 тестовых пользователя:

  1. Руководитель
    • Login: lead
    • Password: test
  2. Сотрудник
    • Login: test2
    • Password: test
  3. Бухгалтер
    • Login: acco
    • Password: test

Тест-кейсы

Test_plan.pdf