Skip to content

Instantly share code, notes, and snippets.

@stp-che
Last active April 1, 2020 13:43
Show Gist options
  • Save stp-che/1794833e51bb2bae9244cfccb8884311 to your computer and use it in GitHub Desktop.
Save stp-che/1794833e51bb2bae9244cfccb8884311 to your computer and use it in GitHub Desktop.
Тестовое задание (орг структура компании)

Необходимо написать Rails-приложение, в котором ведется учет отделов и сотрудников компании.

В приложении нужно реализовать:

  • ведение справочника отделов
  • ведение справочника сотрудников
  • пополнение отделов сотрудниками
  • отчет о структуре компании

Исходный код должен быть размещен на github.

Справочник отделов

Отделы имеют следующие атрибуты:

  • Дата формирования (обязательный)
  • Дата расформирования
  • Название (может меняться со временем - необходимо хранить историю этих изменений)

Действия с отделами:

  • Добавление. При добавлении указывается:
    • Дата формирования
    • Дата расформирования (опционально)
    • Название
  • Редактирование. Для редактирования доступны:
    • Дата формирования
    • Дата расформирования
  • Изменение названия. Указывается:
    • Новое навание
    • Дата, с которой оно изменено
  • Просмотр списка
    • В списке должны отображаться все отделы
    • Список должен содержать колонки:
      • Название (должно отображаться название, которое отдел имеет на текущую дату; если отдел расформирован, то - последнее название; если еще не сформирован - первое название)
      • Дата формирования
      • Дата расформирвания

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

Атрибуты сотрудника:

  • ФИО (обязательный)

Действия с сотрудниками:

  • Добавление
  • Редактирование
  • Просмотр списка

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

  • Должна быть возможность указать, в каком отделе работает сотрудник
  • При привязке сотрудника к отделу указывается:
    • Дата начала работы сотрудника в отделе (обязательно)
    • Дата окончания работы сотрудника в отделе
  • Для одного сотрудника должна быть возможность создать несколько привязок к отделам с условием, что они не пересекаются по времени (т.е. сотрудник может переходить из отдела в отдел, но в любой момент работает только в одном отделе)

Обеспечение целостности данных

При редактировании отделов и привязке сотрудников к отделам система должна следить за соблюдением следующего правила:

  • период работы сотрудника в отделе должен лежать в пределах периода существования отдела (от даты формирования до даты расформирования)

Отчет о структуре компании

  • Отчет должен строиться на определенную дату (по умолчанию - на текущую)
  • Отчет должен содержать перечень всех отделов, существующих в компании на заданную дату.
  • Названия отделов должны отображаться на заданную дату.
  • Для каждого отдела должен быть перечень всех сотрудников, которые работают в нем на заданную дату

Схематично это должно выглядеть, примерно, так:

Отдел 1
    Сотрудник 1
    Сотрудник 2

Отдел 2
    Сотрудник 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment