Small projects for Junior Developers

Help Junior developers get hired by sharing small projects they can work on to build their resume with paid work.

Complete Bounties

The current Rails World 2023 website lives at rubyonrails.org/world.
That needs to be archived to rubyonrails.org/world/2023 so that we can use /world as a landing page, and the Rails World 2024 site can live at /world/2024 (and all years going forward will follow the same convention).
The folder structure will also need to change so that each Rails World will have it's own folder for speakers and sessions.

Complete
Created by Amanda Perino
View Project

Using the same styling as found on the rubyonrails.org home page, please add the Rails Foundation member logos to the /foundation page.
This is how it should look:[Screenshot 2023-10-03 at 13.22.53.png]
But I can't quite get the padding and coloring right:
[Screenshot 2023-10-03 at 13.24.19.png][Screenshot 2023-10-03 at 13.24.23.png]
I will send the logos, links, and exact location where these should go to the person who gets this assignment.

Complete
Created by Amanda Perino
View Project

safe_query is a library designed to raise exceptions when potentially unsafe queries are executed via ActiveRecord. To ignore a false positive, the docs recommend converting the relation to an array first before trying to iterate over the results.

The tests (written in rspec) don't cover this case, so a PR addressing this issue should specifically cover the case where converting to an array with `to_a` does not raise an exception when it normally would

Complete
Created by Peter Cai
View Project

We'd love to be able to tell folks that visit https://rubyandrails.info about the FriendlyRB conference. Can you help us with that?

Complete
Created by Adrian Marin
View Project

I noticed today that the the sign in and registration screens don't have some common UX affordances. I'd like to fix that.
A PR addressing this issue should: 
• Set the tab order on the sign in screen to email then password then forgot password 
• Set the tab order on the registration screen to email then password then password confirmation (if it isn't already) 
• Autofocus on the email field for both of these forms

Complete
Created by Joe Masilotti
View Project

The conversations index page can get overwhelming after you've had a lot of contact with folks. I'd like a way to make it easier to follow a few important threads without getting bogged down by the rest.
A PR addressing this issue should: 
• Add an Archive button to every conversation
• When clicked, remove the conversation from /conversations
• If any conversations are archived, add a link to the bottom labeled "Archived conversations"
• When clicking this link, visit /conversations/archived and show the archived ones
• Each conversation on this screen should have a Unarchive button that moves it back to /conversations

Complete
Created by Joe Masilotti
View Project

Sending emails via Postmark can raise a Postmark::InactiveRecipientError error, indicating that the recipient has disabled emails from RailsDevs. But because the job failed Sidekiq is retrying it over and over again.

A PR addressing this issue should:
• Catch Postmark::InactiveRecipientError errors in ApplicationJob and not queue them for retry

Complete
Created by Joe Masilotti
View Project

The admin conversations dashboard lets admins keep up with ongoing conversations happening between businesses and developers.
It's not very obvious what two columns, REPLIED? and EMAIL?, mean.
A PR addressing this issue should:
•  Add a title HTML attribute to the two headers explaining what they do.

The HTML title attribute appears as a tooltip when hovering the element. Use the following titles:
• REPLIED? - The developer has replied to this conversation.
• EMAIL? - The developer mentioned an email address in a reply.

This will most likely require changing the Admin::Tables::HeaderComponent View Component to accept a new attribute to be rendered.

Complete
Created by Joe Masilotti
View Project

We want to explore how are the stories generated using the new chatgpt api model
Here's the documentation of the new model
https://platform.openai.com/docs/guides/chat
It should be as easy as changing the usage of the old endpoint for the new one and configure parameters properly.
But first we need to update the open ai gem first.
We are using this gem:
https://github.com/alexrudall/ruby-openai
Otherwise you wont be able to use the new endpoint.
Please make sure you update every usage of the gem to the new endpoint.
They are mostly used in the jobs (app/jobs directory)

Complete
Created by Benjamín Silva
View Project

I'm attempting to build Magic: The Gathering, but in Ruby. As a bit of Ruby practice, your task would be to find a card to implement. You can use the existing cards as examples, particularly cards like Story Keeper. 

Easy cards to implement would be these vanilla ones: https://scryfall.com/search?as=full&q=t%3Acreature+is%3Avanilla&utm_source=mci. 

If you're looking for more of a challenge, pick something from the recent set: https://scryfall.com/search?q=set%3Aone&unique=cards&as=full&order=name.

I'll pay you $2.50 for each vanilla card, and $5 for each non-vanilla card, up to a total of $50USD.

Complete
Created by Ryan Bigg
View Project