A full-stack, comprehensive Warehouse Management System (WMS) built with Spring Boot, Nuxt 3, and PostgreSQL. It uses OAuth2 with Auth0 for authentication and provides full inventory management components.
- Inventory Tracking: Full CRUD for tracking categories, products, suppliers, and items.
- Warehouse Management: Manage warehouses, zones, racks, locations, and bin numbers.
- Stock Control: Capabilities for inventory tracking, adjustments, inbound, and outbound management.
- Authentication & Security: Robust OAuth2 implementation via Auth0 and Okta Spring Boot Starter.
- API Documentation: Interactive Swagger UI and OpenAPI documentation for backend APIs.
- Dockerized Infrastructure: PostgreSQL database setup easily through Docker Compose.
- Testing: Spring Boot Testcontainers config for database integration tests.
- Java 21
- Spring Boot 3.5.x
- Spring Security (OAuth2 / Okta Spring Boot Starter)
- Spring Data JPA
- PostgreSQL
- MapStruct & Lombok
- OpenAPI & Swagger
- JUnit 5 & Testcontainers
- Vue 3 & Nuxt 3
- Nuxt UI (Tailwind CSS, Headless UI)
- Nuxt Auth (Next Auth) for authentication
- Biome (Code Formatter)
- Docker & Docker Compose
- Auth0 (Identity Provider)
- Docker and Docker Compose installed.
- Java 21 Development Kit (JDK 21).
- Node.js (Version 18+ recommended).
- pnpm (or npm/yarn/bun).
Run Docker Compose to start the WMS database:
docker compose up -dStart the Spring Boot API backend:
./mvnw spring-boot:runThe backend API runs on http://localhost:7000.
In a new terminal window, navigate to the web/ directory, install dependencies and start the Nuxt app:
cd web
pnpm install
pnpm devThe frontend application will be available at http://localhost:3000.
Please refer to the Swagger Documentation for details on how to test authenticated APIs with Auth0.
src/main/java/id/putra/wms: Spring Boot backend roots containing controllers, domain logic, config, and repositories.src/test: Backend testing files and Testcontainer setups.web/: Contains the complete frontend Nuxt 3 application code.docker/: Custom configurations and overrides for docker environments.config/: Contains standard or reference configurations.
With the backend running locally, you can view the fully documented REST API via Swagger:
- Swagger Interactive UI:
http://localhost:7000/swagger-ui.html - OpenAPI JSON Spec:
http://localhost:7000/v3/api-docs
To test authenticated endpoints in Swagger, see the instructions provided in SWAGGER.md.
This project is licensed under the GNU General Public License v3.0 License - see the LICENSE file for details.