As part of the application process, you’ve been requested to complete the following challenge. If you have any questions please respond to the last email you received from our team.


Create a Laravel Application with Postgresql as your database (feel free to utilize a Laravel starter app or other pre-built components like Breeze, Jetstream or Fortify);

  • Add standard authentication features such as login, registration, password reset, email verification, and password confirmation;
  • Using our GET accessible endpoint (there are no parameters to/from required), create a new endpoint in Laravel that:
    • Can be used only when logged in;
    • Calls the above endpoint to get the data to return;
    • Which when called always returns the data, but regardless of when/how many times it is called should never request the data from our server more than 1 time per hour;
  • Once logged in the user should see a single-page js app that shows a styled table-like display containing information fetched from your local endpoint;
  • Add a button below the table which, when clicked will force a refresh of the data in the table;
  • Create an Artisan command that can be used to force the refresh of this data the next time the Laravel endpoint is called;
  • Organize the code so it can be deployed on a free Heroku Dyno and the free tier of the Heroku Postgres Add-On
  • Ensure to properly escape, sanitize and validate data in each step as appropriate.

Your code MUST be deployable to Heroku using this sequence of commands:

unzip {dev challenge zip file}
cd {dev challenge app root directory}
git init
heroku apps:create {app name}
heroku git:remote {app name}
heroku addons:create heroku-postgresql:hobby-dev -r heroku
git add .
git commit -m "Initial Commit"
git push heroku master
heroku config:set DB_CONNECTION=pgsql APP_DEBUG=true APP_KEY={base64 key}
heroku run php artisan migrate
heroku run php artisan db:seed
heroku open

Package the code as a Zip file and upload it to the form below:

Click or drag a file to this area to upload.