Corelab Challenge

Welcome to the Corelab Challenge! Here you'll show us how awesome you are at coding. In order to do that, we've prepared two repositories which you will fork and program.

The Challenge

You will create a web app which will consume an API to manage the CRUD of vehicles.

The frontend repository is this: https://github.com/corelabbr/corelab-web-challenge

If you feel more comfortable, you can pick another React framework and show us your skills.

The backend repository is this: https://github.com/corelabbr/corelab-api-challenge

If you feel more comfortable, you can pick another Node JS framework and show us your skills.

Try to show us all the skills you have, the more you do and care about the code, the more we get impressed. That's your CHANCE.

Mobile Layout

The Mobile Layout can be found here: https://shorturl.ae/NTyff

Desktop Layout

The Desktop Layout can be found here: https://shorturl.ae/xEIEo

Backend

Repository:

  1. Node: ^16.15.0
  2. NPM: ^8.5.5
  3. Framework: Adonis TS or any other node framework you know.
  4. Database: Choose your own, you can even save in memory.

Frontend

Repository:

  1. Node: ^16.15.0
  2. NPM: ^8.5.5
  3. Framework: React TS
  4. Sass or other preprocessor

The Required Features

  1. On clicking on an "Add new vehicle" button, a new form opens up to create a vehicle.
  2. On submitting the form, it needs to save the new vehicle.
  3. On typing at the search input, it should filter the vehicles comparing to any of the vehicles property. E.g.: it should compare the searched term to either name, or description, or price, or any other field in the vehicle.
  4. On clicking on a heart icon, it should favorite the vehicle.
  5. On clicking on an edit icon, it should open the form again to update the selected vehicle.
  6. On clicking on an delete icon, it should remove the vehicle.
  7. On clicking on the filter icon, it should open the filters form, and when the filters are selected, it should filter the vehicles based on those values.

What are we assessing

  1. Code Quality
  2. Code Format
  3. Code Perfomance
  4. Frontend Design
  5. If your code is Easily Readable
  6. Mobile First approach
  7. Code Responsability
  8. Features Work
  9. Responsiveness

Want to impress us even more?

If you feel comfortable and want to impress us even more, you can do the following:

  1. Work on correct types and interfaces
  2. Work on eslint rules
  3. Work prettier config
  4. Work on docker containers
  5. Work on tests
  6. Work on CI/CD

What to do when you finish?

Create a file PULL_REQUEST.md where you will describe what you did and how in as much detail as possible. Feel free to add videos for better explanation.

Create a new pull request using the same branch name for Backend and Frontend

Send us the pull requests and that's all!