espd-client/README.MD

55 lines
4.3 KiB
Plaintext
Raw Permalink Normal View History

2024-07-01 15:07:24 +03:00
# Инвентаризация (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 в проект для избежания лишних установок для пользователя.