Автоматизированная система "Инвентаризация всего"

Предисловие

Возможно ли такое, что не ты выбираешь специальность, а специальность выбирает тебя?

Свои студенческие годы я провела на специальности "Автоматизированные системы управления". Не очень говорящее название для подростка 16-ти лет. Я с трудом представляла что это значит и что мне нужно будет делать в дальнейшем. С первого курса были достаточно общие предметы по математике и программированию, поэтому представлялось, что здесь готовят программистов, возможно, какого-то особого профиля. И только курсе на 4-5, после одного очень невзрачного предмета с зачетом в конце, наступило прозрение, что это не очень связано с роботами, как можно было подумать из слова "автоматизированные", это не нечто абстрактное и обобщенное, как слово "системы", и оно напрямую не связано с менеджментом, экономикой и "управлением". Хотя отчасти это все это и есть.

В общем на 5-ом курсе, когда пришла пора выбирать себе руководителя для диплома и определяться с темой, я уже четко знала, что буду "Автоматизатором"! Что это значит? Ты работаешь на предприятии и видишь, что какой-то ручной труд можно заменить машинным, а какой-то - построением целой автоматизированной системы, которая бы сама что-то там вычисляла, вела учет, выдавала бы результаты. И ты сам занимаешься разработкой и проектированием этой системы, которая включает в себя не только программный код и хранение данных в бд, но и подбор соответствующих технических инструментов.

Самым типичным примером может служить дипломный проект с темой "Разработка автоматизированной системы учета сотрудников". Что это значит: нужно организовать учет сотрудников, как то: приход на работу, уход, начисление з/п в зависимости от количества отработанных часов и прочее. Для этого ты проводишь анализ существующих систем подобного типа и решаешь создать свою с использованием магнитного считывателя персональных карточек, которые будут выданы всем сотрудникам. Таким образом будет фиксироваться время прихода/ухода, вычисляться количество проведённых на рабочем месте часов и соответственно начисление з/п. Это очень грубый пример и, конечно, там будет очень много работы, например:
  • выбор считывающего устройства и магнитных карточек
  • написание программы, которая преобразует данные со считывающего устройства в свои
  • база данных, в которой хранятся все данные о сотрудниках
  • анализ и просчет стоимости разработки такой системы с обоснованием экономической выгодности
Возможно, я что-то упустила, но смысл должен быть понятен.

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

К чему вообще такое сложное определение автоматизированных систем управления? Дело в том, что эта статья могла бы стать дипломным проектом с названием "Разработка автоматизированной системы инвентаризации имущества на предприятии."

Введение

Итак, автоматизированная система "Инвентаризация всего". Каждой разработанной системе предшествует боль, которую она должна полечить. В данном случае это боль не маленького государственного предприятия с тремя человеками в офисе, а достаточно крупной компании с количеством человек от 50 и выше. Казалось бы, что тут сложного: распечатать и наклеить инвентаризационный номер на каждый стол, стул и компьютер. Но тут я должна рассказать о специфике инвентаризации. В данном случае, это относится не столько к статичным предметам, а скорее к предметам общего пользования, например, офисный телефон, книга, ключ. А что если их несколько? И нужно знать кто сейчас ими владеет?

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

Конечно, можно ограничиться самым простым вариантом: списком общих вещей на бумаге с колонками для имен тех, кто взял, и когда. Этот способ до сих пор действует, например, при нерегулярной аренде зала, где ты приходишь и вписываешь себя в книгу посетителей внизу у консьержа. Или в местной библиотеке, когда берешь книгу. Но это для все время новых людей; если у нас заранее заданный список сотрудников, то можно было бы и что-то придумать, ведь так? Не заставлять же писать каждый раз ФИО, дату, подпись?

Что я предлагаю:

Идея

Все предметы общего пользования имеют свой инвентаризационный номер в виде QR-кода. Он заранее распечатан и прикреплен к предмету. Человек, желающий взять его в пользование, устанавливает приложение на телефон, которое способно считать QR-кода и отправить запрос на закрепление выбранного предмета за данным сотрудником. Конечно, я исхожу из того, что у каждого человека есть телефон. Сложно представить себе в наше время офисного сотрудника без телефона, правда же? С помощью этого приложения он может и вернуть предмет.
Если с идеей все понятно, я опишу какую систему нужно разработать.

Разработка системы

База данных

Так как все пользователи свои, то несложно занести их в единую базу данных. Здесь же будут храниться данные о всех офисных предметах. А также информация о времени взятия и возврата сотрудником. Итого у нас получается около четырех простых таблиц (рис. 1):
  1. Таблица сотрудников (идентификатор сотрудника, фио и прочие данные о человеке)
  2. Таблица инвентаризационных предметов (идентификатор предмета, QR-code, название и прочее описание предмета)
  3. Таблица категорий (справочник о категории предмета, например, книги, мебель, компьютеры)
  4. Таблица заёма-возврата (идентификатор сотрудника, идентификатор предмета, время заёма, время возврата, прочие пометки)

Рисунок 1. База данных.

Первые три таблицы заполняет администратор или уполномоченное лицо компании. Четвертая (Relations) таблица будет заполняться данными автоматически через приложение сотрудника в момент взятия/возврата.

Программа

Серверная часть

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

Можно предусмотреть автогенерацию кодов для последующего использования.

Рисунок 2. Пример интерфейса администратора
 
 
Рисунок 3. Пример интерфейса для просмотра инвентаризационных предметов 
 

Клиентская часть

Для пользователей (сотрудников) это будет приложение под две платформы: Android и iOS, как самые популярные. Так как сами приложения будут небольшие, то для сокращения времени разработки можно взять в качестве основной технологии или React Native, или Flutter.

Через приложение можно:
  1. Просматривать наличие инвентарных предметов
  2. Брать их и возвращать, фиксируя эти действия через сканирование QR-кода

Рисунок 4. Пример интерфейса мобильного приложения

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

Авторизация

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

Дополнительные материалы

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

Требования

Наличие современного телефона у сотрудника и интернет-соединения.

Выводы

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

Также реальный проект автоматизированной системы будет включать в себя еще экономическую составляющую, то есть выгодность ее реализации: соотношение затрат на имплементацию и пользы от ее внедрения. И поскольку по затратам очень грубо можно почитать от 2 недель до месяца каждого разработчика (дизайн, бэкенд, фронтэнд, мобильная разработка, тестирование), то выгодность можно определить только той болью, которую испытывают сотрудники при пользовании общими предметами, и решением руководства начать разрабатывать данную систему.

Комментарии

Популярные сообщения из этого блога

Стайлгайд и компонентная разработка

Прогноз погоды в консоли

Погружение в React Native: навигация, работа оффлайн, пуш нотификации