jwarnock657 / candidate-test-1ca968b3

YunoJuno Dev. Candidate Test

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ₯Ό YunoJuno Candidate Test

Hi!

Welcome to the YunoJuno candidate test.

First of all, thank you for applying and we appreciate you taking the time to do this test. It's not designed to be a long challenge so please don't spend more than at most four hours on it. If you feel there are bits left unfinished - that's fine, discuss them in the pull request and we can talk through them later.

You'll have the best head start if you read this file in its entirety, but please do get in touch if you have outstanding queries that are not answered - this test is meant to resemble everyday development as much as it can given the constraints.

This repo is in no way connected to our current workings at YunoJuno, and exists solely for the team to assess your technical understanding of front-end technologies, and how to use them.

πŸ‘‹ Introduction

Development environment

If you choose to, we have added our development environment to the repo. You can run this with direnv, and nix.

If you have both of these installed, you can run direnv allow in the root of the project to load the environment.

This will give you access to the following tools:

  • Node v20
  • NPM v10

Application environment

The app was prepared using react-create-app. You can run the app using npm start which will compile the JS and start a local server.

If you require more info, please refer to the react-create-app docs @ https://github.com/facebook/create-react-app.

react-create-app supports ES6 syntax.

You are free to use whatever third party libraries or plugins you want, if you feel it is necessary.

You can run npm run prepare to install pre-commit library Husky. This will mean all files are linted at commit stage.

πŸ“ˆ Goals

The goal is to build on this barebones react project into an functioning application.

You are free to implement this however you like but at minimum you will need to fulfill the following user stories:

  • As a user I can see a list of Lord of the Rings characters
  • As a user I can filter this list by selecting a category, and see only relevant results
  • As a user I can order the list alphabetically by name or by the arbitrary significanceIndex value
    • 0 is the most important
    • 26 is the least important

In service of these user stories, there are some additional requirements:

  • Your solution must have some test coverage
  • Your solution must have run prettier
  • Your solution must asynchronously load the character list
  • Your solution should be styled appropriately (based on design provided)
  • The layout at mobile sizes is at your discretion
  • Your solution must be compatible with the latest versions of the following browsers:
    • Chrome
    • Safari
    • Firefox
    • Edge

All the assets necessary (including a JSON file with all the required data) are included in the repository.

NB: We will never use your submission in any way other than for this interview process. See more about what we do with the code below.

πŸ‘©β€πŸ’» What is this test designed to showcase?

  • your ability to work on an existing React project.
  • your capacity to take existing code and build on top of it.
  • how you would approach an everyday feature request.
  • how you work as part of a normal code review process.
  • how your pull request explains the change to the team.

πŸ“₯ Submission procedure

  1. Fork the repository☨.
  2. Clone it locally & setup the environment.
  3. Make your code changes.
  4. Push to your fork.
  5. Open a PR against this repo, as if this was an everyday feature addition.
  6. Confirm with us that you have done so, stating your GitHub username.

☨ There are privacy concerns with submitting to a project that is openly accessible to the web so please take that into account, and if you require the extra anonymity - please register a throwaway GitHub account instead of using your actual GitHub account.

About

YunoJuno Dev. Candidate Test


Languages

Language:TypeScript 48.7%Language:JavaScript 24.4%Language:Nix 13.1%Language:SCSS 6.9%Language:HTML 6.2%Language:CSS 0.4%Language:Shell 0.3%