cescoferraro / startwars

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Star Wars Recruitment Task


Fork/Copy starting application from https://github.com/MaciejDonarski/Skunexus-Start-Wars-Recruitment/tree/master. At the start you have a simple application which displays planets from Star Wars in grid. Your task is to upgrade it respecting the principles from Tech Stack, Must-have (Good to have and paying attention also)

The Task

  1. Replace dummy data with dynamic data from https://swapi.dev/api/planets/
  2. Planets grid have two buttons - follow the instructions in console.logs
  3. Create another action which will redirect to Planet details page
  4. Create another action which will open modal with form* with fields:
    1. name - text
    2. rotation_period - number
    3. orbital_period - number
    4. diameter - number
    5. climate - text
    6. gravity - text
    7. terrain - dropdown
    8. surface_water - number
  5. Update Grid** component so that the display of actions is conditional
  6. Make displaying ‘Go to Films’ and ‘Go to Residents’ whether or not they exist
  7. Update Grid** component so header data will contain type of value and if it’s number align value to right in cell
  8. Create solution which allow to add two custom columns to Planets component - Residents and Films which will contain number of them. Try to do that by modify Planets component in App component and only prepare Planets component to be more customizable, in case we would like to use origin Planet component in other places

* all fields should be required and on form submit, close modal and show random success/error message (there is no endpoint)

** remember that Grid component should stay reusable. This component isn't only for Planets


No mockups but would be great if you make that app pretty :)

Tech stack

  • react (CRA starter)
  • react-router
  • redux


  • React & Redux
  • PropTypes
  • Reactstrap
  • Usage of react-router for multiple pages

Good to have

  • using function components (with hooks) instead of class components

Paying attention to

  • How you split code for components
  • Reusability of the components
  • Code repetitions and reusability
  • Working in accordance with good practices in general


Delivery the application by link to public repo or zip file



Language:JavaScript 87.3%Language:HTML 8.8%Language:CSS 3.9%