# Инвентаризация (ESPD) Кроссплатформенное приложение для инвентаризации. > Использованные библиотеки/фреймворки: > - [JavaFX](https://openjfx.io) - фреймворк для создания UI-приложений > - [oshi](https://github.com/oshi/oshi) - получение информации об аппаратной и системной части компьютера. > - [JSpeedTest](https://github.com/bertrandmartel/speed-test-lib) - замеры скорости интернета > Для запуска приложения потребуется установить **JDK 17 или выше**. Скачать > можно [здесь](https://www.oracle.com/java/technologies/downloads/). > Для формирования приложения воспользуйтесь командой `mvn clean package` ## Содержание формы - **Код учреждения** (int) - вводится пользователем; - **Наименование ОО** (string) - после нахождения в БД при помощи кода ОО автоматически заполняется; - **Номер здания** (int) - выбирается элемент в списке; - **Адрес** (string) - отображается после выбора элемента в списке номеров зданий; - **Помещение** (string) - выбирается элемент в списке; - **Label с GIF** - показ того, что сейчас происходит в форме - **Отправить** - активируется при наличии всех заполненных полей; - **Статус необходимости обновить приложение**. > ### После нажатия кнопки "сохранить" собирается следующее > - данные из полей в форме; > - конфигурация компьютера с учетом списка выше; > - Замеры скорости интернета >> При каких-либо ошибках `output.log` отправляется на сервер. > ### Перед закрытием приложения > - **Дата начала работы (datetime)** - выводится после открытия приложения; > - **Дата окончания работы (datetime)** - высчитывается перед закрытием приложения. ### Список отправляемой конфигурации при успешном заполнении формы и нажатии "Отправить" - **Операционная система** (справочник) - Windows, Linux или MACos; - **Версия операционной системы** (string) - 11.2, 18.03 и т.д. - **Устройство** (справочник) - ноутбук или ПК; - **Модель процессора** (string) - Название модели процессора; - **Частота процессора** (float) - измеряется в ГГц; - **Объем ОЗУ** (float) - 0.5, если 512МБ, 16 - если 16ГБ; - **Диски** (список): - **Тип диска** - SSD / HDD / Nvm.2 (_справочник_) - **Модель диска** - название модели диска; - **Скорость интернета** (String) - в какой форме? > Нужно учесть пару моментов при реализации: > 1. защиту от **посторонних пользователей**; > 2. автоматический запуск приложения **при запуске ОС**; > 3. автоматическое заполнение поля окончания работы и сохранение **при выключении компьютера**; > 4. как будет обновляться приложение - **вручную ссылкой с проверкой актуальности версии или автоматическое обновление приложения**; > 5. Попробовать вложить JDK в проект для избежания лишних установок для пользователя.