Поиск архивных документов: проблема и реализация
Use case добавление в очередь
Человек хочет построить свое генеалогическое дерево. Для этого ему нужно узнать о своих предках. При условии сохранности архивных документов, это можно сделать. Человек выясняет в ЗАГСе, где и когда родился предок, кто были его родители. Записи, которые делает сейчас ЗАГС, до 1917 года велись в метрических книгах в церковных приходах. Если нужно узнать о рождении предка или его смерти до 1917 года, нужно идти в архив.
Типы архивных документов: метрические книги, ревизские сказки, исповедные росписи.
Глоссарий
Метрические книги — реестр, книга для официальной записи актов гражданского состояния (рождений, браков и смертей) в России в период с начала XVIII века по начало XX века.
Ревизские сказки — документы, отражающие результаты проведения подушных переписей (ревизий) податного населения Российской империи в начале XVIII — 2-й половине XIX веков, проводившихся с целью налогообложения. Ревизские сказки представляли собой поимённые списки населения, в которых указывались имя, отчество и фамилия (при её наличии) главы семьи, его возраст, имя и отчество членов семьи с указанием возраста, отношение к главе семьи. В ревизских сказках (за некоторыми исключениями) учитывались лица мужского и женского пола, но в сводных таблицах женский пол никогда не фигурировал.
Исповедные росписи — ежегодный отчётный документ, составляемый по каждому приходу православной церкви в Российской Империи в XVIII — начале XX вв. и представляющий собой посемейный список всех проживающих на его территории прихожан (как правило, за исключением младенцев возрастом менее 1 года), с указанием для каждого человека, был ли он в этом году во время Великого поста (в святую великую Четыредесятницу), или во время других трёх постов, на исповеди и причащался ли у своего священника, а если нет — то по какой причине (например, за малолетством).
Архивный документ — в данном документе общее название для метрических книг, ревизских сказок, исповедных росписей.
Атрибуты: Фонд -> опись -> название -> годы -> уезды
Описание процесса
Чтобы получить доступ к метрической книге (или другому архивному документу), нужно обратиться в читальный зал архива. Очередь 5 месяцев на выдачу из-за особенностей работы архива. Работать с одним населенным пунктом могут желать работать более 100 человек.
Чтобы не ждать своей очереди, пользователи связываются с другим человеком, который зарегистрировался в гугл-таблице и ждет своей очереди, чтобы попросить переписать нужную информацию из метрической книги.
Как получает человек информацию в архиве (AS IS):
- Исследователь приходит в архив.
- Сотрудник архива проверяет, что такой документ есть в архиве.
- Регистрирует по паспортным данным, на посетителя архива заводят личное дело.
- Передает на рассмотрение директору архива.
- Если директор соглашается, то посетитель ставится в очередь примерно на 5 месяцев.
- Сотрудник читального зала записывает себе эту информацию в книгу (компьютером не пользуется).
- Когда подходит срок посетитель приходит, сотрудник читального зала проверяет весь документ, все ли в нем в порядке и выдает в читальный зал пользователю.
- Пользователь ищет в читальном зале нужную информацию.
- Если пользователи связывались друг с другом через гугл-документ, то он ищет еще и информацию о для других пользователей.
- Пользователь сдаёт документ, сотрудник читального зала проверяет сохранность документа и передаёт в архив.
Проблема 1: пользователям неудобно ждать своей очереди по 5 месяцев на один архивный документ.
Проблема 2: Архиву неудобно выдавать один и тот же документ, когда можно выдать одному заинтересованному человеку, чтобы он посмотрел информацию и для других. Архивный документ представляет большую ценность. Чем меньше архивный документ выдается, тем меньше его износ и риск повреждения.
Проблема 3: бумажная книга для регистрации пользователей в архиве неудобна. Эта информация не может быть использована для сокращения очередей, т. к. к ней нет доступа. Информация в бумажном виде может потеряться и не восстанавливается. Если требуется сделать изменение в расписании, нужно одного зачеркнуть, другого добавить. Нет доступа к информации об очереди и расписанию — не понятна загруженность сотрудника и других работников архива по предоставлению документов. Нет возможности сделать аналитику: какие документы пользуются повышенным спросом, чтобы их оцифровывать в первую очередь.
Варианты реализации
Сайт
Клиент-серверное приложение (монолит). Имеет фронтенд (ReactJS) и бэкенд часть (.NET ?). В качестве СУБД используется PostgreSQL (?). Общение между фронтендом и бэкендом с RestAPI (?).
- Исследователь А. приходит в читальный зал.
- На п. 6 предыдущего описания процесса Сотрудник читального зала заносит Исследователя в очередь не в бумажную книгу, а в ПО.
- Сотрудник читального зала спрашивает подтверждение Исследователя, согласен ли он, чтобы с ним связывались другие исследователи в ПО.
- Сотрудник читального зала заполняет карточку Исследователя в ПО.
- Сотрудник читального зала добавляет информацию в очередь, какая книга заказана, кем, на какое число заносится в систему.
- Исследователь согласен на то, чтобы с ним связывались другие — его позицию в очереди видит сотрудник читального зала и другие исследователи.
- Исследователь не согласен с тем, чтобы с ним связывались другие — позицию в очереди видит только сотрудник читального зала.
Другой Исследователь Б (незарегистрированный пользователь) заходит на сайт:
- На сайте можно выводить превью списка очереди Исследователей с анимацией заказанных книг с заблюренными контактами. С призывом, чтобы связаться с теми, кто заказал книгу - зайдите на сайт.
- Подумать: вход на сайт может быть с регистрацией или без регистрации (гостевой доступ) (?).
Исследователь Б регистрируется / логинится на сайте:
1. На сайте отображается очередь Исследователей с контактами тех, кто был согласен.
- Ищет нужное дело, выбирая фильтры:
- Уезд (выводится список).
- Фонд (выводится список).
- Опись (выводится список).
- Дело (выводится список).
- Год (указывается диапазон).
- Видит список Исследователей, которые заказали данную книгу и информацию о том, как с ними связаться.
- Указанная информация может быть: email, телефон, страница ВК, Телеграм.
- Исследователь связывается с другими Исследователями за пределами сайта (внутреннего инструмента для связи нет).
Если Исследователь Б. не находит нужное дело в очереди, но готов связаться с тем, кто в будущем будет заказывать такое же дело:
- Открывает инструмент для поиска дела (база дел, входящих в описи, которые входят в фонды, к делу указано, какие населенные пункты в нем есть и какие годы).
- Находит нужное дело и подписывается на уведомление.
- Исследователь В. встает в очередь — Исследователю Б. приходит уведомление о том, что в очереди появился Исследователь, с ним можно связаться по контактам.
- уезд (список) — список.
- фонд (список) — список зависит от пред. пункта
- опись (список) — список зависит от пред. пункта
- дело (список) — список зависит от пред. пункта
- поиск по нас. пункту — поиск по наименованию без учета регистра.
Если текущая дата > даты, указанной для выдачи Архивного документа, то такая запись не выводится в список.
Выводятся все, прошедшие визуально отличаются (серый цвет, более бледный шрифт - зависит от дизайна)
- дата/время регистрации
- дата/время изменения
- роль: признак или список (зарегистрированный Исследователь, сотрудник Архива (админ))
- регистрация уезда
- регистрация фонда
- регистрация описи
- регистрация населенного пункта
- регистрация дела:
- регистрация Исследователя:
- архивный номер — при регистрации в читальном зале, скрыто от Исследователя
- фамилия — при регистрации в читальном зале, скрыто от Исследователей
- имя — при регистрации в читальном зале, скрыто от других Исследователей
- отчество — при регистрации в читальном зале, скрыто от других Исследователей
- отображаемое имя — может редактировать, открыто для других Исследователей
- логин — почта? иначе забывают
- пароль — вводит
- согласие на обработку персональных данных
- согласие на передачу контактов другим Исследователям (? подумать, на каком шаге)
- сотрудник читального зала архива, права - на всё в системе;
- Исследователь, право зарегистрироваться и редактировать свою информацию, просматривать списки, но не редактировать их;
Делать по итерациям, не все сразу.
MVP
БД
Создание единой таблицы Пользователь для хранения данных Исследователя и Сотрудника читального зала. Роли и права не делать на первом этапе.
Создание таблицы Архивный документ. Таблицу под вложения: уезд, фонд, опись, дело — можно создать гибко, одну абстрактую таблицу, а иерархию при помощи другой таблицы.
Создание таблицы Очередь заказов архивного документа.
Отображается без фильтров и пагинации (постраничного отображения).
На первом этапе все данные создаются в БД скриптом.
Бэкенд
Запрос на получение таблицы Очередь заказов архивного документа.
Передача на фронтенд таблицы Очередь заказов архивного документа.
Дизайн
Концепция дизайна сайта, детально - очередь заказов архивного документа.
Фронденд
Отображение таблицы Очередь заказов архивного документа.
В другие итерации:
- создание пользователя из формы,
- создание архивного документа из формы
- создание уезда, фонда, описи, дела из формы
- добавление записи на очередь за документом из формы
- подписка на событие - постановка в очередь за указанным документом
Use case Открытие сайте незарегистрированным пользователем
- Пользователь открывает главную страницу сайта.
- Система отображает очередь заказанных дел со всеми полями, кроме контактов Исследователей (блюр, скрыто или т. п. — к дизайну).
- Система отображает инструмент для поиска дела в базе (фонд-опись-дело + населенные пункты в этом деле и годы в этом деле).
- Система дает возможность зарегистрировать или зайти на сайт.
Use case Зарегистрированный пользователь заходит на страницу с очередью
- Пользователь заходит на страницу с очередью.
- Система запрашивает список уездов, которые есть в очереди, для фильтра.
- Система получает список фондов, которые есть в очереди, для фильтра.
- Система получает список описей, которые есть в очереди, для фильтра.
- Система получает список дел, которые есть в очереди, для фильтра.
- Система отображает инструмент для поиска по названию нас. пункта.
- Система отображает кнопку для перехода в раздел Профиль Исследователя.
- Система отображает кнопку для перехода в раздел Поиск архивного дела.
Use case Поиск архивного дела (незарегистрированный, зарегистрированный Исследователь, сотрудник Архива)
- Пользователь заходит на страницу Поиск архивного дела.
- Система отображает инструмент для поиска названия населенного пункта.
- Система отображает кнопку возврата к очереди.
- Система отображает взаимосвязанные фильтры:
- Пользователь выбирает уезд.
- Система получает список фондов для фильтра, дела которых есть в базе.
- Система отображает список дел с учетом указанных фильтров.
- Пользователь выбирает фонд.
- Система получает список описей, дела которых есть в базе.
- Система отображает список дел с учетом указанных фильтров.
- Пользователь выбирает опись.
- Система получает список дел, которые есть в базе, для фильтра.
- Система отображает список дел с учетом указанных фильтров.
- Пользователь вводит название нас. пункта, без фильтров.
- Пользователь вводит название нас. пункта, применен 1 и более фильтров.
Сотрудник архива заходит на страницу с очередью.
Use case добавление архивного документа
/help описание того, как пользоваться чат-ботом, какие есть команды
/start приветственное сообщение и выбор списка команд
Зависимые друг от друга или независимые команды (?)
/loc - населенный пункт (locality) — населенные пункты, к которым относится документ
Выводятся первые 5(? больше может быть не удобно читать) записей очереди заказов с информацией:
Очередь на архивные документы.
1. (номер по порядку)
Уезд: Пример
Населенный пункт (пункты, которые ищет другой исследователь): Пример1, Пример2
Фамилии (которые ищет исследователь): Пример1, Пример2.
Другие нас. пункты в этом деле: Пример1, Пример2, ..., ПримерN.
Способы связи с исследователем