Skip to content

eruzavin/manufacturing_storage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Что это

Тестовое задание, выполненная соответственно нижеперечисленным требованиям. Стек: C++, Qt, MySQL.

Сокращения

  • Номер пункта со звёздочкой, например 1. [*] text или 2. [*] text, воспринимать как обязательное требование

Требование к сборке

  1. [*]Фреймворк Qt5 ( Qt 5.9.X -> 5.9.8 ) & qmake
  2. [*]Среда разработки - Qt Creator
  3. [*]Стандарт языка С++11 / С++14
  4. [*]Компиляторы: windows( msvc15 ), linux(g++)
  5. [*]Сервер бд - MySQL

Требование к написанию кода:\

  1. [*]Придерживаться паттерну MVC
  2. Наименование переменных в стиле - camelCase
  3. Наименование членов класса в стиле - m_camelCase
  4. [*]UI - построен внутри кода, использование файлов file.ui в проекте не допускается
  5. Для виджетов, которые отображают данные реализовать кастомный делегат
  6. [*]На выходе ожидаем видеть исполняемый файл

Задание

Введение

Компания занимается разработкой различной электроники.
У каждого устройства есть свой процесс изготовления ( тех. процесс ),
например: пайка, проверка, упаковка и тд.

Описание задачи

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

  1. Работа с БД
    1.1. Подключение к БД (mysql) - будьте внимательны, если соединение к БД будет долгое время в простое,
    может сработать таймаут подключения.
    1.2. Отправка простых запросов (select, insert, update) - delete запросы не одобряются
  2. Отображение существующих устройств в БД
  3. Возможность настроить производственное хранилище
    3.1. Отображение списка операций устройства
    3.2. Отображение списка файлов на выбранной операции (с разделением на вкладки "Инструкции" и "Прошивки")
    3.3. Выбор файла и предача данных в БД
    3.3.1. Использовать фильтр для файлов (в зависимости от актуальной вкладки файлов из п.3.2)
    Если это "Инструкции" - то ограничимся PDF файлами, если это "Прошивки", то *.hex | *.bin

Описание интерфейса (краткое)

Основная форма:

  • Ожидаем увидеть список заведённых устройств в БД
  • Кнопка редактирования производственного хранилища

Форма редактирования / настройки файлового хранилища Первая часть (слева):

  1. Наименование изделия
  2. [*]Список операций тех. процесса [ListView]

Вторая часть(остальное пространство)

  1. [*]Список файлов для выбранной операции, с разделением
    на вкладки (инструкции, прошивки) [view]
  2. выбор файла с локального пк (приветствуется фильтрация по расширениям для вкладки "прошивка")

Данные

Развернуть базу данных, используя mysql server( рекомендуется использовать виртуальную машину, чтобы не устанавливать на
основную ОС сервер, который нужен только для тестового задания ). Что планируем видеть в структуре БД:

  1. Внятное и простое наименование БД
  2. Внятные и простые наименования таблиц (устройства, операции, производственное хранилище)
  3. Простые и "нераздутые" таблицы 1.

Реализовать необходимые структуры данных передаваемых в форму, например:

  • структура описывающая устройство (например, уникальный номер, наименование и тд)
  • структура описывающая список операций тех. процесса устройства
  • структура описывающая файл ( с привязками к устройству и операции )
  • или любая другая структура

Проверка задания

Созданный проект необходимо выложить на свой публичный git репозиторий.
Последний коммит должен содержать комментарий, по которому можно понять, что на этом этапе задание было выполнено,
например "Задание выполнено", если аналогичного коммита не существует, задание считается не завершенным и
обратной связи не будет. Последующие комиты(после финального) не будут учитываться.
Проверяться задание будет на linux(ubuntu 18), но в репозиторие должен быть каталог "deploy" для windows.
Под деплоем понимается portable версия приложения.
Уведомить HR а, о том, что задание было выполнено и скинуть ссылку на репозиторий.

!Очень важно!
Необходимо сделать полный дамп БД (структуры и данных таблиц) и положить в папку deploy.

Footnotes

  1. Пример таблицы "Устройства":
    Наименование - device_types
    Колонки:
    type (int, unsigned, auto increment, primary key)
    name (varchar 100)
    comment (varchar 254)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published