react-coding-challenges
A series of ReactJS coding challenges with a variety of difficulties. Deep dive into the why here.
Interested in some React fundamentals / philosophies? Check out the react-philosophies GitHub repo.
The Challenges
Easy ?
? Rocket Ship
Unnecessary re-renders, fine grained control.
Medium ?
? Dark Mode
State / shared state, DOM manipulation.
? Coinbee
Data visualisation and graphing. API usage.
Hard ?
? Spootify
Loading state, API usage.
? Chatter
Web sockets, events, callbacks & React hooks. Talks to Botty.
Future Challenges
? shopit
A product page with a shopping cart/checkout experience.
? gogalaxy
An interactive planetarium.
What are the challenges for?
They could be:
- Short coding exercises, for use in interviews with candidates
- Ways for you to test yourself / test your coding abilities under pressure
- Fun exercises to help you learn React
How do they work / how do I get started?
The scaffolding of each challenges / app is done for you and each challenge has create-react-app as its foundation.
- Clone the whole challenges repository
- Run
yarn
ornpm install
in any of the individual challenge directories to install dependencies - Run
yarn start
ornpm start
to start the application on port 3000 (CRA default) - Each challenge has a README with requirements for you to complete
Some challenges might require usage of external APIs, but all information will be provided in the individual challenge readme.
Have you got the solutions?
All the coding challenges have been completed to a high standard. Get an automatic invite to the solutions repository at solutions.alexgurr.com.
Why are the solutions invite only?
People use these challenges for interviews. By putting the solutions behind a collaboration wall / invite-only repository we can discourage candidates from simply looking up the solutions.
Can I search for GitHub users and see if they accessed the solutions?
Yes! We track current / past collaborators, meaning if you want to check if a potential candidate had access / looked at the solutions you can simply search for them. You can do this by clicking the search icon in the top left at solutions.alexgurr.com and searching for them.
Why does it take so long for updates / new challenges?
I work on these challenges & solutions in my spare time, on top of a full time job and everything else that comes in life. Because of this, I don't always get a lot of time to maintain and add new challenges. Interested in becoming a collaborator or submitting your own challenge? Reach out below or submit a new challenge!
Community
We're on Slack - come and join us!
Thoughts or feedback ?
Conflicting opinion about a challenge difficulty rating? Need some help or guidance? Got a challenge idea? Get in touch at alexgurr.com.
Contributing ?
We have an issue template, pull request template and a new challenge template. We encourage you to fill out the right template and open a PR / issue!
What Makes A Good Challenge?
- Clear requirements
- Fun and engaging
- Accurate difficulty level
- Looks good (visually pleasing)
- Realistic -- would someone ever need to build something like this in real life?
- Easy to get started (minimal pre-requisites)