Уже много лет на большей части земного шара основным средством поиска работы для заработка являются специализированные веб-приложения. С точки зрения нанимателей - это средство поиска свободной рабочей силы нужного качества, которую можно покупать за деньги. Людям зарождающейся HB-культуры понадобятся аналогичные веб-приложения для поиска разнообразной деятельности в качестве источника для саморазвития.
Первостепенной потребностью исполнителя будет выступать его потребность в развивающих заданиях, исполнение которых кому-то будет приносить реальную пользу. Юридическая и финансовая стороны дела выносятся за рамки веб-приложения. Кому-то в определенной ситуации подойдет задача, выполняемая без материального вознаграждения, волонтерская. Кто-то устроится на работу, оплачиваемую в полной мере по стоимости рабочей силы. Для студентов это может быть оплачиваемая практика.
Разработка и развёртывание прототипа WEB-приложения
Действующий прототип такого веб-приложения был разработан нами на Java 8, JavaScript, HTML, CSS без использования сложных библиотек или фреймворков и под названием CTFinder (Creative Tasks Finder, Поисковик творческих задач) развернут на движке Google App Engine в облаке Google Cloud в 2018 году.
Так как его круглосуточная работа потребовала бы денежных расходов, после отладки CTFinder был остановлен, но до 2024 года практически в любой момент мог быть запущен нами на время по требованию для ознакомления с ним любых заинтересованных лиц. Для этого достаточно было отправить сообщение с просьбой о запуске. После получения ответа о выполнении запуска веб-приложение становилось доступным в течение нескольких часов по адресу: https://creativetfinder.appspot.com/.
Весной 2024 года истёк срок действия пластиковой карты, привязанной к соответствующей учётной записи Google. Вход на страницу управления проектом CTFinder в разделе App Engine Google Cloud Console стал невозможен. Выпустить и привязать новую карту мы не можем, так как находимся на территории России, где банки не выпускают полноценные карты стандартов "Visa / Master Card", а карты российского стандарта "Мир" Google не принимает. В связи с этим запуск приложения для демонстрации сейчас невозможен даже на время.
Внешний вид и возможности прототипа
Список демонстрационных задач можно было увидеть в разделе Find/Искать, выбрав начальную дату фильтра 18-08-2018.
В текущей версии приложения реализован ряд требований, достаточный для его полноценного использования:
- навигация в стиле Single Page Application (SPA) - одностраничное приложение с загрузкой разделов по мере необходимости, переходами между ними без перезагрузки вкладки и отрисовкой на клиенте (в браузере) с использованием шаблонизатора Hogan.js и css-каркаса Materialize;
- неаутентифицированным пользователям доступны панель навигации, начальный раздел "Главная”, раздел "О сервисе” и переключатель локалей статического текстового содержимого (английский или русский);
- раздел "Главная” содержит навигационные элементы и краткое описание назначения сервиса;
- раздел "О сервисе” содержит два набора слайдов - примеры историй использования сервиса, краткое текстовое описание основ HB-культуры, для определенных задач которой разработан сервис, и сведения об участниках основания сервиса;
- первый набор слайдов демонстрирует историю поиска студентом реальной задачи в качестве темы для дипломного проекта. С другой стороны, есть организация, готовая предложить практическую задачу начинающему исполнителю. Представители организации публикуют объявление. Его находит студент и становится исполнителем, принося реальную пользу организации, а впоследствии - ее клиентам, и получая при этом возможность полноценного саморазвития в соответствующем направлении, получения диплома, подкрепленного реальной практикой, и начинает формировать привлекательное портфолио;
- второй набор слайдов демонстрирует историю кооперации двух человек, когда каждому из них необходимо поработать над проектом, требующим наличия нескольких специализаций, сделав при этом вклад в него в соответствии с текущим направлением своего развития. Например, один из участников в данный момент осваивает разработку ПО, другой - оформление пользовательского интерфейса ПО. В результате их совместной работы получится единый полноценный внешний продукт. При этом каждый из его создателей получит свою долю развития в нужном направлении;
- после аутентификации при помощи существующей учетной записи Google пользователю становятся доступными разделы для действий в роли предоставителя работ и/или исполнителя, ищущего развивающие задачи;
- предоставители публикуют объявления о содержании предлагаемых работ (например, "срочно выехать на место чрезвычайной ситуации, оказать пострадавшим первую медицинскую помощь и принять участие в их эвакуации” или "разработать мобильное приложение складского учета со считыванием штрих-кодов” или "разработать проект модернизации автоматики металлообрабатывающего цеха” и так далее) при помощи формы в разделе для предоставителей "Предложить”, содержащей элементы ввода для заголовка задачи, ее текстового описания, выбора категории, указания страны и города (внесенные ранее названия стран и городов запоминаются в хранилище данных Google DataStore и затем используются при автодополнении ввода, причем города привязываются к указанным с ними странам), указания количества вакантных мест, установки желаемых дат начала и окончания выполнения, выгрузки изображения-обложки карточки задачи;
- также в разделе "Предложить” отображается список задач, ранее опубликованных пользователем, с автодогрузкой при прокрутке вниз, если весь список не помещается по высоте на одной странице, с двумя полями выбора дат, расположенными сверху над списком, для фильтрации элементов списка по временному диапазону и с панелью кнопок редактирования "Изменить”, "Удаление”, "Состояние”, расположенной внизу под списком;
- в разделе для исполнителей "Искать” есть постоянно отображаемые
а) поле ввода для поиска задач по заголовку, включая частичные совпадения, и
б) поля выбора дат для фильтрации результатов по временному диапазону,
а также отображающаяся по требованию (кликом по пиктограмме "шестерня”) боковая панель фильтрации и сортировки с блоками
а) списка разновидностей задач (перевод, общественные науки, программирование, образование, промышленность, естественные науки, дизайн, проектирование техники, природа, помощь животным, волонтерская помощь),
б) дополнительных параметров фильтрации («страна», «город», «количество вакантных мест»), работающим согласованно со списком разновидностей задач,
в) сортировки в прямом и обратном порядке по дате публикации, по предполагаемой длительности исполнения, по дате старта или по дате окончания;
- после получения результатов поиска с фильтрацией и сортировкой возможна бесконечная автодогрузка карточек результатов при помощи скролла вниз или кликов по пиктограмме "стрелка вниз”, если все результаты не помещаются по высоте на одной странице; - кликом по карточке задачи можно открыть окно с подробностями о ней;
- клик по кнопке "Подписаться” в окне описания задачи создает подписку на уведомления о новых задачах, публикуемых предоставителем данной задачи. Уведомления будут приходить в электронный ящик, указанный пользователем при регистрации учетной записи Google, при помощи которой он аутентифицировался в CTFinder; - клик по кнопке "Присоединиться” в окне описания задачи приводит к отправке письма со сведениями об исполнителе и о задаче в электронный ящик, указанный пользователем-предоставителем при регистрации учетной записи Google, при помощи которой он аутентифицировался в CTFinder. После этого предоставитель может связаться с потенциальным исполнителем по электронной почте;
- есть интеграция с органайзером развивающих задач MySkillsOrganizer (будет подробно описан в следующем выпуске данной подборки статей). При отправке заявки на участие в выполнении задачи потенциальным исполнителем при помощи CTFinder в его главное дерево целей и достижений в MySkillsOrganizer автоматически добавляется новый узел с заголовком и описанием задачи.
Найдя друг друга при помощи функциональности сервиса, описанной выше, предоставитель и потенциальный исполнитель развивающей задачи начинают переговоры уже без использования сервиса, и отражают на нем лишь состояние задачи. Например:
- заказ актуален;
- заказ в процессе выполнения (заказчик может дать возможность разным студентам выполнить одну и ту же работу параллельно для соревнования или командой для тренировки в кооперировании);
- заказ выполнен (в отредактированном описании может прилагаться информация об особенностях того, как он был выполнен);
- выполнение потерпело неудачу, заказ открыт для попытки повторного выполнения (с комментариями о том, что пошло не так, в отредактированном описании).
Перед началом продвижения была запланирована доработка приложения:
- разработка и применение привлекательного оформления с полной поддержкой адаптивного отображения на мобильных устройствах;
- переработка исходных кодов бэкенда с использованием Spring Boot и фронтенда - с использованием React или Vue3 для упрощения поддержки и дальнейшего развития проекта;
- программирование административной панели для добавления новых категорий, языков и для создания переводов на эти языки;
- возможность для каждого аутентифицированного пользователя посмотреть историю выполненных работ, выставлявшихся определенным предоставителем, или выполнявшихся определенным исполнителем;
- возможность для каждого исполнителя выкладывать объявления о том, по каким направлениям ему хотелось бы выполнять задания в ближайшее время, чтобы предоставитель заданий мог найти его сам.
Состояние проекта в данный момент
На основе текущей версии CTFinder один студент в 2018 году защитил свой дипломный проект по специльности "Разработка ПО".
Дальнейшее развитие и продвижение веб-приложения никого не заинтересовало, и работа над ним была прекращена.
Его исходные коды доступны по адресу: https://github.com/YuriiTrofimenko/ctfinder_1-1.git.
Любой желающий может связаться с нами и получить дополнительные сведения и доступы для возобновления работы над проектом или ответвиться от основного репозитория и развивать собственный независимый вариант.