Giter Club home page Giter Club logo

naumen.scala.practice.2022.autumn's Introduction


В рамках работы предстоит создать сервис, целью которого является агрегация вакансий ИТ направления, которые нужно получать от стороннего сервиса hh.ru, а так же формирование рест апи для личного кабинета, с помощью которого можно оперативно отсматривать предложения по работе.


Предполагается разработка состоящая из двух этапов:


1. Разработка скелета сервиса, интеграция с hh.ru.
Используемые технологии: Play, slick, postgresql (см. build.sbt).
Для успешного выполнения пункта необходимо создать функционал для загрузки вакансий из hh.ru.
Нужно создать рест, пройдя по которому можно осуществить загрузку данных.
Предусмотреть загрузку по нужным тегам и городу.
Вакансия должна будет содержать следующие данные: заголовок, требования, предложение, зарплата(при наличии в вакансии), ссылка на вакансию.
Реализовать шедуллер.


1.1. Создание необходимых структур в БД (базовый пример model.db.JobTable).
Отталкиваясь от требований хранения данных (заголовок, требования, предложение, зарплата(при наличии в вакансии), ссылка на вакансию),
необходимо реализовать структуру таблиц в БД (посредством play-slick-evolutions https://www.playframework.com/documentation/2.8.x/Evolutions) и соответствующие DTO в коде, связать таблицы и сущности.
1.2. Интеграция с существующим сервисом по хранению вакансий hh.ru с целью агрегации данных от стороннего сервиса на стороне нашего приложения.
API сервиса hh.ru описан тут https://github.com/hhru/api. Необходимо использовать только ту часть, которая не требует авторизации.
Простое и понятное руководство можно посмотреть на хабре https://habr.com/ru/company/hh/blog/303168/.
Пример запроса, который нам может быть полезен https://api.hh.ru/vacancies?text=java&area=1 .
Необходимо реализовать контроллер, который отправляет http-запросы, содержащие ключевое слово вакансии (text=java например) и код локации (area=1 например) в hh.ru и получает http-ответ, из которого извлекает структуры необходимых данных по вакансиям, которые сохраняются в БД нашего сервиса.
Необходимая структура данных (из примера https://api.hh.ru/vacancies?text=java&area=1):
[1] заголовок=name (например, "Java developer (команда API)"),
[2] требования=requirement (например, "Знание основных алгоритмов и структур данных"),
[3] предложение=responsibility (например, "Развитие и поддержка известного сервиса"),
[4] зарплата=salary (например, {"from": 40000, "to": null, "currency": "RUR", "gross": false}),
[5] ссылка на вакансию=alternate_url (например, https://ekaterinburg.hh.ru/vacancy/52082133).
Результаты необходимо хранить в БД в разрезе "города" и "ключевого слова" (например, "scala" или "java"), для сопоставления названий городов с кодами необходимо использовать справочник https://github.com/hhru/api/blob/master/docs/areas.md , который также должен быть запрошен в нашем контроллере.
1.3. Предусмотреть исключение дублирования вакансий при записи в БД.
1.4. Реализовать шедулер, который в соответствии с параметрами конфига приложения будет запускаться в указанное время.
В конфиге приложения необходимо добавить параметры для шедуллера тех регионов и ключевых слов, которые он должен обработать.
Шедуллер должен запрашивать вакансии для всех регионов по всем ключевым словам, которые указаны в конфиге приложения.


2. Информация будет доступна с 25-го ноября.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.