Назначение системы
Система предназначена для учета оборудования компьютерного класса, хранения информации об объектах учета, генерации QR-кодов и быстрого открытия карточек оборудования с помощью камеры мобильного устройства.
Учет оборудования
Хранение инвентарных номеров, кабинетов, статусов и ответственных лиц.
QR-идентификация
Быстрый переход к карточке оборудования после сканирования QR-кода.
Отчеты
Экспорт данных в Excel и CSV, печать QR-кодов и страниц системы.
Начало работы
Откройте основной сайт системы:
https://qrscanner.tech
На главной странице отображается статистика, форма добавления оборудования, поиск, фильтры и список оборудования.
Для работы с оборудованием заполните форму, выберите кабинет, статус и ответственное лицо, затем сохраните запись.
Добавление оборудования
Для добавления оборудования необходимо заполнить форму на главной странице системы.
| Поле | Назначение |
|---|---|
| Инвентарный номер | Уникальный номер оборудования, по которому можно быстро найти запись. |
| Название | Наименование объекта учета: компьютер, монитор, принтер, маршрутизатор и другое оборудование. |
| Серийный номер | Заводской номер устройства. Используется для уточнения конкретного экземпляра. |
| Производитель и модель | Дополнительные характеристики оборудования. |
| Кабинет | Место расположения оборудования. |
| Статус | Текущее состояние оборудования: используется, в ремонте, выведено из эксплуатации или новое. |
| Ответственный | Сотрудник или преподаватель, закрепленный за оборудованием. |
После сохранения записи система добавляет оборудование в базу данных и автоматически формирует QR-код для открытия карточки оборудования.
Работа со справочниками
Справочники используются для выбора кабинетов и ответственных лиц из заранее подготовленных списков. Это снижает количество ошибок при вводе данных и ускоряет заполнение формы.
Кабинеты
Можно добавлять и удалять кабинеты, которые используются при учете оборудования.
Ответственные
Можно добавлять преподавателей и сотрудников, закрепленных за оборудованием.
Связи
Преподаватели связываются с кабинетами, в которых они чаще всего находятся.
Поиск, фильтрация и сортировка
Система поддерживает поиск по инвентарному номеру, названию, серийному номеру, производителю и модели.
Фильтрация доступна по статусу, кабинету и ответственному лицу.
Сортировка позволяет упорядочить список по дате добавления, инвентарному номеру, названию, кабинету и статусу.
Карточка оборудования
Карточка оборудования содержит полную информацию об объекте учета: инвентарный номер, название, кабинет, статус, ответственного, характеристики, комментарий и историю изменений.
Карточку можно открыть из списка оборудования или после сканирования QR-кода.
QR-сканирование
Откройте сайт https://qrscanner.tech на мобильном устройстве.
Нажмите кнопку «Включить камеру».
Разрешите браузеру доступ к камере.
Наведите камеру на QR-код оборудования.
После считывания откроется карточка оборудования.
Экспорт и печать
- Экспорт списка оборудования в Excel.
- Экспорт списка оборудования в CSV.
- Печать QR-кодов для размещения на оборудовании.
- Печать страницы или сохранение в PDF.
Администрирование системы
Основная система размещена на сервере Debian 12 и запускается в Docker-контейнере. Для публикации сайта используется Nginx, а для защищенного доступа применяется HTTPS-сертификат Let's Encrypt.
| Компонент | Назначение |
|---|---|
| Docker | Запуск приложения в контейнере. |
| Node.js и Express | Серверная часть приложения и обработка API-запросов. |
| SQLite | Хранение данных об оборудовании. |
| Nginx | Проксирование запросов и публикация сайта. |
| Certbot | Получение и обновление HTTPS-сертификатов. |
Команды администратора
Переход в каталог проекта
cd /root/equipment-qr-system
Команда используется для перехода в папку, где находятся файлы проекта, Dockerfile, docker-compose.yml и база данных.
Запуск системы
docker compose up -d
Запускает приложение в фоновом режиме. После выполнения команды сайт становится доступен пользователям.
Остановка системы
docker compose down
Останавливает контейнер приложения. Используется при обслуживании или обновлении проекта.
Пересборка после изменения кода
docker compose down docker compose up -d --build
Применяется после изменения файлов server.js, app.js, index.html, style.css или package.json.
Просмотр запущенных контейнеров
docker ps
Показывает список запущенных контейнеров и проброшенные порты.
Просмотр логов приложения
docker logs equipment_qr_system
Позволяет проверить запуск сервера и увидеть возможные ошибки Node.js.
Проверка доступности сайта внутри сервера
curl http://localhost:3000
Проверяет, отвечает ли приложение внутри виртуальной машины.
Проверка HTTPS
curl -I https://qrscanner.tech
Показывает HTTP-заголовки и позволяет убедиться, что сайт доступен по HTTPS.
Проверка конфигурации Nginx
nginx -t
Проверяет корректность конфигурационных файлов Nginx.
Перезапуск Nginx
systemctl restart nginx
Применяет изменения в конфигурации веб-сервера.
Просмотр базы данных
sqlite3 /root/equipment-qr-system/data/equipment.db
Открывает базу данных SQLite. Внутри можно выполнить команды:
.tables .headers on .mode column SELECT * FROM equipment;
Резервное копирование проекта
cd /root tar -czf equipment-qr-system-backup.tar.gz equipment-qr-system
Создает архив проекта вместе с базой данных.
Проверка сертификатов
certbot certificates
Показывает список выпущенных HTTPS-сертификатов и срок их действия.
Структура проекта
| Файл или папка | Назначение |
|---|---|
| server.js | Серверная часть приложения, маршруты API, работа с базой данных. |
| public/index.html | Главная страница системы учета оборудования. |
| public/app.js | Клиентская логика: добавление, поиск, фильтрация, QR-коды. |
| public/item.html | Страница карточки оборудования. |
| public/style.css | Оформление интерфейса. |
| data/equipment.db | Файл базы данных SQLite. |
| docker-compose.yml | Описание запуска контейнера приложения. |
| Dockerfile | Инструкция сборки Docker-образа. |
Возможные ошибки и способы устранения
| Ошибка | Причина | Решение |
|---|---|---|
| Не работает камера | Сайт открыт без HTTPS или доступ к камере запрещен | Открыть сайт через HTTPS и разрешить доступ к камере. |
| Сайт не открывается | Контейнер приложения остановлен или ошибка Nginx | Проверить docker ps, docker logs и nginx -t. |
| Не отображается преподаватель | Нет связи преподавателя с выбранным кабинетом | Добавить связь в разделе справочников. |
| Не сохраняются данные | Ошибка базы данных или прав доступа к папке data | Проверить файл data/equipment.db и логи контейнера. |