Подход к планированию смены календаря - PullRequest
0 голосов
/ 15 марта 2020

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

Что ж, теперь проблема, которую я пытаюсь решить, в основном о концепции. Я работаю бесплатно для некоммерческой организации на планировщик смены => они работают круглосуточно в приюте для животных с хирургическим вмешательством и т. Д. c.

Пользователи приложения - волонтеры / сотрудники и владелец (и, вероятно, еще один человек, который управляет сменами, скажем, менеджер, но с теми же правами, что и владелец). Итак, в заключение - две роли менеджера и волонтера / сотрудника.

Организация имеет два офиса (один управляется владельцем, а второй - менеджером) => разница в том, что у них разные смены Первый из них имеет 8-часовые смены, а второй - 6-часовые смены.

Итак, я пытаюсь сделать календарь планировщика смен, где каждый волонтер может пометить, когда он доступен, или когда он недоступен, или если можно связаться по телефону для консультации или если они больны или в отпуске. Также у волонтеров есть разные навыки, и они могут указать, что они собираются делать (например, операция или консультация или стрижка волос). Так что несколько вариантов . У каждого варианта будет свой цвет, и я буду волонтером перетаскивать поля дней и смены, чтобы отметить период выбранного варианта. Как с 1-го по 3-е апреля или апреля, я в отпуске, а 4 апреля я буду в смену с 0 до 8 утра, затем с 8 утра до 4 вечера и с 4 вечера до 0 я буду на телефоне или недоступен. Другой пример, например, с 0:00 до 8:00 утра, без консультации с 8:00 до 16:00, с 16:00 до 0:00.

Менеджеры «подтверждают» вариант , запланированный добровольцем / сотрудником, или могут изменить его или может спланировать это для него / нее.

Владелец видел это здесь http://lekari.vesely-web.cz/ - приложение, созданное для больницы, так и не законченное. Ей это очень нравится, и она тоже так хочет.

Я ищу направление к правильному подходу.

Мой подход (высокий уровень)

Важные компоненты

  • Волонтер (некоторые основы c информация как name et c., навыки)
  • Календарь (параметры - от даты / до даты, дней, выходных)
  • День (параметры, показывающие, сколько смен в день, isWeekend, isPublicHoliday)
  • Сдвиг (опция добровольца => означает операцию, менеджер, окончательный вариант)

Часть календаря

  • с использованием date-fns рисовать дни каждого месяца для каждого волонтера / сотрудника
  • каждый день будет отдельным компонентом, определенным реквизитом, который я передаю ему (поэтому, если это массив из 3 или 4 и установка состояния по умолчанию)
  • для дней в месяце (https://date-fns.org/v2.11.0/docs/sub)
  • для выходных в месяце (https://date-fns.org/v2.11.0/docs/eachWeekendOfInterval)

То, что я действительно не знаю, это часть взаимодействия:

  • Я знаю, как сделать часть щелчка (я нажимаю на конкретный c компонент, и я изменяю его с помощью "function" Im дворняжка работает с)
  • Я не знаю, как это сделать, щелкните -> перетащите и отметьте часть для указанной c области одного добровольца

Часть обмена данными:

  • API от бэкэнда - мой собственный, поэтому я могу получить "все", что мне нужно
  • все изменения должны быть подтверждены нажатием кнопки подтверждения
  • отчеты по данным не требуются и, вероятно, никогда не будут

Буду признателен за любой совет.

...