Code Monkey home page Code Monkey logo

rysolv's Introduction

Rysolv

Rysolv (rysolv.com) is the analytics based hiring platform for software engineers.

  • Code focused: We use Git analytics to turn your contributions into a resume.

    • Generate insights on your git history
    • Showcase your contributions
    • Find employers looking for your exact skills

    profile

  • Transparent: Always know the salary and interview process before you apply.

    profile

  • Open Source:

    • AGPL-3.0 License
    • Built for engineers by engineers. If you want to change how people get hired, open a pull request!

Documentation

Getting Started: /docs/README.md

Contributing

Community

  • Discord: Talk about code, algorithm meetups, and silly hackathons.

  • Also check out the rysolv/hackathon repo for upcoming events.

License

rysolv's People

Contributors

adityagoel28 avatar annapo23 avatar brutchsamajeanlouis avatar dependabot[bot] avatar mucyildiz avatar richardlitt avatar tylermaran avatar wilhsie avatar zeeshanzulfiqarali 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rysolv's Issues

"Popular" issues sorting filter

Right now sorting by "Popular" just searches by most coins. But I would like to have a real ranking algorithm.

So here's the basic sorting flow I had figured out:

  • Get the coin count (called rep in the db)
  • Assign a conversion of dollars to coins (like $1 = 2 rep)
  • Factor in the date somehow (new issues should stay on the front page for a day)
  • Optional: preferred languages filtering

The current issues query

// GET all issues
const getIssues = async () => {
const queryText = `
SELECT
${issueCardValues},
ARRAY_REMOVE(ARRAY_AGG(DISTINCT(languages.language)), NULL) AS language
FROM issues
LEFT JOIN attempting ON attempting.issue_id = issues.id
LEFT JOIN comments ON comments.target = issues.id
LEFT JOIN languages ON languages.issue_id = issues.id
LEFT JOIN organizations ON issues.organization_id = organizations.id
LEFT JOIN watching ON watching.issue_id = issues.id
GROUP BY ${groupValues}
`;

And I would like update to include something like:

ORDER BY (i.rep + i.funded_amount * 2) DESC
WHERE i.created_date BETWEEN ? AND ?

Not sure how to add the date filter in.
I want to make sure that some new issues stay on the front page. But I also don't want to bump off a high dollar amount issue off of the front page.

In the notifyCompanySaga updating just firstName/lastName will delete the other

In this function, if a user is missing just their first name, updates it, and clicks send. It will save the new first name, but delete the last name (because there is no last name in the form.

 const transformUserQuery = form
    ? `transformUser(userInput: {
      firstName: "${form.firstName}",
      lastName: "${form.lastName}",
     }) {
      __typename
      ... on Success {
        message
      }
      ... on Error {
        message
      }
    }`
    : ``;

TypeError: Cannot destructure property 'issues' of 'result' as it is undefined.

Getting this error on unauthenticated pages, and any failed sign-in:

TypeError: Cannot destructure property 'issues' of 'result' as it is undefined.
    at Object.signIn (C:\Users\tyler\Desktop\code\rysolv\server\graphql\resolvers\users\signIn.js:37:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

Comes from:
https://github.com/rysolv/rysolv/blob/master/server/graphql/resolvers/users/signIn.js#L37

const result = await getUserSettingsQuery({ userId });
const { issues, repos } = result;

After login, redirect back to original page instead of going to dashboard

Currently, when directing people to https://rysolv.com/issues/add for adding an issue and placing a bounty on it, they get automatically redirect to https://rysolv.com/signin. After signing in with GitHub, they then get redirect to https://rysolv.com/dashboard and will thus need to find their way back to the page where they can add the issue (which btw, I don't see a clear option for... it appears you first have to scroll all the way down to click "Browse all issues", but that's another problem).

Suggested solution

To make the flow less confusing, I'd suggest to redirect people back to the page they were on before logging in. Especially in the case where they got automatically redirected to the login page, but preferably also when they were on any other page and explicitly clicked Login.

Better feedback on Company "Connect" button

image

After you connect with a candidate, the card flips from "Connect" to "View Messages", but you don't see any messages for that user until they reply back to you. I think the original idea was like the linkedin connect feature, but it's not super obvious that this is the functionality.

I think we should do one of two things:

  1. Display a "Request Sent" if the candidate hasn't replied
  2. Remove the "connect" concept and just let the company see the messages they sent (even if there is no response)

I favor option #2

Make issue filter text larger

Description

The text in the Language and Repo filters (the dropdowns as well as the selected tags) in the sidebar is too small.

Steps to reproduce

  • Navigate to Issues page
  • Click on the input field for either Language or Repo in sidebar to the right
  • Click on one of the options to select

Expected behavior
I think the font size of the dropdown and tag texts should be at least the same size as the usernames in the leaderboard below the Filters bar.

Screenshots
Filter by language dropdown

Make it clearer that the website is open source and link to it's repository

Is your feature request related to a problem? Please describe.
Looking at the website you can't see that it is open source, and you can't see where it's repository is (which might hurt the competitive advantage this site has by being open source).

Describe the solution you'd like
Just provide a link to the repository at the end of the front page.

Describe alternatives you've considered
Maybe put it in a "about" page, or just have something saying "fork me on github".

Decrease `node_modules` size with PNPM?

Description

With NPM ~398MB
With PNPM ~312MB (It could be much less if you use the same node packages for another project)

I know this is an opinion and not a bug or feature, but I would like your opinion on it. I could just do pnpm install instead of npm install and get the full effect, so don't do it to only please this one issue/me.

I am not liable for negligence from code-oriented arguments and riots that may arise from this PR.

Are the "good first issue" issues resolved?

Hi, I found your repo while looking for an open source project to contribute to.

I am a very new react developer so to get some real world/ collaborative practice would be great for me! I saw both of the 'good first issue' tickets already had people working on them and don't know the etiquette of also offering or seeing if they abandoned.

If any other beginner/first issues come up, I would be eager to take part!

Thanks a lot!

getting a error about an expired security certificate

Description

On chromium (open source version of google chrome) i am getting an error:

Your connection is not private
Attackers might be trying to steal your information from www.rysolv.com (for example, passwords, messages, or credit cards). Learn more
NET::ERR_CERT_DATE_INVALID
To get Chrome’s highest level of security, turn on enhanced protection
This server could not prove that it is www.rysolv.com; its security certificate expired 106 days ago. This may be caused by a misconfiguration or an attacker intercepting your connection. Your computer's clock is currently set to Thursday, November 10, 2022. Does that look right? If not, you should correct your system's clock and then refresh this page.

Steps to reproduce

go to rysolv.com with google chrome .

Expected behavior
The website should work.

Make the bug report button more obvious

Description

It is difficult to get to this issue suggestions page. It is just a small link on the contact page, which I only find in the footer.

Steps to reproduce

Umm? Submit a bug?

Expected behavior
Like, a "feedback" button either in the top nav, or on the sidebar maybe?

Screenshots
. <-

UI improvements for repo cards

Getting Started

To get started on this ticket, you'll want to have some data in the repos table.

Submitting a pull request

  • Pull down all the latest changes and create a branch off of dev
  • Name your branch First initial + Last initial / what-youre-doing
    • ex: TM/update-repo-card
  • When you're done, open a pr against dev and ping someone to review
    • Link this issue to the pr with a comment (i.e. closes #86)
  • A maintainer will review, make comments, and approve the pr
  • When the PR is approved, we'll merge it into dev and delete the branch

Proposed change

repo-ui-update

Claim this issue on Rysolv

https://rysolv.com/issues/detail/f81fd17d-4ef8-421d-90cd-da3281ddfe16

Page re-render on new messages

Sending a message on rysolv.com/messages triggers a re-render.

The messenger component:
https://github.com/rysolv/rysolv/tree/master/app/containers/Messages

The markdown component that is being re-rendered:
https://github.com/rysolv/rysolv/blob/master/app/components/Markdown/index.jsx

The flash to a plain text-area you see in the gif is because on initial load the markdown library targets an existing text area and overwrites it with the markdown editor.

Recorded a gif. Slowed down for relevant re-rendering bug.
messenger_bug

Error 404 (Page Not Found) when clicking on 'https://rysolv.com/how-to'

Description

To see the error in action, simply go to this broken link. Follow the steps below to reproduce.

Steps to reproduce

Steps to reproduce the behavior (include browser):

  1. On Chrome browser, I googled "rysolv contribute" and clicked on the first link -- https://rysolv.com/how-to:

google-rysolv-how-to

  1. I was redirected to this page:

broken-path-rysolv

Expected behavior
I was expecting to be redirected to a guide page that would help me get started on contributing to this open-source project.

No HTML `theme-color` meta tag in app/index.html.

Description

The site doesn't have a theme-color meta tag.

<meta name="theme-color" content="{COLOR}">

Some browsers use the theme-color to frame the site.

Steps to reproduce

Go to https://rysolv.com/dashboard on Safari with an iPhone

Expected behavior
The top of the page should blend in with the padding that Safari adds under the status bar.

Screenshots
image

Fix re-rendering on Company Dashboard

Description

On the company diashboard, clicking between Applied, Recommended, and Shortlisted wil trigger a rerender of the whole component, rather than just the CandidateCards

screen_flashing

User Session not preserved in New Tab

Description

Each tab in a same window of Browser requires separate Sign In every time

Steps to reproduce

Steps to reproduce the behavior (include browser):

  1. Open Mozilla Firefox
  2. Go to https://rysolv.com/signin
  3. Login to using Email and Password
  4. You will be redirected to /issues
  5. Ctrl+Click on First Issue in the list
  6. A new tab will open and you will notice in the top right corner two links to Sign Up and Sign In

Expected behavior
Current Logged in User is being shown in the top right corner

Screenshots

  1. Tab 1 (Logged In)
    Screenshot of Tab 1

  2. Tab 2 (Not Logged In)
    image

Email notifications of new issues

It would've been nice if users had the option of registering for email notification of new issues.

Issues have tags attached to them. Users should be able to subscribe to specific tags.

General FAQ Improvements

Had a fair bit of feedback on updating the FAQ. So wanted to start aggregating those updates here.

Main topics:

  • who is holding the bounties while waiting for issues to be resolved?
  • Better detail on fees
  • How is this platform financed?
  • How do refunds work?

GitHub oAuth scope feels like an overkill

Is your feature request related to a problem? Please describe.
i'd like to sign up with a github account

Describe the solution you'd like
scope should be reduced to readonly status read:user user:email or to the public information only (no scope)
https://docs.github.com/en/free-pro-team@latest/developers/apps/scopes-for-oauth-apps#available-scopes

Describe alternatives you've considered
signing up with email and manual profile entry

Additional context
current scope can discourage people of integrating with github account (at least it discouraged me)

adding meta:og tags for sharing

Add meta:og tags so when the issues are shared on slack or twitter you get some data on the issue.

This will have to be dynamic for each issue detail page.
ex:

<meta name="language" content="english"/>
<meta property="og:url" content="{{headerData.canonical}}"/>
<meta property="og:title" content="{{headerData.pageTitle}}" />
<meta property="og:description" content="{{headerData.metaDescription}}" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="rysolv" />
<meta property="og:image" content="{{image}}" />

Keep all navbar links in the dropdown menu

Add Messages & Dashboard link into the dropdown as well.
image

Right now this is done dynamically based on sceen size. But I think it would be better to just have the full options in the dropdown as well.

Note we would need to have a "new message" indicator on the messages link in the dropdown as well.

Switch rysolv license to a copyleft license (AGPL).

This is helpful as it prevents some company for forking the code, closing it and then “defeating” rysolv using aggressive marketing or dirty business practices (wine had companies that forked the code and not give back which eventually led to it being relicensed under the LGPL).

It will also make it easier for the community to trust and invest (code or money) in the project because there is less of chance of him going closed source like reddit.

Linus torvalds (creator of linux) called the GPL “one of the defining factors in the success of Linux” he also talked about how it helps motivate contributors:

A developer would feel that the big company is going to take advantage of their work, said Torvalds. "The GPL ensures that nobody is ever going to take advantage of your code. It will remain free and nobody can take that away from you. I think that's a big deal for community management.

Cannot unsubscribe from notifications

I got a "3 new issues for you!" email notification. There is no unsubscribe link, nor can I find this in the settings.

As a maintainer, more issues is not what I'm looking forward to 😉

Can't sign in using github

Description

Can't sign in using github

Steps to reproduce

Be signed in to github on firefox or chromium

go to rysolv home page, click log in

click sign in using github

Try and it will return a error

"Something went wrong when signing you in through Github."

Expected behavior

It should sign in.

URL encoding issue in StackOverflow username

Description

When special characters are present in a StackOverflow username, they are displayed URL-encoded.

This affects at least the following pages:

Expected behavior

When showing the StackOverflow username, don't show it URL-encoded.

Replace candidate handleNav() with Link

Both the candidate profile and position detail link are using handleNav() rather than a react-router Link element. So I can't open them in a new tab.

image

Submitting a pull request

  • Pull down all the latest changes and create a branch off of dev
  • Name your branch First initial + Last initial / what-youre-doing
    • ex: TM/update-repo-card
  • When you're done, open a pr against dev and ping someone to review
    • Link this issue to the pr with a comment (i.e. closes #86)
  • A maintainer will review, make comments, and approve the pr
  • When the PR is approved, we'll merge it into dev and delete the branch

The deleted user's placeholder username label shouldn't allow navigation

Description

When a user has deleted their account after creating a issue, or commenting on one, their name is replaced with [deleted] label which still allows navigation to the deleted user's profile.

Steps to reproduce

  1. Open an issue.
  2. Comment on it.
  3. Delete your account.
  4. Go back to that issue you created.

Expected behavior
The [deleted] label should not be clickable. Clicking on it leads to a page which shows 404. This should be prevented.

Screenshots
The deleted label is clickable in both of these instances:

Issue opened by deleted user:

Issue opened by deleted user

Comment by a deleted user on a issue:

Comments on issue

Clicking on the label always leads to a 404 page (as expected):
image

Pagination not stored in browser history

Description

Navigating through pages (issues / organizations) is not stored in the browser history. So when you hit the back button, it will return you to the front page, or the last page you were on.

Steps to reproduce

Browser: Chrome

Issue 1: Back takes you to the wrong page

  • Visit /issues
  • Scroll to the bottom and go to the next page
  • Click back in the browser
  • This will redirect you to the previous page (i.e. the page before /issues)

Issue 2: Back takes you to page 1 of /issues

  • Visit /issues
  • Scroll to the bottom and go to the next page
  • Click on an issue (go to the /issue/detail page)
  • Click back in the browser
  • This will redirect you to the first page of /issues

Fix

This should be a pretty straight forward fix. The issue page needs to be pushed to history, and updated in the url. That should resolve both issues described above.

Filter out deleted users in the attempting/watching count

Description

We should filter out deleted users from the attempt / watch list

Steps to reproduce

  • Create a user account
  • Start attempting/watching a few issues
  • Delete your account
  • Check the attempt / watch list

Fix

Filter for the users is_deleted flag in the following files:
- https://github.com/rysolv/rysolv/blob/master/server/db/queries/issues/getIssueAttemptList.js
- https://github.com/rysolv/rysolv/blob/master/server/db/queries/issues/getIssues.js
- https://github.com/rysolv/rysolv/blob/master/server/db/queries/issues/getOneIssue.js
- Check the issueCardValues in ./constants for getIssues.js and getOneIssue.js

Claim this issue on rysolv

https://rysolv.com/issues/detail/f81fd17d-4ef8-421d-90cd-da3281ddfe16

About Page is Missing Mission Statement

Description

About Page is Missing Compelling Mission Statement

Steps to reproduce

Steps to reproduce the behavior (include browser):

  1. Open about page in Google Chrome
  2. Mission Statement is not compelling

Currently shows: "Crowdfunding for open source development
Rysolv provides a platform for users to share issues, contribute to open source, and earn bounties for their work."

Expected behavior
I expected to see a mission statement for the company that communicates the value Rysolv provides to the world, and the values Rysolv stands for.

For example:
"Rysolv works to speed bug discovery and issue resolution, accelerating the rate of software development throughout the internets!"

Comments on Mission Statement Suggestions welcome! :)

Update filter component to match what is actually available.

Is your feature request related to a problem? Please describe.

Right now the filter component on /issues has a hardcoded $5,000 max dollar amount. As well as a huge list of languages that are not all available on rysolv.

Describe the solution you'd like

When fetching the user page, it should pull the following data for the filter component:

  • Bounty range (0 => max bounty)
  • All available languages
  • All available organizations

Ignore S3 upload if env variable doesn't exist

A common issue we run into for people running the site locally is lack of AWS credentials.

The first place you run into this is on account creation. when it tries to upload a profile picture.

return { uploadUrl: Location };

It uploads the picture to s3, and then stores down the resulting URL in the database.
The hack right now is to comment out the upload and just save down a random image url (https://i.redd.it/scqsx52g8jo31.jpg)

To fix this:

  • check if the aws key exists (i.e. not undefined)
  • if undefined, save down default image
  • else proceed normally

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.