Skip to content
This repository has been archived by the owner on Jun 16, 2024. It is now read-only.
/ KeyLab Public archive

Веб-приложение для конструирования виртуальных механических клавиатур

License

Notifications You must be signed in to change notification settings

tovDmitrij/KeyLab

Repository files navigation

⌨️ Веб-приложение для конструирования виртуальных механических клавиатур

📖 Описание проекта

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

Механические клавиатуры обычно считаются более прочными и долговечными, так как каждая клавиша оборудована отдельным механизмом регистрации нажатия, который именуется механическим переключателем. Обычно подобные клавиатуры используют офисные работники, которых в России насчитывается 29 миллионов, и геймеры в количестве 88 миллионов. А используют они их за счёт комфортного печатания текста. Сама же комфортность обеспечивается за счёт устройства переключателя, который не требует полного нажима клавиши, что позволяет добиться существенного сокращения времени на ввод по сравнению с иными видами клавиатур.

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

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

  1. найти статью в Интернете, где текстом будет описываться различие между переключателями;
  2. отыскать видео со звуком на любом видеохостинге с демонстрацией работы переключателей;
  3. приобрести тестер переключателей.

Недостаток первого варианта очевиден. Статьи субъективны, так как у каждого человека своё восприятие звука. Например, одному человеку может показаться нажатие тактильных MX Blue переключателей слишком громким, а другому — слишком тихим.

Несовершенство второго варианта заключается в том, что покупателю придётся тратить время, которое не константно, на поиск видео с качественными звуком и грамотной подачей материала, так как не все видео в Интернете имеют обозначенные характеристики.

Третий вариант в сравнении с другими является наиболее предпочтительным. Тестер переключателей представляет собой небольшой корпус с набором различных типов переключателей.

Очевидное достоинство данного устройства в том, что оно позволяет объективно почувствовать звуковую разницу между переключателями. Однако приспособление имеет ряд недостатков, таких как:

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

Можно отметить проблему, что все затронутые способы ознакомления со звуками механических переключателей неэффективны в плане затраты финансовых ресурсов и времени. Очевидно, что эти издержки нужно минимизировать.

Решением проблемы минимизации издержек при ознакомлении с материалом по механическим переключателям перед приобретением клавиатуры является создание клиент-серверного веб-приложения, в котором присутствует возможность отобрать механическую клавиатуру с определённым типом переключателей. Выбор повлечёт за собой отображение в браузере 3𝐷-модели устройства, с которой пользователь сможет взаимодействовать, а именно нажимать на клавиши, что, в свою очередь, воспроизведёт анимацию нажатия и качественно записанный звук щелчка. Также в качестве монетизации проекта будет встроен конструктор клавиатур, где пользователь может собрать свою, указав её размерность, выбрав нужный тип переключателей, а также набор клавиш, каждую из которых можно преобразить, например, покрасив. Собранные клавиатуры можно будет заказать у магазина, где будет встроено данное ПО.

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

🧪 Пример работы конструктора клавиатур

Сначала регистрируемся/авторизовываемся в системе. Затем переходим в редактор клавиатур, где нам необходимо выбрать три компонента (см. видео на YouTube)

📓 Документация

API - см. README файл в папке /api и диаграммы в /docs;

Client - см. README файл в папке /client и диаграммы в /docs;

PostgreSQL - см. README файлы в папке /postgres/production и диаграммы в /docs.

🚀 Запуск (Docker)

  1. Установить Docker;
  2. Скачать архив с файлами 3D-моделей по ссылке и распаковать его в папку files;
  3. (Опционально, если планируется регистрировать новый аккаунт в системе) В файле configurations/production/api.json в блоке Email определить Login и Password приложения, привязанного к аккаунту Google (см. справочник Google);
  4. Запустить скрипт docker-production.bash (первый запуск из-за скачивания библиотек продлится примерно 7 минут. Далее будет примерно за 10-30 секунд);
  5. Перейти по адресу http:https://localhost:6051/. Должна открыться главная страница клиентского приложения;
  6. Зарегистрировать новый аккаунт (см. п.3), либо войти в аккаунт администратора ([email protected]:11111111).

💻 Технологический стек

NGINX
Docker
ASP.NET Core 8
Redis 7.2.4
PostgreSQL 16.0
RabbitMQ
ReactTS
ThreeJS