Резюме, Алексей Булаев
Проект резюме
Проблема:
- резюме разработчика перегружено технологиями
- не всегда сразу понятно сколько кандидат работал с той или инной технологией
- так же не всегда понятно на каком проекте использовалась та или инная технология
Решение: сайт интерактивного резюме CurVit (сокращение от Curriculum Vitae)
килер-фича - облако тэгов при выборе которого раскрывается диаграмма навыков на временной шкале, каждый следующий выбранный тэг навыка добавляется к диаграмме (цвета тэгов различны) при этом в блоке опыта, блоке проектов и в блоке образования подсвечиваются данные строки с тэгом, чтобы рекрутер сразу мог понять, как использовалась данная технология в работе
Будет реализовано в рамках курса Otus Kotlin:
- Сервис просмотра резюме
- Сервис создания / редактирования / удаления резюме
GET /resumes/{resume_id}
где resume_id
– идентификатор резюме.
Успешный ответ приходит с кодом 200 OK и содержит тело:
{ "id": "12345678901234567890123456789012abcdef", "last_name": "Фамилия", "first_name": "Имя", "middle_name": "Отчество", "age": 36, "birth_date": "1980-05-08", "gender": { "id": "male", "name": "Мужской" }, "area": { "id": "1", "name": "Москва" }, "contact": [ { "id": "phone", "preferred": false, "value": "+71234567890" }, { "id": "mail", "preferred": false, "value": "[email protected]" }, { "id": "telegram", "preferred": true, "value": "@NickName" }, { "id": "git", "preferred": false, "value": "https://github.com/AlekseyBulaev" }, { "id": "linkedIn", "preferred": false, "value": "https://linkedIn.com/AlekseyBulaev" }, ], "experience": [ { "experience_type": "WORK" "name": "Название работодателя", "url": "http://www.rbc.ru", "position": "Должность", "start": "2005-04-01", "end": "2013-01-01", "skill_duties": [ { "id": "JAVA", "description": "описание задач и достижений" } ] "description": "Описание деятельности в компании" }, { "experience_type": "PET_PROJECT" "name": "Название проекта", "url": "http://www.rbc.ru", "industries": null, "position": null, "start": "2005-04-01", "end": "2013-01-01", "skill_duties": [ { "id": "KAFKA", "description": "описание задач и достижений" } ] "description": "Описание проекта" }, { "experience_type": "EDUCATION" "name": "Название учебного заведения", "url": "http://www.rbc.ru", "industries": null, "position": null, "start": "2005-04-01", "end": "2013-01-01", "skill_duties": null "description": "специализация" } ], "total_experience": { "months": 94 } }
Имя | Тип | Описание |
---|---|---|
id | string | Идентификатор резюме. |
last_name | string или null | Фамилия. |
first_name | string или null | Имя. |
middle_name | string или null | Отчество. |
age | number или null | Возраст. |
birth_date | string или null | День рождения (в формате ГГГГ-ММ-ДД). |
gender | string или null | Пол. Элемент справочника gender. |
area | string или null | Город проживания. Элемент справочника areas. |
contact | array | Список контактов соискателя. |
experience | array | описание опыта |
total_experience | number или null | Общий опыт работы. |
Объект с именем и идентификатором
Имя | Тип | Описание |
---|---|---|
id | string | Идентификатор поля. |
name | string | Название поля. |
Объект contact
Имя | Тип | Описание |
---|---|---|
id | string | Тип контакта. Элемент справочника preferred_contact_type. |
value | string | Значение контакта. Для телефона – объект, для email — строка. |
preferred | boolean | Является ли данный способ связи предпочитаемым. |
Объект experience
Имя | Тип | Описание |
---|---|---|
experience_type | object | Тип компетенции. Элемент справочника experience_type. |
name | string или null | Название работодателя/проекта/учебного заведения |
url | String или null | ссылка на организацию/проект/учебное заведение |
position | String или null | должность |
start | String | Начало работы (дата в формате ГГГГ-ММ-ДД). |
end | String | Окончание работы (дата в формате ГГГГ-ММ-ДД). |
skill_duties | array | перечисление задач.достижений по каждому навыку |
description | String или null | Обязанности, функции, достижения. |
Объект skill_duties
Имя | Тип | Описание |
---|---|---|
id | object | Тип компетенции. Элемент справочника skill_duties_type. |
description | String | Описание достижений, задач, опыта с данной компетенцией. |
POST /resumes
— добавление резюме id == null.
POST /resumes
- редактирование существующего id != null. В качестве тела запроса используется json в том же формате,
что отдается при GET запросе. При этом для полей с данными справочников из передаваемой JSON-структуры используются
только id передаваемых данных.
###Ответ
Успешный ответ на создание резюме приходит с кодом 201 Created, в заголовке Location при этом будет url созданного резюме:
Location: /resumes/0123456789abcdef
Успешный ответ на обновление резюме приходит с кодом 204 No Content и не содержит тела. Ошибки
400 Bad Request - ошибка в полях резюме. Дополнительно придет расширенная информация по ошибкам.
404 Not Found – резюме не найдено или недоступно текущему пользователю (при обновлении)
DELETE /resumes/{resume_id}
где resume_id
– идентификатор резюме.
Резюме удаляется без возможности восстановления.
###Ответ
В случае успешного удаления вернётся код ответа 204 No Content без тела.
Ошибки
404 Not Found – резюме не найдено или недоступно текущему пользователю.