December 6, 2022

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

Use case добавление в очередь

Описание проблемы

Человек хочет построить свое генеалогическое дерево. Для этого ему нужно узнать о своих предках. При условии сохранности архивных документов, это можно сделать. Человек выясняет в ЗАГСе, где и когда родился предок, кто были его родители. Записи, которые делает сейчас ЗАГС, до 1917 года велись в метрических книгах в церковных приходах. Если нужно узнать о рождении предка или его смерти до 1917 года, нужно идти в архив.

Типы архивных документов: метрические книги, ревизские сказки, исповедные росписи.

Глоссарий

Метрические книги — реестр, книга для официальной записи актов гражданского состояния (рождений, браков и смертей) в России в период с начала XVIII века по начало XX века.

Ревизские сказки — документы, отражающие результаты проведения подушных переписей (ревизий) податного населения Российской империи в начале XVIII — 2-й половине XIX веков, проводившихся с целью налогообложения. Ревизские сказки представляли собой поимённые списки населения, в которых указывались имя, отчество и фамилия (при её наличии) главы семьи, его возраст, имя и отчество членов семьи с указанием возраста, отношение к главе семьи. В ревизских сказках (за некоторыми исключениями) учитывались лица мужского и женского пола, но в сводных таблицах женский пол никогда не фигурировал.

Исповедные росписи — ежегодный отчётный документ, составляемый по каждому приходу православной церкви в Российской Империи в XVIII — начале XX вв. и представляющий собой посемейный список всех проживающих на его территории прихожан (как правило, за исключением младенцев возрастом менее 1 года), с указанием для каждого человека, был ли он в этом году во время Великого поста (в святую великую Четыредесятницу), или во время других трёх постов, на исповеди и причащался ли у своего священника, а если нет — то по какой причине (например, за малолетством).

Архивный документ — в данном документе общее название для метрических книг, ревизских сказок, исповедных росписей.

Атрибуты: Фонд -> опись -> название -> годы -> уезды

Описание процесса

Чтобы получить доступ к метрической книге (или другому архивному документу), нужно обратиться в читальный зал архива. Очередь 5 месяцев на выдачу из-за особенностей работы архива. Работать с одним населенным пунктом могут желать работать более 100 человек.

Чтобы не ждать своей очереди, пользователи связываются с другим человеком, который зарегистрировался в гугл-таблице и ждет своей очереди, чтобы попросить переписать нужную информацию из метрической книги.

Как получает человек информацию в архиве (AS IS):

  1. Исследователь приходит в архив.
  2. Сотрудник архива проверяет, что такой документ есть в архиве.
  3. Регистрирует по паспортным данным, на посетителя архива заводят личное дело.
  4. Передает на рассмотрение директору архива.
  5. Если директор соглашается, то посетитель ставится в очередь примерно на 5 месяцев.
  6. Сотрудник читального зала записывает себе эту информацию в книгу (компьютером не пользуется).
  7. Когда подходит срок посетитель приходит, сотрудник читального зала проверяет весь документ, все ли в нем в порядке и выдает в читальный зал пользователю.
  8. Пользователь ищет в читальном зале нужную информацию.
  9. Если пользователи связывались друг с другом через гугл-документ, то он ищет еще и информацию о для других пользователей.
  10. Пользователь сдаёт документ, сотрудник читального зала проверяет сохранность документа и передаёт в архив.

Проблема 1: пользователям неудобно ждать своей очереди по 5 месяцев на один архивный документ.

Проблема 2: Архиву неудобно выдавать один и тот же документ, когда можно выдать одному заинтересованному человеку, чтобы он посмотрел информацию и для других. Архивный документ представляет большую ценность. Чем меньше архивный документ выдается, тем меньше его износ и риск повреждения.

Проблема 3: бумажная книга для регистрации пользователей в архиве неудобна. Эта информация не может быть использована для сокращения очередей, т. к. к ней нет доступа. Информация в бумажном виде может потеряться и не восстанавливается. Если требуется сделать изменение в расписании, нужно одного зачеркнуть, другого добавить. Нет доступа к информации об очереди и расписанию — не понятна загруженность сотрудника и других работников архива по предоставлению документов. Нет возможности сделать аналитику: какие документы пользуются повышенным спросом, чтобы их оцифровывать в первую очередь.

Варианты реализации

  1. Сайт для регистрации информации о тех, кто ищет один и тот же архивный документ.
  2. Чат-бот.

Сайт

Клиент-серверное приложение (монолит). Имеет фронтенд (ReactJS) и бэкенд часть (.NET ?). В качестве СУБД используется PostgreSQL (?). Общение между фронтендом и бэкендом с RestAPI (?).

Описание процесса TO BE:

  1. Исследователь А. приходит в читальный зал.
  2. На п. 6 предыдущего описания процесса Сотрудник читального зала заносит Исследователя в очередь не в бумажную книгу, а в ПО.
  3. Сотрудник читального зала спрашивает подтверждение Исследователя, согласен ли он, чтобы с ним связывались другие исследователи в ПО.
  4. Сотрудник читального зала заполняет карточку Исследователя в ПО.
  5. Сотрудник читального зала добавляет информацию в очередь, какая книга заказана, кем, на какое число заносится в систему.
  6. Исследователь согласен на то, чтобы с ним связывались другие — его позицию в очереди видит сотрудник читального зала и другие исследователи.
  7. Исследователь не согласен с тем, чтобы с ним связывались другие — позицию в очереди видит только сотрудник читального зала.

Другой Исследователь Б (незарегистрированный пользователь) заходит на сайт:

  1. На сайте можно выводить превью списка очереди Исследователей с анимацией заказанных книг с заблюренными контактами. С призывом, чтобы связаться с теми, кто заказал книгу - зайдите на сайт.
  2. Подумать: вход на сайт может быть с регистрацией или без регистрации (гостевой доступ) (?).

Исследователь Б регистрируется / логинится на сайте:

1. На сайте отображается очередь Исследователей с контактами тех, кто был согласен.

  1. Ищет нужное дело, выбирая фильтры:
    1. Уезд (выводится список).
    2. Фонд (выводится список).
    3. Опись (выводится список).
    4. Дело (выводится список).
    5. Год (указывается диапазон).
  2. Видит список Исследователей, которые заказали данную книгу и информацию о том, как с ними связаться.
  3. Указанная информация может быть: email, телефон, страница ВК, Телеграм.
  4. Исследователь связывается с другими Исследователями за пределами сайта (внутреннего инструмента для связи нет).

Если Исследователь Б. не находит нужное дело в очереди, но готов связаться с тем, кто в будущем будет заказывать такое же дело:

  1. Открывает инструмент для поиска дела (база дел, входящих в описи, которые входят в фонды, к делу указано, какие населенные пункты в нем есть и какие годы).
  2. Находит нужное дело и подписывается на уведомление.
  3. Исследователь В. встает в очередь — Исследователю Б. приходит уведомление о том, что в очереди появился Исследователь, с ним можно связаться по контактам.

Фильтр очереди заказов:

  • уезд (список) — список.
  • фонд (список) — список зависит от пред. пункта
  • опись (список) — список зависит от пред. пункта
  • дело (список) — список зависит от пред. пункта
  • поиск по нас. пункту — поиск по наименованию без учета регистра.

Для пользователей

Если текущая дата > даты, указанной для выдачи Архивного документа, то такая запись не выводится в список.

Для сотрудника архивного зала

Выводятся все, прошедшие визуально отличаются (серый цвет, более бледный шрифт - зависит от дизайна)

Пагинация в таблице.

Роли:

  • дата/время регистрации
  • дата/время изменения
  • роль: признак или список (зарегистрированный Исследователь, сотрудник Архива (админ))

Действия на сайте:

  • регистрация уезда
  • регистрация фонда
  • регистрация описи
  • регистрация населенного пункта
  • регистрация дела:
    • архивный номер
    • название
    • год начала описания в книге
    • год окончания описания в книге
    • выбор из списка:
      • уезд;
      • фонд;
      • опись;
      • список населенных пунктов
      • годы, упоминаемые в деле
  • регистрация Исследователя:
    • архивный номер — при регистрации в читальном зале, скрыто от Исследователя
    • фамилия — при регистрации в читальном зале, скрыто от Исследователей
    • имя — при регистрации в читальном зале, скрыто от других Исследователей
    • отчество — при регистрации в читальном зале, скрыто от других Исследователей
    • отображаемое имя — может редактировать, открыто для других Исследователей
    • логин — почта? иначе забывают
    • пароль — вводит
    • согласие на обработку персональных данных
    • согласие на передачу контактов другим Исследователям (? подумать, на каком шаге)

Роли:

  • сотрудник читального зала архива, права - на всё в системе;
  • Исследователь, право зарегистрироваться и редактировать свою информацию, просматривать списки, но не редактировать их;

Делать по итерациям, не все сразу.

MVP

БД

Создание единой таблицы Пользователь для хранения данных Исследователя и Сотрудника читального зала. Роли и права не делать на первом этапе.

Создание таблицы Архивный документ. Таблицу под вложения: уезд, фонд, опись, дело — можно создать гибко, одну абстрактую таблицу, а иерархию при помощи другой таблицы.

Создание таблицы Очередь заказов архивного документа.

Отображается без фильтров и пагинации (постраничного отображения).

На первом этапе все данные создаются в БД скриптом.

Бэкенд

Сервис для работы с REST API.

Запрос на получение таблицы Очередь заказов архивного документа.

Передача на фронтенд таблицы Очередь заказов архивного документа.

Дизайн

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

Фронденд

Отображение таблицы Очередь заказов архивного документа.

В другие итерации:

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

Use case Открытие сайте незарегистрированным пользователем

  1. Пользователь открывает главную страницу сайта.
  2. Система отображает очередь заказанных дел со всеми полями, кроме контактов Исследователей (блюр, скрыто или т. п. — к дизайну).
  3. Система отображает инструмент для поиска дела в базе (фонд-опись-дело + населенные пункты в этом деле и годы в этом деле).
  4. Система дает возможность зарегистрировать или зайти на сайт.

Use case Зарегистрированный пользователь заходит на страницу с очередью

  1. Пользователь заходит на страницу с очередью.
  2. Система запрашивает список уездов, которые есть в очереди, для фильтра.
  3. Система получает список фондов, которые есть в очереди, для фильтра.
  4. Система получает список описей, которые есть в очереди, для фильтра.
  5. Система получает список дел, которые есть в очереди, для фильтра.
  6. Система отображает инструмент для поиска по названию нас. пункта.
  7. Система отображает кнопку для перехода в раздел Профиль Исследователя.
  8. Система отображает кнопку для перехода в раздел Поиск архивного дела.

Use case Поиск архивного дела (незарегистрированный, зарегистрированный Исследователь, сотрудник Архива)

  1. Пользователь заходит на страницу Поиск архивного дела.
  2. Система отображает инструмент для поиска названия населенного пункта.
  3. Система отображает кнопку возврата к очереди.
  4. Система отображает взаимосвязанные фильтры:
    1. Система получает список уездов, которые есть в базе, для фильтра.
    2. Система не получает список фондов, пока не выбран уезд.
    3. Система не получает список описей, пока не выбран фонд.
    4. Система не получает список дел, пока не выбрана опись.

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

  1. Пользователь выбирает фонд.
  2. Система получает список описей, дела которых есть в базе.
  3. Система отображает список дел с учетом указанных фильтров.

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

  1. Пользователь вводит название нас. пункта, без фильтров.
    1. Система отображает список дел, к которым относится нас. пункт, всех уездов, фондов, описей, дел.
  2. Пользователь вводит название нас. пункта, применен 1 и более фильтров.
    1. Система отображает список дел, к которым относится нас. пункт, с учетом фильтра.

Сотрудник архива заходит на страницу с очередью.

Use case добавление в очередь

Use case добавление архивного документа

Чат-бот

/help описание того, как пользоваться чат-ботом, какие есть команды

/start приветственное сообщение и выбор списка команд

Зависимые друг от друга или независимые команды (?)

/reg - уезд (от region)

/fo - фонд (от foundation)

/inv - опись (от invenotry)

/case - дело (от case)

/loc - населенный пункт (locality) — населенные пункты, к которым относится документ

Выводятся первые 5(? больше может быть не удобно читать) записей очереди заказов с информацией:


Очередь на архивные документы.

1. (номер по порядку)
Уезд: Пример

Фонд: Пример

Опись: Пример

Дело: Пример

Населенный пункт (пункты, которые ищет другой исследователь): Пример1, Пример2

Фамилии (которые ищет исследователь): Пример1, Пример2.

Другие нас. пункты в этом деле: Пример1, Пример2, ..., ПримерN.

ФИО Исследователя

Способы связи с исследователем

/next - след. страница (или команда, которая принята)

/end выйти из режима