Skip to content

putra4648/warehouse_system

Repository files navigation

Warehouse Management System (WMS)

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.

Features

  • 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.

Technology Stack

Backend

  • 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

Frontend (web/)

  • Vue 3 & Nuxt 3
  • Nuxt UI (Tailwind CSS, Headless UI)
  • Nuxt Auth (Next Auth) for authentication
  • Biome (Code Formatter)

Infrastructure

  • Docker & Docker Compose
  • Auth0 (Identity Provider)

Getting Started

Prerequisites

Quickstart

Run Docker Compose to start the WMS database:

docker compose up -d

2. Run the Backend

Start the Spring Boot API backend:

./mvnw spring-boot:run

The backend API runs on http://localhost:7000.

3. Run the Frontend

In a new terminal window, navigate to the web/ directory, install dependencies and start the Nuxt app:

cd web
pnpm install
pnpm dev

The 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.

Directory Structure

  • 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.

API Documentation

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.

License

This project is licensed under the GNU General Public License v3.0 License - see the LICENSE file for details.

About

[WIP] Warehouse System ERP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors