Back to Junior Level

React/Express Guest Book


Prerequisite

  • React/Next.js
  • Node.js v23 or later
  • PostgreSQL
  • Docker Compose
  • Shadcn/UI
  • Host the application somewhere with a public facing URL
  • Use of Cursor, Claude, etc. is allowed – IDE and Prompts must be demonstrable during the interview

Requirements

You are tasked to create a simple guest book web application that provides users a way to check in to the website and leave a note with their name and contact info. The data entered into the guest form will be sent to a Node.JS Express API to be stored in a PostgreSQL database.

  • Backend

    • POST new guest check-in endpoint
      • POST-BODY: first_name, last_name, message, phone_number.
      • Side effect: The guest check in is recorded in the PostgreSQL database with a unique ID for each check-in.
      • Output: HTTP 200 response.
    • GET All guest check-in’s endpoint
      • Input: None
      • Output: HTTP 200 response with JSON list of all recorded check-in’s.
    • GET Specific guest check-in’s endpoint
      • Input: Guest ID
      • Output: HTTP 200 response with JSON list of all recorded check-in’s.
    • DELETE guest check-in endpoint
      • Input: check-in ID
      • Output: HTTP 200 response with JSON output of the check-in that got deleted.
  • Frontend

    • React App
      • Create a React frontend that makes use of the above endpoints. The UI can be sparse but should still look compelling.
      • There should be a simple header and footer. Feel free to use some Lorem Ipsum to fill in space.
      • Guests should be able to check in via a form on the top of the page.
      • Add an image (bonus points for a carousel of images) that is positioned behind the guest form.
      • Below the image and check in form add a table that shows all previous guest check-ins with their name and message (not phone number).
      • No authentication is necessary but a good to have

Deliverable

  • A docker-compose.yml file that defines all containers needed to run this locally. Interviews should be able to run the code on localhost using one line docker command.
  • Public facing URL for the application – You can use free services like Supabase to host PG and services like Vercel to host the application.
  • Unit/integration tests
  • A great README with instructions on how to run everything locally using Docker
  • A GitHub repo with read permissions given to GitHub users rafty8s,slaplante-raft, omnipresent07, and JacobTyo (how to invite collaborators)