davydovanton / rubyjobs.dev Goto Github PK
View Code? Open in Web Editor NEWJob boards for Russian-speaking Ruby developers
Home Page: https://rubyjobs.dev
License: GNU General Public License v3.0
Job boards for Russian-speaking Ruby developers
Home Page: https://rubyjobs.dev
License: GNU General Public License v3.0
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
We have actions and operations for this logic. Now we need to create forms and implement a logic in actions.
vacancy_approve/update.rb
and vacancy_disapprove/update.rb
), test itPATCH
requests (form example here) for calling this actions and replace existing linksAdd filters by type of vacancy and ability to remote work
It will be very handy to have ability to filter vacancies to get list with offers what you need
Add select box with list of types and checkbox to filter remote vacancies on page with list of vacancies
XSS в поле "фильтр" на главной странице
https://rubyjobs.dev/?query=%22%3E%3Cscript%3Ealert%28%22XSS%22%29%3C%2Fscript%3E
В инпуте юзера стрипается весь html шлак
Инпут ломает форму и срабатывает как часть встроенного в страницу кода (XSS)
Ну фундаментальная вещь же...
https://rubyjobs.dev/vacancies/:id
Отзывы на компанию X --> Отзывы о компании X
What if we add support for multiple currencies?
I am from Belarus and salaries in RUB are not clear to me. It would be convenient to convert them to approximate rates.
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.
It will be looks like a static page with text "Vacancy will be added after reviewing"
We want to use Google reCAPTCHA on vacancies#new
page before submitting a new vacancy.
It needs to prevent bots activity and make a simple spam filter
We can improve UX and SEO if add buttons for share in social networks. For this we can take this one:
На страинце компании (например тут: https://rubyjobs.dev/companies/101) добавить возможность оставлять отзыв на собеседование в компании. Так же, должна быть возможность посмотреть все отзывы на собеседования по ссылке /companies/:company_id/interviews
.
/companies/:company_id/interviews
на которой будут отображаться все отзывы на собеседования, которые напишут зарегистрированные люди;/companies/:company_id/interviews/new
c формой отзыва (сделать по аналогии с https://rubyjobs.dev/companies/101/reviews/new). Страница доступна только для зарегистрировавшихся пользователей;POST /companies/:company_id/reviews
запрос для сохранения отзывов на интервью. Работает только для зарегистрированных пользователей;interview
со связью companies -(has_many)-> interviews
, схема таблицы должна повторять существующую reviews
;We want to collect some metrics around each vacancy. Now we can collect vacancy opening value and submit button clicks.
It will be useful for HRs to see this statistic and can improve popularity of site in general.
Please, use 3 PRs for this issue:
open
metric and use it in an actionclick
metric and use it in an actionWe 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
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
Just add new field in to form (tags), after that update mapper to convert string to array of strings and that's all.
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
When there's a string with a space, i.e. 120 000
, it turns into 120
value.
Create/edit a vacancy and put 120 000
into a salary field.
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
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
При некорректом введении запроса фильтрации по объявлениям с конкретными типами (такой как position_type:) вылетает ошибка
На главной странице вводим в поле фильтрации запрос position_type:ffuull_time или любой другой текст, не указанный в подсказке. После этого нажимаем кнопку фильтровать.
Отсутствие запросов или сообщение о некорректном вводе параметров
We want to display positive flash message after adding a new vacancy. Something like this:
Вакансия успешно отправлена на модерацию. В ближайшее время она появится на главной.
We want to make better user experience and flash message can help with dropping unnecessary uneasiness for anyone who submit a new vacancy.
Useful links
На главной странице есть фильтр:
в этот фильтр надо добавить поля min_salary
и salary_currency
(enum поле со значениями ruble | dollar | euro
). В min_salary
пользователь может поставить любое число. Надо добавить логику для отображения вакансий в которых зарплатная вилка попадает в минимальное значение. Например:
пользователь поставит значение в 100_000
и ruble
. Нужно показать все вакансии в которых минимальная зп до значения, а максимальная - выше значения.
apps/web/dto/search_options.rb
lib/vacancies/queries/vacancy.rb
(обновить только all_with_contact_relation
метод)apps/web/templates/vacancies/index.html.slim
)Советую разбить задачу на 2 PR-а:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.