Skip navigation.
Home

Обещанное.

Некоторое время тому я сформулировал некоторые мысли из серии "нужна софтинка". Пандемия имеет свои положительные стороны, в частности, можно заниматься своими проектами и писать то, что задумал.

Ну теперь несколько скриншотов и пояснений к получившемуся продукту:

Это закладка "предложения работы" (картинки кликабельны) главного окна. Дата - когда предложение внесено в систему. Название позиции, ключевые требования к позиции, страна и город, в которой эта работа, какой именно агент предложил, в каком состоянии находится позиция, насколько она привлекательна лично для меня, сколько денег дают.

Вот так позиция создается. Вы копируете письмо от агента и вставляете его в окно, после чего жмете кнопку "сканировать". Ищутся и подставляются такие вещи как город, набор требований к клиенту, данные агента и пр. Практически все можно как ввести вручную, так и скопировать, выделив из текста позиции. Если агент известен, все его данные будут подставлены в соответствующие поля автоматически, ключевым параметром поиска агента является его е-мэйл. Поначалу приходится (примерно первый десяток позиций) пощелкать мышью), но позже вылавливается 90% требований к кандидату автоматически.

Позже позицию можно подредактировать. Некоторые параметры (привлекательность, рейт) из главной таблицы, некоторые - из вот этого диалогового окна ниже. Я ни разу не встречал ситуаций, когда позиция переходила от одного агента к другому, поэтому информация об агенте в этом режиме неизменяема. Можно тут же, вызвав внешний почтовый клиент, отправить агенту письмо. К описанию позиции можно дописать свой комментарий, который хранится и редактируется отдельно от описания позиции. Практика показывает, что это часто бывает необходимым.

Позицию можно удалить, при этом данные агента и набор требований к кандидату не удаляются из системы, только сама позиция.

Закладка со списком агентов. Агентов можно сортировать по именам и агенствам. Когда на предыдущей закладке с предложениями работы вы перемещаетесь по списку, в этой таблице происходит автоматическое перемещение на соответствующего агента. Двойной клик по имени агента или выбор соответствующего пункта меню позволяют изменить данные агента, клик в е-мэйл - отправить ему письмо, клик в профиль социальной сети - посмотреть его досье в XING или Linkedin. В режиме редактирования агента можно добавить комментарии, они будут подсвечиваться в закладке "предложения работы" если вы наведете мышь на имя агента.

У агента нельзя сменить агенство. Смысл в том, что если агент уходит в новое агенство, то ему дается новый е-мэйл. Это во-первых. Во-вторых, юридические отношения у контрактника не с агентом, а с агенством, поэтому если агент ушел в другое агенство, он создается заново, это другой человек для системы, у него другая репутация, контракты и пр.

В системе можно просто создавать агентов без привязки к позициям (наоборот - нельзя). В принципе позиций и агенств не так чтобы запредельно много, через некоторое время агент вылавливается очень быстро (равно как и список требований к позиции).

Простенький редактор стран. Название страны можно поменять, если вдруг захотелось.

Интерфейс сделан минималистичным, только вещи по делу и минимум красот. Работает программа с кешированными из БД данными, поэтому происходит все практически мгновенно.

Где это взять и как это поставить.

Взять это можно тут.

После этого надо:

1. Скомпиллировать.
2. Посмотреть фал contractor.cfg и поправить его в соответствии со своими настройками БД. (я не тестировал эту штуку с Ораклом, но по идее должна работать точно так же).
3. Выполнить скрипт create_database_and_tables.sql, изменив имя базы данных (если есть желание) и поменяв инструкции "INSERT INTO" на желаемые: таким образом вы можете определить для себя желаемые статусы предложений о работе.

Что я планирую еще сделать:

1. Если найдется хотя бы пара человек, которым это будет надо, то я сделаю экспорт и, соответственно, импорт агентов и предложений о работе. Можно будет меняться и тем и тем, пересылая друг другу агентов и предложения о работе. Можно сделать автомат рассылки: появился новый агент - он отсылается тем, кто выразил желание подписаться на такой сервис.

2. Сделать быстрый поиск по агентам в таблице.

4. Любое интересное и в принципе выполнимое пожелание читательской аудитории.

5. Я думал создать отдельную подсистему управления резюме, но поразмыслив, не стал этого делать. У меня всего две версии резюме, запутаться сложно, поэтому смысла особого я в этом не увидел.

Короче, "пацан гезагт - пацан гемахт" (с) сын моего друга, пользуйтесь, кому надо.

Первый коммит в гит был сделан 10/03, т.е. на все про все ушло две недели в фоновом режиме. Я постоянно чего-то добавляю и улучшаю, делая минимум пару коммитов в день. Если заметите какие баги - пишите письма, исправлю.

Багрепорты

Багрепорты куда слать? ))

У функции bool Configuration::getAttractivity(QSettings *ptr_settings) нет явного возвращения значения после проверки всех условий. В итоге неявно возвращается 0 и программа не стартует.
Так же не помешало бы какое-то логгирование/сообщение, о том что программа не стартует и откуда она вывалилась (цепочка проверок в main). Иначе для пользователя это будет просто незапускающаяся программа.

Прямо сюда

Прямо сюда слать. Спасибо, пофиксил.

1. Установить Qt

1. Установить Qt версии не ниже 5.11.2, скачать проект и собрать его.
2. Что ты имеешь ввиду? Размеры форм? Не все статические, есть формы переменного размера. Или ты про то, что в ней отображается? Можно было бы сделать вариант "что показывать в форме", но я такое делаю тогда, когда надо очень дохрена выводить в таблицу, и у пользователя есть выбор, что именно показать. В данном случае все влезает в одну форму.
3. В репозитории два бранча - master и develop, я не счел эту задачу настолько сложной, чтобы делать много бранчей. Кода немного.

1. Имеется в

1. Имеется в виду ран-тайм? У тебя основная платформа deb или rpm?

2. Я имею в виду динамический набор параметров в форме. Например, в какой-то момент ты захочешь добавить агенту параметр "размер бюста" или "цвет глаз", при этом для агентов мужеского полу их не показывать, а показывать, например, "размер ботинка". Можно-ли так сделать, не внося изменеия в код?

3. Нет ничего более постоянного, чем временные решения :)
GIT заточен под вполне определённую технологию работы с кодом, юзать его в режиме CVS можно, но зачем? К тебе завтра набежит толпа добровольцев-майнтейнеров и придётся на лету организовывать их работу.

1. Основная

1. Основная платформа у меня deb, но я не считаю правильным делать готовый deb-файл как установочный пакет. Эта хреновина ориентирована на программистов, собрать проект самому сложностей не представляет.

2. Нет, динамического набора параметров нет. Я включил в эту штуку только то, с чем реально приходилось иметь дело и что мне было нужно для работы с агентами и позициями. Использовать динамический набор параметров имеет смысл (с моей точки зрения) когда заранее непонятно, какими именно свойствами будет обладать конкретная сущность, или вариаций базовой сущности настолько много, что умаешься под каждую из них переделывать код снова и снова. В этом случае - да, NOSQL база данных, гибкие запросы, списки свойств и пр. счастье. С агентами - ты что 15 лет тому писал письма и звонил, что через 15 лет будешь писать письма и звонить.

3. Не набежит. Я не настолько популярен в ширнармассах. :)

1. Я не об этом.

1. Я не об этом. QT-шные девелоперские компоненты распиханы на разных системах в разные пакеты, причём группами. Из названия пакета определить, что внутри него, невозможно. Тот ещё квест.

Реальные

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

1. QtCrypt. Модуль очень долго был зависим от библиотеки, которую нахрен перестали разрабатывать от слова вообще (я имею ввиду не к ночи будь помянутую QCA). У меня никак не дойдут руки написать свой нормальный враппер к open-ssl библиотеке и пользоваться им. Кстати. Спасибо, что напомнил, надо будет заняться на досуге.

2. QtSql. В некоторых поставках нет самого собранного модуля и есть только исходники, т.е. модуль надо собрать самостоятельно, либо, что тоже бывает, модуль требует определенную версию библиотеки libsqlmysql.so и никакую другую версию (идущую по умолчанию с системой) жрать не желает. Сейчас, например, оно хочет 18-ю версию, (Qt 5.11.2) а в комплекте поставки Линуха уже давно шла 21-я. Это решаемо, но нервирует. Вторая проблема - этот модуль не поддерживает sha2-авторизацию к MySql последних версий, поэтому приходится ее принудительно выключать на сервере БД.

Как это

Как это собирать?
А чего параметры форм статические?
В репозитории бренчей на отдельные задачи не видно. Одним куском коммитил?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.