A simple full-stack application for managing customer records.
- Java: 17.x.x
- Spring Boot: 3.5.8
- Spring Data JPA
- H2 In-Memory Database
- Bean Validation
- OpenAPI / Swagger
- Actuator
- React: 19.2.8
- TypeScript: 6.0.2
- Vite: 8.2.0
- Tailwind CSS: 4.3.3
- Node: 24.14.0
- npm: 11.9.0
- Create customer records
- View customer records
- Input validation
- Global exception handling
- REST API documentation using Swagger
- Unit and integration tests
{
"id": "uuid",
"firstName": "Rohit",
"lastName": "Kori",
"dateOfBirth": "1993-11-14"
}Navigate to the backend directory:
cd backendStart the application:
mvn spring-boot:runThe backend will start on:
http://localhost:8080
http://localhost:8080/swagger-ui.html
http://localhost:8080/h2-console
Navigate to the frontend directory:
cd frontendInstall dependencies:
npm installStart the development server:
npm run devThe frontend will start on:
http://localhost:5173 (otherwise check the terminal for the correct url)
mvn testPOST /api/customersRequest:
{
"firstName": "Rohit",
"lastName": "Kori",
"dateOfBirth": "1993-11-14"
}GET /api/customers- Layered architecture (Controller, Service, Repository)
- DTO pattern used to separate API contracts from persistence entities
- Global exception handling for consistent error responses
- Bean Validation for request validation
- H2 in-memory database for simplicity and portability
- React with TypeScript for type-safe frontend development
customer-management
- backend
- frontend