Coder Social home page Coder Social logo

davydovanton / rubyjobs.dev Goto Github PK

View Code? Open in Web Editor NEW
78.0 11.0 26.0 735 KB

Job boards for Russian-speaking Ruby developers

Home Page: https://rubyjobs.dev

License: GNU General Public License v3.0

Ruby 90.51% Dockerfile 0.17% SCSS 1.51% Slim 7.81%

rubyjobs.dev's Introduction

RubyJobs.dev

CircleCI

Job boards for Russian-speaking Ruby developers

For more information read this

Links

Contributing

Please, read CONTRIBUTING.md file.

Copyright

Released under GNU GENERAL PUBLIC License

Copyright © 2016-2020 Anton Davydov.

rubyjobs.dev's People

Contributors

arbox avatar asusikov avatar davydovanton avatar dependabot[bot] avatar dmytro-spivakov avatar georgegorbanev avatar gildedhonour avatar gruz0 avatar knyazann avatar lex111 avatar mrlewap avatar nulevaya avatar pavlitsky avatar rubywarlock avatar yegorov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rubyjobs.dev's Issues

Support salaries with spaces

Describe the bug

When there's a string with a space, i.e. 120 000, it turns into 120 value.

How to reproduce

Create/edit a vacancy and put 120 000 into a salary field.

Expected behavior

I expect either 120000 as a numerical value from the string 120 000 or an error that the string should contain only numerical chars. And the first option looks way more user friendly

Additional context

I think there might be both back-end improvements and additional front-end input field validation. For instance it might allow only 0-9 to put into it or validate form before submission

Collect vacancy metrics

What

We want to collect some metrics around each vacancy. Now we can collect vacancy opening value and submit button clicks.

Why

It will be useful for HRs to see this statistic and can improve popularity of site in general.

Important

Please, use 3 PRs for this issue:

  • Create a table, model and types for metric values
  • Create a operation for open metric and use it in an action
  • Create a operation for click metric and use it in an action

How

We can create a new table vacancy_metrics and associate it with vacancies (has_one). After that, create two opeations for opening and submit click metrics and call it in actions. Somethin like this:

module Web
  module Controllers
    module Vacancies
      class Show
        include Import[
          operation: 'vacancies.operations.show',
          alalitic_operation: '...'
        ]

        expose :vacancy

        def call(params)
          result = operation.call(id: params[:id])

          case result
          when Success
            alalitic_operation.call(id: params[:id])
            @vacancy = result.value!
          # ...
          end
        end
      end
    end
  end
end

Ошибка при использовании фильтров с типами

Описание ошибки:

При некорректом введении запроса фильтрации по объявлениям с конкретными типами (такой как position_type:) вылетает ошибка

Воспроизведение:

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

Ожидаемое поведение:

Отсутствие запросов или сообщение о некорректном вводе параметров

Screenshots

Ввод запроса:
Снимок экрана от 2020-07-13 21-37-15

Результат выполнения после нажатия кнопки:
Снимок экрана от 2020-07-13 21-47-54

XSS

Describe the bug

XSS в поле "фильтр" на главной странице

How to reproduce

https://rubyjobs.dev/?query=%22%3E%3Cscript%3Ealert%28%22XSS%22%29%3C%2Fscript%3E

Expected behavior

В инпуте юзера стрипается весь html шлак

Actual behavior

Инпут ломает форму и срабатывает как часть встроенного в страницу кода (XSS)

Additional context

Ну фундаментальная вещь же...

Allow to add optional tags in new vacancy form

What

We want to use tags in the future for filtering. For this we need to add ability to add it now.

IMPORTANT: this issue is just about form and adding tags, you don't need to show it

How

Just add new field in to form (tags), after that update mapper to convert string to array of strings and that's all.

Fix a problem with old vacancies

Describe the bug

We have a problem with some vacancies was created half of a year ago. It's incorrect and we need to fix it

Expected behavior

We close vacancy after 2 or 4 weeks.

Screenshots

Screenshot 2019-10-03 at 18 50 59

Добавить возможность оставлять отзывы по собеседованиям

На страинце компании (например тут: https://rubyjobs.dev/companies/101) добавить возможность оставлять отзыв на собеседование в компании. Так же, должна быть возможность посмотреть все отзывы на собеседования по ссылке /companies/:company_id/interviews.

Требования

  1. Страница /companies/:company_id/interviews на которой будут отображаться все отзывы на собеседования, которые напишут зарегистрированные люди;
  2. Страница /companies/:company_id/interviews/new c формой отзыва (сделать по аналогии с https://rubyjobs.dev/companies/101/reviews/new). Страница доступна только для зарегистрировавшихся пользователей;
  3. POST /companies/:company_id/reviews запрос для сохранения отзывов на интервью. Работает только для зарегистрированных пользователей;
  4. Все должно выглядеть как сейчас выглядят обычные отзывы;
  5. Новая таблица interview со связью companies -(has_many)-> interviews, схема таблицы должна повторять существующую reviews;
  6. Вся логика (как чтение, так и запись), должно быть реализовано с помощью операций, как это сделано в других частях проекта;
  7. Вся логика должна быть покрыта юнит и интеграционными тестами;

Multi-currency support

What

What if we add support for multiple currencies?

Why

I am from Belarus and salaries in RUB are not clear to me. It would be convenient to convert them to approximate rates.

How

I imagine it as selectbox on the top of the page with the list of different popular currencies.
Like on the aliexpress, you know:)
It can be third-party API where we can get appropriate rates for currencies.

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

На главной странице есть фильтр:

Screenshot 2020-07-05 at 23 46 58

в этот фильтр надо добавить поля min_salary и salary_currency (enum поле со значениями ruble | dollar | euro). В min_salary пользователь может поставить любое число. Надо добавить логику для отображения вакансий в которых зарплатная вилка попадает в минимальное значение. Например:

пользователь поставит значение в 100_000 и ruble. Нужно показать все вакансии в которых минимальная зп до значения, а максимальная - выше значения.

как делать:

  1. добавить новые поля в apps/web/dto/search_options.rb
  2. обновить логику поиска для lib/vacancies/queries/vacancy.rb (обновить только all_with_contact_relation метод)
  3. обновить help информацию на главной (искать в apps/web/templates/vacancies/index.html.slim)
  4. Покрыть все места в которых добавился код тестами

Советы по реализации

Советую разбить задачу на 2 PR-а:

  1. добавить логику по фильтрации (пункт 2)
  2. Обновить DTO объект и информацию по поиску (пункты 1 и 3)

Trim unnecessary http params from request

I have a bug from rollbar, we need to fix it:

ArgumentError: unknown keywords: utm_source, utm_medium, utm_campaign (Most recent call first)

File /app/lib/vacancies/operations/list.rb line 12 in call
Show 1 non-project frame
File /app/apps/web/controllers/vacancies/index.rb line 18 in call
Show 27 non-project frames
File /app/config/initializers/request_id.rb line 25 in block in call
Show 2 non-project frames
File /app/config/initializers/request_id.rb line 24 in call
Show 8 non-project frames

URL for this bug

https://rubyjobs.dev/?utm_source=telegram.me&utm_medium=social&utm_campaign=mdtrue-*pyatnichnoe-chtivo*privet!

Extract markdown parser to separate gem

I use this library in 5+ different projects and I think it will be a good idea to extract everything to the separate gem instead copy/paste the source code

Filters for list of vacancies

What

Add filters by type of vacancy and ability to remote work

Why

It will be very handy to have ability to filter vacancies to get list with offers what you need

How

Add select box with list of types and checkbox to filter remote vacancies on page with list of vacancies

Display flash message after submitting a new vacancy

What

We want to display positive flash message after adding a new vacancy. Something like this:

Вакансия успешно отправлена на модерацию. В ближайшее время она появится на главной.

Why

We want to make better user experience and flash message can help with dropping unnecessary uneasiness for anyone who submit a new vacancy.

How

Useful links

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.