Как коллекционировать старые компьютеры и не запутаться в них. Часть 2

в 21:10, , рубрики: diy или сделай сам, каталогизация, старое железо, старое по

Да простит меня автор первой части за то, что украл его название, но уж очень близка мне эта тема. Мы - музей Software & Computer Museum столкнулись с той же проблемой каталогизации и учета наших экспонатов. Изучив доступные музейные базы пришли к выводу, что все это как-то тяжело и некатомизируемо, решили писать свое. Интересно, что получилось? Добро пожаловать под кат.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 1

Я не профессиональный разработчик, поэтому писал на том, с чем был хоть немного знаком - PHP+MySQL. На данный момент проект в разработке уже два года и мы достаточно активно им пользуемся для своих задач, но, к сожалению, он еще сыроват для открытой публикации.

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

Модуль Hardware

Модуль Hardware нужен для учета железных штук и содержит 3 уровня вложенности. Верхний уровень - объект. Например, ZX Spectrum 48. Объект относится к определенной категории (компьютер), выпущен компанией Sinclair и относится к платформе ZX Spectrum (к этой же платформе относится и куча других клонов, которые массово у нас производились). Есть дата релиза, габариты и вес (помогают понять, сколько места ему нужно в экспозиции и как транспортировать). Также для объекта можно добавить произвольные теги.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 2

Второй уровень вложенности - экспонат. Это уже конкретный физический ZX Spectrum. Он имеет те же свойства, что и его родительский объект (object_id в таблице), но также ряд уникальных свойств: инвентарный номер, внешнее состояние, работоспособность, локацию и свой собственный текстовый коментарий. Например, у нас их два:

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 3

Третий уровень вложенности - предмет экспоната. Экспонат может состоять из нескольких предметов, например, сам Спектрум, блок питания от него, инструкция, коробка и так далее. Для каждого такого предмета есть категория, состояние, работоспособность, локация и комментарий и фото, по которому легко опознать предмет.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 4

Модуль Software

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

Верхний уровень - Software. Некое общее описание, например игра Pac-Man разработана Namco для аркадного автомата, геймплей всем понятен и известен. Да, описание на скрине не заполнено.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 5

Но кроме аркады игра издавалась на кучу разных платформ, поэтому добавляется второй уровень вложенности - Release. Релиз связан с Software, но имеет свои особенности: платформу, на которой он был выпущен, свою обложку для этой платформы, дату выхода, носитель и описание. У нас есть Pacman для трех разных платформ, Atari 2600, Atari 5200 и Sega GameGear. При редактировании релиза можно чекбоксом отметить Primary Release и его обложка будет показываться в описании Software.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 6

Дальше все как и в Hardware, для каждого релиза есть экспонаты и предметы. Например, картриджей с Pacman для Atari 5200 у нас целых 3 штуки, поэтому 3 экспоната, но все 3 карика голые, поэтому в каждом экспонате только 1 предмет - картридж. Достанем инструкцию или коробку, добавим эти предметы к одному из экспонатов.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 7

Модуль Catalog

Этот модуль позволяет формировать списки по некоторым критериям. Сейчас у нас там производители железа (Vendors), платформы (Platforms) и разработчики ПО (Developers). Да, это не покрывает всех возможных ситуаций, так как что-то могли разрабатывать совместно, для каждого софта была компания-разработчик и издатель, но пока как есть. Для каждой сущности в каталоге есть название и логотип. Пример каталога производителей показан в шапке статьи. Так выглядит каталог платформ:

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 8

Для каждой платформы, производителя или разработчика можно посмотреть список экспонатов. Вот, например, ZX Spectrum. Список сортируется по алфавиту и приоритету категории. Категории железа имеют больший приоритет, чем категории софта.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 9

Рядом с логотипом платформы есть иконка, позволяющая показать экспонаты в виде галереи картинок для более удобного поиска. Аналогичным образом работают каталоги производителей и разработчиков.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 10

Модуль Search

Тут все просто. Это поиск, к сожалению, не полнотекстный, а обычный через MySQL LIKE. Ищет по названиям экспонатов, каталогу и тегам. Сначала показывает элементы каталога (первой строчкой платформа ZX Spectrum), затем экспонаты. Например, по фразе spec найдет следующее:

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 11

Модуль Calendar

Этот модуль позволяет нам не забыть какие-то важные события из истории ИТ и подготовить тематическую выставку в музее или хотя-бы публикацию в соцсетях. Вы просто добавляете название, дату события, описание и картинку. По этому модулю есть еще куча идей и недоделок. По умолчанию он показывает события на -10 дней назад и на +20 вперед.

Как коллекционировать старые компьютеры и не запутаться в них. Часть 2 - 12

Пока это все, что реализовано в текущей версии 0.23.

Планы на ближайшее будущее:

  • подготовить шаблоны для формирования списков по локации, категориям;

  • добавить поиск по описаниям;

  • переработать редактирование описания для объектов железа, ПО и релизов, добавить нормальную поддержку HTML разметки или Rich Textbox;

  • добавить редактор справочников (пока добавление или редактирование локаций, категорий и еще некоторых справочников производится прямо в MySQL-редакторе).

Планы на перспективу:

  • сделать установщик (я эту штуку даже на гитхаб пока выложить не могу, так как без детальной инструкции никто ее не запустит);

  • добавить хоть какой-то импорт. По игрушкам с той же MobyGames;

  • опубликовать и попробовать собрать комьюнити вокруг проекта.

На этом у меня все. Благодарю за внимание.

Автор: Коваленко Александр

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js