Тестовое задание, выполненная соответственно нижеперечисленным требованиям. Стек: C++, Qt, MySQL.
- Номер пункта со звёздочкой, например 1. [*] text или 2. [*] text, воспринимать как обязательное требование
- [*]Фреймворк Qt5 ( Qt 5.9.X -> 5.9.8 ) & qmake
- [*]Среда разработки - Qt Creator
- [*]Стандарт языка С++11 / С++14
- [*]Компиляторы: windows( msvc15 ), linux(g++)
- [*]Сервер бд - MySQL
Требование к написанию кода:\
- [*]Придерживаться паттерну MVC
- Наименование переменных в стиле - camelCase
- Наименование членов класса в стиле - m_camelCase
- [*]UI - построен внутри кода, использование файлов file.ui в проекте не допускается
- Для виджетов, которые отображают данные реализовать кастомный делегат
- [*]На выходе ожидаем видеть исполняемый файл
Компания занимается разработкой различной электроники.
У каждого устройства есть свой процесс изготовления ( тех. процесс ),
например: пайка, проверка, упаковка и тд.
Небоходимо реализовать графическое приложение, которое позволяет настраивать производственное хранилище для каждого типа устройства.
Требуемый функционал ПО:
- Работа с БД
1.1. Подключение к БД (mysql) - будьте внимательны, если соединение к БД будет долгое время в простое,
может сработать таймаут подключения.
1.2. Отправка простых запросов (select, insert, update) - delete запросы не одобряются - Отображение существующих устройств в БД
- Возможность настроить производственное хранилище
3.1. Отображение списка операций устройства
3.2. Отображение списка файлов на выбранной операции (с разделением на вкладки "Инструкции" и "Прошивки")
3.3. Выбор файла и предача данных в БД
3.3.1. Использовать фильтр для файлов (в зависимости от актуальной вкладки файлов из п.3.2)
Если это "Инструкции" - то ограничимся PDF файлами, если это "Прошивки", то *.hex | *.bin
Основная форма:
- Ожидаем увидеть список заведённых устройств в БД
- Кнопка редактирования производственного хранилища
Форма редактирования / настройки файлового хранилища Первая часть (слева):
- Наименование изделия
- [*]Список операций тех. процесса [ListView]
Вторая часть(остальное пространство)
- [*]Список файлов для выбранной операции, с разделением
на вкладки (инструкции, прошивки) [view] - выбор файла с локального пк (приветствуется фильтрация по расширениям для вкладки "прошивка")
Развернуть базу данных, используя mysql server( рекомендуется использовать виртуальную машину, чтобы не устанавливать на
основную ОС сервер, который нужен только для тестового задания ).
Что планируем видеть в структуре БД:
- Внятное и простое наименование БД
- Внятные и простые наименования таблиц (устройства, операции, производственное хранилище)
- Простые и "нераздутые" таблицы 1.
Реализовать необходимые структуры данных передаваемых в форму, например:
- структура описывающая устройство (например, уникальный номер, наименование и тд)
- структура описывающая список операций тех. процесса устройства
- структура описывающая файл ( с привязками к устройству и операции )
- или любая другая структура
Созданный проект необходимо выложить на свой публичный git репозиторий.
Последний коммит должен содержать комментарий, по которому можно понять, что на этом этапе задание было выполнено,
например "Задание выполнено", если аналогичного коммита не существует, задание считается не завершенным и
обратной связи не будет. Последующие комиты(после финального) не будут учитываться.
Проверяться задание будет на linux(ubuntu 18), но в репозиторие должен быть каталог "deploy" для windows.
Под деплоем понимается portable версия приложения.
Уведомить HR а, о том, что задание было выполнено и скинуть ссылку на репозиторий.
!Очень важно!
Необходимо сделать полный дамп БД (структуры и данных таблиц) и положить в папку deploy.
Footnotes
-
Пример таблицы "Устройства":
Наименование - device_types
Колонки:
type (int, unsigned, auto increment, primary key)
name (varchar 100)
comment (varchar 254) ↩