Code Monkey home page Code Monkey logo

spy-grid's Introduction

PennyMac Technical Test - Spy Grid

This repo is intended as a technical project in order to apply at PennyMac

Requirements

  1. Use Code Sandbox to both develop and present your solution. Go to CodeSandbox and select react typescript as you'r starting point. We'll be able to visit your CodeSandbox URL and see your solution right in the included browser. So when you're done, all you do is email your CodeSandbox URL to us so we can see it live.

  2. Use a UI framework such as TailwindCSS or AntDesign if you want (optional).

  3. Your solution should be a single page. Think of this as a "detail" page that displays a picture of an "agent" along with their vital info. (You can use a component similar to the Descriptions component of AntDesign to display that data if you like).

  4. Use a limited palette / color scheme with a dark theme. Make it look cool and minimal.

  5. Populate the page with data with a call to the Random User API.

  6. Place the agent's picture (large) in the UI with their codename under the picture in a font larger than the other text. Their picture should be 386px wide by 386px high - yes, it will look grainy, but that's ok. Under that, add the rest of the agent's vital information:

  • first name
  • last name
  • username (which you'II display as their "codename" in the UI)
  • city
  • state
  • country
  • gender
  • dob (date of birth)
  • eye color (not in the api call - this should be randomly generated)
  • time zone offset
  • time zone description
  • large photo

AII of this data (except eye color) is generated from the Random User API.

  1. Finally, the page should contain a button that says next asset. When you press that button, the page refreshes and a new agent appears along with their vital info. Refreshing the page should also populate the page with another agent.

Bonus Points

  1. Animations / css transitions on the page load

  2. Cool (monospaced?) fonts

  3. Extra "techy-looking" strings on the page (ex. their login uuid could look cool somewhere).

  4. Jest tests

Considerations

I'll be using TailwindCSS for styling and Vitest for unit testing.

How to use

You could just run the App by executing npm run dev on the terminal.

It's worth noting that this App will just loop through a set of Random User API records as spies, to disable this behavior hop into src/main.tsx and just remove the prop seeds on the <App /> component.

spy-grid's People

Contributors

demarchenac avatar

Watchers

 avatar

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.