Back to Junior Level
React/Spring Boot Guest Book
Prerequisite
- React
- Java 8 or later
- Spring Boot
- Postgres
- Material UI
- Docker Compose
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 Java + Spring Boot API to be stored in a Postgres database.
- Backend
- POST new guest check-in endpoint
- POST-BODY: {
first_name
: ‘String’,last_name
: ‘String’,message
: ‘String’,phone_number
: ‘String’}. - Side effect: The guest check in is recorded in the Postgres database with a unique UUID for each check-in.
- Output: HTTP 200 response.
- POST-BODY: {
- GET guest check-in’s endpoint
- Input: None
- Output: HTTP 200 response with JSON list of all recorded check-in’s.
- DELETE guest check-in endpoint
- Input: check-in UUID
- Output: HTTP 200 response with JSON output of the check-in that got deleted.
- POST new guest check-in endpoint
- Frontend
- React App
- Create a React frontend that makes use of the above endpoints. The UI can be sparse but should still look compelling.
- The UI should use the Material UI component library for basic components and theming. Use either a ’light’ or ‘dark’ theme, no need to switch.
- 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 by clicking on a button that opens a form inside a Material UI Modal component. (https://mui.com/material-ui/react-modal/)
- 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 the last ten guest check-ins with their name and message (not phone number).
- No authentication is necessary.
- React App
Deliverable
- A docker-compose.yml file that defines all containers needed to run this locally
- Unit/integration tests
- A great README with instructions on how to run everything locally using Docker
- We will evaluate your application on either M1 or x86 Macbooks or inside a Linux Virtual Machine, and will follow your deployment instructions exactly as written in the README.
- A GitHub repo with read permissions given to GitHub users
rafty8s
,bsneider
,omnipresent07
,barakstout
, andcskeen
(how to invite collaborators)