Skip to content
This repository has been archived by the owner on Sep 25, 2024. It is now read-only.

Commit

Permalink
update exercise instructions (#4)
Browse files Browse the repository at this point in the history
* update root readme to clearer instructions 

and a few "tips" for clarity

* attempt to improve each exercise's description

* improve wording

Co-authored-by: Joe S <jsebast@avaya.com>
  • Loading branch information
joe-s-avaya and joe-s-avaya authored Jan 13, 2022
1 parent 99fe74c commit 92af597
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 18 deletions.
19 changes: 14 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
This repository is meant to provide a few small exercises to familiarize you with the type of work that we do as developers on the UX Team.
# Candidate Coding Exercises

Each sub-folder in the project root is meant to engage your skills in basic HTML/CSS, Nodejs, and Reactjs respectively.
This repository provides a few small exercises to familiarize you with the type of work that we do as developers on the UX Team, and for us to learn how you would solve a given task.

In each, you will find an index file with further instructions, except in the React project folder which contains its own ReadMe.
Each folder in this repository has a unique problem that will engage your skills in a different manner. In each, you will find an index or README with further instructions. Pick one to complete fully. If you want to pick a second one, go ahead, but **do not spend more than four hours in total on this task**.

Pick one to complete fully. If you want to pick a second one, go ahead, but do not spend more than four hours in total on this task.
## To submit your work
- fork this repository
- create a branch off of `main` in _your_ forked repository
- complete your work in that branch
- open a Pull Request (PR) from your branch into `main` _in your own repository_
- provide a link to that PR

In order to submit your work, please go ahead and fork this repository, then re-upload it yourself and provide a link to where you have opened your Pull Request with the necessary work for review.
## Quick tips
- ensure that your PR has a good description and includes any information needed to run your completed task
- if you need clarification, please do not hesitate to ask
- treat this as if it were a task given to you at work; you can use google/stackoverflow/whichever, but the code _must_ be your own
- if you complete a task fully, start a second, but are unable to complete the second in the four hour time limit, that is fine, just note it in the description of the PR
4 changes: 3 additions & 1 deletion basic-html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@
Don't worry about the font-family
-->
Unless overwise directed, we will test this by simply opening this page (`index.html`) in a browser and comparing the output to the provided mock image
-->
10 changes: 5 additions & 5 deletions framework-agnostic/README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
## This module is meant to showcase your ability to fully implement a mock that requires touching an API.
## This exercise is meant to showcase your ability to fully implement a mock that requires touching an API

Your exercise is to create a website that displays the "Image of the Day" from NASA's APOD API, as well as allow a user to enter a number to see a random selection of images, or select a specific date to see the image for that day. Review the three mock images and GIF in the `mock` folder for an example of what we expect. We do not expect your site to match this example, it is meant primarily as a mock.
Your exercise is to create a website that displays the "Image of the Day" from NASA's APOD API, as well as allow a user to enter a number to see a random selection of images, or select a specific date to see the image for that day. Review the three mock images and GIF in the `mock` folder for an example of what we expect. We do not expect your site to perfectly match the example, it is meant as a mock.

You may complete this exercise with any technology that you wish; eg, React, Vue, Angular, Svelte, whatever floats your boat. The important piece is that at the end you hand us a fully realized website. We expect to be able to pull your code, read your `README.md`, and run your code locally. You may also host your code and give us a link to it if you would like, but we will need to review your code as well.

To start, generate your own api key via [NASA's API Portal](https://api.nasa.gov/), then, review the [APOD API](https://api.nasa.gov/#apod) and create the previously described site.

Important details:
### Acceptance Criteria
- the user may enter an image count OR a date, when one is used the other should be erased
- the API fails on the selection of a future date, so do not allow users to select a future date
- the site must work on screens as small as 400px (mobile view) and still work when full screened on a laptop (say 1600px)
- the site must work on screens as small as 400px (mobile view) and also work when full screened on a laptop (say 1600px)
- this does _not_ need to be pixel perfect, but the solution must resize in a sensible manner and resize smoothly
- you do not need to add extensive unit tests, but you should have at least one unit test showing that your root (`App`) component renders
- you do not need to add extensive unit tests, but you must have at least one unit test showing that your root (`App`) component renders
- if you add any children components, they should also have at least one unit test
4 changes: 2 additions & 2 deletions node-api/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ Please add the property "lastQueried" to each object in the Array
Give this property the value of the date and time at which you last called the API
Then, write the updated Array to a new file "updatedTestArray.js" in the root of this project folder
In addition to the above requirements, please write AT LEAST TWO automated tests which are passing for your code.
In addition to the above requirements, please write AT LEAST TWO passing unit tests for your code
*/

let testAPIToken = "12345"
let testAPIToken = "12345"
17 changes: 13 additions & 4 deletions react/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
React Component building test
# React Component building test

Using the instructions found at https://design.avayacloud.com/components/web/setup-web, download the Neo CSS library, and use the styles found there to build a Button Component based on the spec
provided at https://design.avayacloud.com/components/web/buttons-web.
Using [the instructions here](https://design.avayacloud.com/components/web/setup-web), download the Neo CSS library, and use the styles found there to build a Button Component based on [the spec provided here](https://design.avayacloud.com/components/web/buttons-web).

This Component should be a React Component that accepts props that render each style or variant according to the examples given on the page above.

For example, the Button should take a property to render the disabled state.

In addition to the above requirements, please write AT LEAST TWO automated tests which are passing for your code.
In addition to the above requirements, please write AT LEAST TWO automated tests which are passing for your code.

## Acceptance Criteria

- running `npm start` will start this app and the button component is shown
- the button, when clicked, does something to the page (expected behavior must be noted in your PR)
- the button has a `disabled` prop
- the button has a `variant` prop
- the button has a `onClick` prop
- running `npm test` will run two or more tests that pass
- all tests have good descriptive names
2 changes: 1 addition & 1 deletion typescript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ See the [tsdx readme](./README-tsdx.md) for details on tsdx

The existing `sum` method is only for reference. Delete it from your final solution before submitting.

Write a stongly typed method that sorts an input that is either an array of strings, or an array of numbers. The method must have an optional parameter that allows the user to sort by descending or ascending, and defaults to ascending.
Write a stongly typed method that sorts an input that is either an array of strings, or an array of numbers. The method must have an optional parameter that allows the user to sort by descending or ascending and defaults to ascending.

If the method is passed an array of strings, the result must be returned in ALL UPPER CASE.

Expand Down

0 comments on commit 92af597

Please sign in to comment.