orders-app/
Pick any file or folder on the left to see what it is, why it exists, when you add it and the mistakes people make with it. Switch the stage to watch the project grow.
# Create the repository folder
mkdir orders-app && cd orders-app && git init# Generate the Spring Boot server with Spring Initializr (or use start.spring.io in the browser)
curl https://start.spring.io/starter.zip -d type=maven-project -d javaVersion=25 -d configurationFileFormat=yaml -d artifactId=server -d packageName=com.example.orders -d dependencies=web,data-jpa,postgresql,flyway,validation,actuator,docker-compose,testcontainers -o server.zip && unzip server.zip -d server# Scaffold the React client with Vite
npm create vite@latest client -- --template react-ts# Run the API (Spring starts the Postgres container from compose.yaml)
cd server && ./mvnw spring-boot:run# Run the client in a second terminal
cd client && npm install && npm run dev# When the app grows: add routing, data fetching, forms, styling and typed API calls to the client
cd client && npm install react-router @tanstack/react-query react-hook-form @hookform/resolvers zod react-error-boundary openapi-fetch tailwindcss @tailwindcss/vite# Add client tests and the API type generator
cd client && npm install -D vitest @vitest/coverage-v8 jsdom @testing-library/react @testing-library/dom @testing-library/jest-dom @testing-library/user-event msw openapi-typescript