Giter Site home page Giter Site logo

hexlet / hexlet-cv Goto Github PK

View Code? Open in Web Editor NEW
95.0 8.0 108.0 4.31 MB

Stackoverflow for Resume

Home Page: https://cv.hexlet.io

License: GNU Affero General Public License v3.0

Makefile 1.03% Ruby 70.76% JavaScript 1.79% HTML 1.23% Shell 0.33% SCSS 0.14% Slim 24.59% Procfile 0.03% Dockerfile 0.11%
hacktoberfest

hexlet-cv's Issues

поправить метатеги

description в профилях пользователей

https://cv.hexlet.io/users/:id
шаблон: [id] | Профиль пользователя [имя пользователя] | Hexlet CV

страница выборки город + технология

https://cv.hexlet.io/vacancy_filters/city-moskwa_level-junior_technology-javascript

в тегах в некоторых местах пропущены переменные

title сейчас: Вакансии для Джуниор Javascript разработчиков в городе | Hexlet CV
нужно добавить город: Вакансии для Джуниор Javascript разработчиков в городе [город] | Hexlet CV

выборка по технологии
https://cv.hexlet.io/vacancy_filters/technology-php

description сейчас: Актуальные вакансии для Php разработчиков . Работа для -программистов, подборка от редакции Hexlet CV
нужно добавить технологию: Актуальные вакансии для Php разработчиков . Работа для [технология]-программистов, подборка от редакции Hexlet CV

Не работает вход через GitHub

Как воспроизвести:

что происходит:

  • адрес меняется на https://cv.hexlet.io/users/auth/github
  • в браузере отображается Not found. Authentication passthru.
  • в консоли 404 ошибка:
    Request URL: https://cv.hexlet.io/users/auth/github Request Method: GET Status Code: 404 Not Found Remote Address: 63.32.161.232:443 Referrer Policy: strict-origin-when-cross-origin

Админка

Возможности:

  • Возможность архивировать резюме
  • Возможность архивировать комментарии
  • Бан пользователя (все резюме и комментарии пользователя будут скрыты)

Add a filtering, multiple tag system with autocomplete to Resumes.

Предлагаю добавить систему тегов к резюме, чтобы можно было осуществлять по ней поиск.
Пример с stackoverflow:
Screen Shot 2019-09-09 at 2 50 20 PM
Эта фича будет полезна юзерам, которые прежде чем писать свой вопрос, захотят посмотреть чужие резюме по тегу и возможно сразу найти ответ на свой вопрос или получить идею, что можно добавить в свое резюме.

поправить регистр в разделе вакансии

на страницах вакансий, в блоке "похожие вакансии" нужно поправить регистр у города
вот здесь https://prnt.sc/1eb5bpp
нужно сделать чтобы город был с большой буквы

пример можно увидеть здесь https://cv.hexlet.io/vacancies/11

на странице с выборкой по технологиям, можно поправить регистр в заголовке h1
https://cv.hexlet.io/vacancy_filters/technology-php

вот здесь - https://prnt.sc/1ebeawa

Нужно чтобы технология вывалилась так как она заполнена в карточке или вся в верхнем регистре, и в идеале ещё добавить дефис
чтобы получалось [технология]-разработчик

вывести новые поля для вакансий и поправить формат обряжение на сайте

это можно будет делать только после реализации этих правок #249

нужно вывести новые поля на страницах вакансий и привести отображение информации в соответствие с нашей чек-формой

Логика вывода полей
Название (h1) - [Уровень] [Заголовок] ([Тип работы]) – [Компания]
Должность: [Уровень] [Заголовок]
Тип занятости: [Тип работы]
Формат занятости: [город], [Формат занятости]
Опыт: [опыт]
Компания: [компания](название - активная ссылка из поля [сайт])
Краткая информация о компании: [Информация о компании]
Краткая информация о проекте: [Информация о проекте]
Стек технологий: [Стеки/технологии]
Задачи сотрудника: [Задачи сотрудника]
Требования: [требования]
Условия и бонусы: [Условия и бонусы]
Зарплатная вилка:
от [Зарплата от] - [Зарплата до] [Валюта] [Зарплатная вилка]
логика вывода такая:
если заполнена только [зп от] и [валюта] то: от ХХХХХ руб
если заполнена только [зп до] и [валюта] то вывести без доп слов: ХХХХХХ руб
может быть ничего не указано кроме [Зарплатная вилка], такое может быть если зп по итогам собеседования с успешным кандидатом
если заполнены все поля то получится: от ХХХХХ до ХХХХХХ руб gross
Контакты
[Имя контакта]
Телеграм: [Телеграм контакта]
Email: [Email контакта]
Телефон: [Телефон контакта]
Ссылка для связи: [Ссылка для связи]
теги: [теги со ссылками на страницы] - чтобы это всё облагородить, можно к тексту на ссылке добавить # в начале каждого тега

Пример вакансии:

Джуниор Java-разработчик (Полный день) – КРЫЖОВНИК

Должность: Джуниор Java-разработчик
Тип занятости: Полный день
Формат занятости: Москва, офис
Опыт: не требуется
Компания: КРЫЖОВНИК
Краткая информация о компании: КРЫЖОВНИК — лидера рынка информационных технологий России; эксперт в области анализа, интеллектуальной автоматизации и трансформации корпоративных бизнес-процессов.
Краткая информация о проекте:
На стажерскую программу в области разработки ПО на Java требуется Стажёр-разработчик Java. Данная стажировка - это отличная возможность не только познакомиться с разработкой enterprise-решений, но и пообщаться с ведущими специалистами в данной области и применить полученные знания на практике.
Стек технологий:
PostgreSQL · Golang · CI/CD methodologies · Kubernetes · Docker
Задачи сотрудника:

  • обучаться языку и основным фреймворкам Java, таким как Spring, Hibernate;
  • обучаться передовым frontend-технологиям: React, GraphQL и др.;
  • знакомиться с практиками разработки ПО, DevOps, Code review;
  • знакомиться с разными методологиями разработки (Scrum, Agile и др.);

Требования:

  • знание основ Java;
  • написание SQL запросов;
  • владение английским на уровне чтения технической документации.

Условия и бонусы:

  • гибкий график;
  • дмс;
  • участие в масштабных проектах по автоматизации и оптимизации бизнес-процессов;
  • возможность движения по карьерной лестнице от стажера к архитектору.

Зарплатная вилка:
от 60 000 - до 80 000 рублей net

Контакты
Станислав
e-mail: [email protected]
Telegram: https://t.me/login
телефон: 88005553535

теги: #один #два #три #тд

Add "skills" by which you can filter resumes

у HR потребность найти только те резюме, которые могут быть связаны с определенным стеком. Найти только rails разработчиков.
Можно добавить выбор заранее определенных навыков или стеков, по которым можно будет делать выборки
Варианты реализации:

  • Теги
  • Поиск

скорректировать форму добавления вакансий

нужно:
поле сайт сделать не обязательным
сделать подписи к полям ОТ и ДО - нужно добавить пояснение, так как в процессе работы начали возникать недопонимания полей, можно написать так "Оплата от"

Падает сборка при деплое в heroku

При попытке деплоя в heroлг (make deploy) билд падает с ошибкой.

Сначала упал с

-----> Installing node-v12.16.2-linux-x64
-----> Installing yarn-v1.22.4
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       yarn install v1.22.4
       [1/4] Resolving packages...
       error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`.
       info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
       Compiling...
       Compilation failed:
       yarn run v1.22.4
       info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
       
       
       error Command "webpack" not found.
       
 !
 !     Precompiling assets failed.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed

Пофиксил прогнав yarn install и закомитив yarn.lock файл. Затем упал на этапе сборки модулей

       [119] ./app/javascript/entrypoints/application.scss 562 bytes {0} [built] [failed] [1 error]
       [120] ./node_modules/bootstrap/dist/js/bootstrap.esm.js + 55 modules 237 KiB {0} [built]
             |    56 modules
           + 116 hidden modules
       
       ERROR in ./node_modules/bootstrap-icons/font/bootstrap-icons.css
       Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
       ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/dist/cjs.js):
       TypeError: this.getOptions is not a function
           at Object.loader (/tmp/build_0e5cb90e/node_modules/postcss-loader/dist/index.js:40:24)
           at /tmp/build_0e5cb90e/node_modules/webpack/lib/NormalModule.js:316:20
           at /tmp/build_0e5cb90e/node_modules/loader-runner/lib/LoaderRunner.js:367:11
           at /tmp/build_0e5cb90e/node_modules/loader-runner/lib/LoaderRunner.js:233:18
        @ ./app/javascript/entrypoints/application.js 6:0-49
        @ multi ./app/javascript/entrypoints/application.js ./app/javascript/entrypoints/application.scss
       
       ERROR in ./app/javascript/entrypoints/application.scss
       Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
       ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
       TypeError: this.getOptions is not a function
           at Object.loader (/tmp/build_0e5cb90e/node_modules/sass-loader/dist/index.js:25:24)
           at /tmp/build_0e5cb90e/node_modules/webpack/lib/NormalModule.js:316:20

Пофиксил даунгрейдом зависимости postcss-loader

     "popper.js": "^1.16.1",
-    "postcss-loader": "^6.1.1",
+    "postcss-loader": "^4.2.0",
     "prop-types": "^15.7.2",

исправить отображение комментариев из резюме в черновиках

заметил следующее
если резюме в черновике, то ссылки на комментарии к этим резюме все равно отображаются в профилях авторов комментов

вот пример
https://cv.hexlet.io/resumes/250 - закрытое резюме
профиль с комментарием https://cv.hexlet.io/users/1

вот здесь
image

нужно чтобы такие комментарии не выводились или выводились без ссылки на резюме

Hide recommendation form for guests

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

Add notifications if new comments were added to the CV

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

    state_machine :state, initial: :waiting do
      state :working
      state :finished
      state :failed
      event :work do
        transition waiting: :working
      end
      event :finish do
        transition working: :finished
      end
      event :fail do
        transition working: :failed
      end

Не нужно будет оповещать юзера, а каждом комменте, который добавили к его посту. Лучше будем высылать все комменты, которые добавили за определенный промежуток времени.

дообработать форму добавления новых вакансий

в форме добавления вакансий (https://cv.hexlet.io/account/vacancies/new) нужно обновить поля (добавить новые и скорректировать уже имеющиеся), а так же поправить логику работы и очередность полей. Ниже список правок

доработки по полям:

  • к полям “Зарплата от / до” добавить - третье поле “зарплатная вилка” с выпадающим списком (значения: gross, net, по результатам собеседования)
  • добавить после “Опыт” - строка с произвольным содержимым
  • добавить поле “Формат занятости” поле с выпадающим списком, варианты: удалённо/офис/гибридная схема
    добавить поле “Информация о компании и проекте” - текстовое поле с поддержкой форматирования и разметки Markdown
  • добавить поле “Информация о проекте” - текстовое поле с поддержкой форматирования и разметки Markdown
  • добавить поле “Стеки/технологии” - текстовая строка
  • добавить поле “Задачи сотрудника” - текстовое поле с поддержкой форматирования и разметки Markdown
  • добавить поле “Требования” - текстовое поле с поддержкой форматирования и разметки Markdown
  • переименовать после “описание” в “Условия и бонусы” - мы переработаем уже размещенные вакансии в новый формат
  • поле “Технологии” переименовать в “теги” - чтобы не создавать путаницу
  • поле “Город *” сделать обязательным
  • добавить поле “валюта” - выпадающий список, значения: руб., доллары, евро, (можно значками)

порядок полей в форме добавления:

  • Заголовок
  • Уровень
  • Опыт
  • Тип работы
  • Формат занятости
  • Город
  • Компания
  • Сайт компании
  • Стеки/технологии
  • Информация о компании
  • Информация о проекте
  • Задачи сотрудника
  • Требования
  • Условия и бонусы
  • Зарплатная вилка
  • Зарплата от
  • Зарплата до
  • Валюта
  • Имя контакта
  • Телеграм контакта
  • Email контакта
  • Телефон контакта
  • Ссылка для связи
  • Теги

Кликабельные карточки резюме в выборке

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

Stack search (filtering) for employers

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

Поправить вывод вакансий в админке

У меня вопрос по Hexlet CV. В моём админском окне всё выглядит вот так :point_down::skin-tone-2:
Это неудобно. Насколько возможно добавить поля так, чтобы:
я видела компанию, которая разметила вакансию.
Компания мне нужна для более быстрого поиска, если что-то надо уточнить, или удалить.
должность заменить на имя человека

image

Режим печати для резюме

Было бы хорошо, если бы отсекалось все лишнее, когда мы хотим распечатать страницу с резюме (показывать только отформатированный текст, по структуре похожее как у hh.ru).

Либо отдельной печатью (печать страницы), либо скачать сгенерерированный pdf

Add search form for resumes.

Предлагаю добавить строку поиска в шапку сайта. Чтобы пользователи могли искать по названию/тегам указанным в чужих резюме. Когда строка поиска будет пуста будут выводиться список всех резюме, которые выложены на обсуждение.
Screen Shot 2019-09-09 at 3 08 48 PM

Количество просмотров учитывает просмотры автора

Возможно, в данном показателе лучше не учитывать просмотры автора, так как пока пишешь, сто раз перезаходишь и смотришь, что получилось.
Если данная информация присутствует для работодателей, то логичнее исключить возможность "накрутки просмотров" самого автора. В таком случае данный показатель будет объективнее

При наличии глобально установленного yarn падает make setup

Если на машине yarn уже установлен глобально, то попытка выполнить make setup упадёт с ошибкой

/usr/bin/yarnpkg -> /usr/lib/node_modules/yarn/bin/yarn.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../lib/node_modules/yarn/bin/yarn.js
npm ERR! dest /usr/bin/yarn
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../lib/node_modules/yarn/bin/yarn.js' -> '/usr/bin/yarn'
npm ERR! File exists: /usr/bin/yarn

Так как в setup есть

npm install --global yarn

Проверял на Ubuntu 20.04 LTS через WSL на Windows 10

SEO ошибки на сайте

Ребята, привет. Список SEO-ошибок по результатам проверки сайта:
— дублирующиеся тайтлы https://drive.google.com/open?id=1ZfN5bMX3bElEOUFh_SchYOG1nEGn5WK6
— дублирующийся контент https://drive.google.com/open?id=19jAQlRKv9AIUSICwCyxuRnqVRT5RJ7my
— нет карты сайта по URL https://cv.hexlet.io/sitemap.xml
— некэшированные файлы JS и CSS https://drive.google.com/open?id=1PEndlCXirIXqfmuDR9hUoKmUQQHZF83g
— страницы без метаописаний https://drive.google.com/open?id=1PuN6_sNJIi019hHfvsFdxGKg_j3vuZzR
— страницы без заголовка h1 https://drive.google.com/open?id=1Yjp6dzqZkphPYuGM7GKo4ERYYtFWR5Eo
— низкое соотношение текста и HTML https://drive.google.com/open?id=1V9bAxBM-bA2ZSZqRb_0K-Ah8zHwFW73Z
— мало текста на странице https://drive.google.com/open?id=1c7uf04ThhJ3hplOkk6twQv76QfmC28J9
— Битые внешние ссылки https://drive.google.com/open?id=1yY8j2k8q2ynNyLk39UuEh-YZqzZ424Or
— временные редиректы (нужны постоянные) https://drive.google.com/open?id=1VEw-eiPUCCjQjSFoeHXv262gsq4uRrjQ

Make page number substitution in tags for pagination

у нас индексируемая пагинация и нужно уникализировать теги чтобы такие страницы не дублировали первые страницы

сделать это можно следующим образом

если в адресе страницы есть параметр ?page=, то в теги title и description подставлять "Cтраница [номер страницы] - "

получается следующие шаблоны:
title: Cтраница [номер страницы] - [title первой страницы]
description: Cтраница [номер страницы] - [description первой страницы]

Важно:
подстановка должна быть именно в начало тега

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

примеры страниц где может быть пагинация
главная - https://cv.hexlet.io/?page=2
вакансии - https://cv.hexlet.io/vacancies?page=2
теги в вакансиях - https://cv.hexlet.io/vacancy_filters/technology-rest?page=2

Month names are in the genitive case

Месяцы в периодах работы/обучения представлены в родительном падеже: мая, июня, июля.

мая 2008 - июня 2009

Нужен именительный падеж: май, июнь, июль.

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

05 февр., 23:02

Можно указывать эти даты в формате dd.mm.yy.

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.