Skip to content

release: v0.1.0 static dispatching MVP - #95

Merged
V1rex merged 48 commits into
mainfrom
develop
Jun 14, 2026
Merged

release: v0.1.0 static dispatching MVP#95
V1rex merged 48 commits into
mainfrom
develop

Conversation

@V1rex

@V1rex V1rex commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Summary

This PR prepares Lift Nexus API v0.1.0, the first stable portfolio release of the static warehouse dispatching MVP.

Changes

  • Finalized README, CHANGELOG, documentation, roadmap, and release metadata.

  • Added API usage/demo documentation and a short README demo GIF.

  • Set project/OpenAPI version to 0.1.0.

  • Added Maven Wrapper files for reproducible local builds.

  • Removed unreliable public doc-coverage/Surefire presentation.

  • Kept Checkstyle disabled for v0.1.0; it will be reintroduced later.

  • Fixed solver demo workflow:

    • planning data is loaded with the required graph
    • assignments are persisted through the owning relationship side
    • seeded demo data now produces a feasible solver result
  • Updated planning tests/mocks to match the final solver persistence flow.

Scope

v0.1.0 is a portfolio MVP, not a production WMS. It supports static one-shot dispatching with seeded data, asynchronous dispatch jobs, Timefold-based assignment planning, Docker Compose setup, tests, CI, and documentation.

Validation

  • Maven build passes
  • Tests pass
  • MkDocs build passes
  • Docker Compose starts from a fresh clone
  • Dispatch job completes successfully
  • GitHub Actions are green

V1rex and others added 30 commits May 1, 2026 08:15
… and profile based seed data (#33)

* feat: implement PostgreSQL persistence with Flyway migrations.

* feat: implement data seeder for development environment with initial locations, forklifts, and tasks.

---------

Co-authored-by: Amine <medaminebahij02@gmail.com>
Co-authored-by: Amine <medaminebahij02@gmail.com>
* chore(loging): first version of logback-spring.xml

* chore(loging): logged ForkliftService, LocationService and TaskService.

* chore(loging): logged WarehouseDispatcherService.

* chore(loging): logged GlobalExceptionHandler.

---------

Co-authored-by: Amine <medaminebahij02@gmail.com>
* test(task): establish comprehensive testing suite for TaskService

* test(location): establish comprehensive testing suite for LocationService.

* test(forklift): establish comprehensive testing suite for ForkliftService.
)

* test(location): add integration tests and configure H2 for offline testing

* test(location): add integration tests for LocationController and update LocationRequest validation

* test(location): add integration tests for Location integration and mapping functionality

* test(forklift): add integration tests for ForkliftMapper toEntity and toResponse methods

* test(forklift): add integration tests for ForkliftRepository database constraints and custom query methods

* test(forklift): add integration tests for ForkliftController and implement validation error handling

* test(task): add integration tests for TaskRepository including validation and custom query methods

* refactor:  rename project package structure to liftnexus.

* test(task): add integration tests for TaskMapper toEntity and toResponse methods

* test(task): add integration tests for TaskController

Closes #37, #43
…stom Metrics Automation) (#40)

* style: apply consistent formatting and remove unnecessary line breaks in multiple classes using spotless

* feat: integrate Checkstyle for code quality checks

* devops: integrate code metrics for style compliance and documentation coverage

* devops: update CI configuration to include devops branches for push events

* devops: update CI configuration to generate dynamic badges for develop, main and devops branches

* devops: enhance CI configuration for comprehensive code analysis and documentation coverage

* devops: refine CI pipeline for improved documentation coverage and badge updates

* devops: enhance CI pipeline with caching for Maven dependencies and improve coverage calculation

* devops: update badge URLs in README for code style and documentation coverage

* devops: integrate JaCoCo test coverage tracking and enhance badge generation in CI pipeline

* devops: fixed doc coverage badge.

Closes #40, #45
…#46)

* refactor: rename location entity to storageBin and update related references

* refactor: implement StorageBin entity and related components.

* refactor: clean up code formatting and improve readability in StorageBin and Coordinate classes

closes #46, #48
…epository with validation (#49)

* feat(loadunit): implement LoadUnit entity, controller, service, and repository with validation

* refactor(loadunit): improve code formatting and structure for LoadUnit entity, controller, service, and mapper

closes #49, #51
…order package (#50)

* refactor: rename Task to TransportOrder and update related components

* refactor: rename Task to TransportOrder and update related tests and services

* chore(tests): improve formatting and readability in TransportOrderControllerTest and TransportOrderServiceTest

closes #50, #52
…vs twin asset) (#54)

* refactor(forklift): enhance Forklift entity with new attributes and validation

* refactor(forklift): separate concerns by introducing ForkliftTypeService, ForkliftTypeController and enhancing Forklift service methods

* refactor(forklift): improve ForkliftType mapping and add tests for ForkliftTypeService and ForkliftTypeController

closes #54, #55
* feat(data-seeder): implement data seeder for forklifts, load units, and transport orders

* refactor(data-seeder): improve code formatting and readability in data seeder implementation

closes #57, #58
* feat(constraints): implement forklift capacity constraint and associated tests

* feat(constraints): implement forklift travel distance constraint and associated tests

* refactor(constraints): improve formatting and readability of forklift capacity and travel distance constraints

* feat(constraints): implement transport order equipment requirement constraint and associated tests

closes #59
…rastructure (#60)

* feat(constraints): integrated implemented constraints into WarehouseConstraintProvider

* feat(constraints): add unit tests of the WarehouseConstraintProvider

* feat(planning): implemented buildCurrentState function in WarehouseDispatcherService that represents the state of the warehouse

* feat(planning): implement DispatchJob entity and repository for job management

* feat(dispatch): implement terminateOptimizationJob method to abort active jobs

* feat(optimization): implemented a saveFinalSolution functionality in the WarehouseDispatcherService

* feat(tests): add unit tests for saveFinalSolution in WarehouseDispatcherService

* feat(tests): add unit tests for saveFinalSolution in WarehouseDispatcherService

closes #61
* feat: add OpenAPI configuration and update project metadata in pom.xml

* chore: add MIT License file

* chore: add .gitignore file to exclude build artifacts and IDE settings

* chore: update license from MIT to Apache License 2.0 in LICENSE and pom.xml

* chore: update copyright information in LICENSE and pom.xml

* chore: update issue templates for bug reports, features, and documentation

* chore: format OpenApiConfig.java for improved readability

closes #64
…r public release (#65)

* feat: enhance README with project overview, installation instructions, and usage guidelines

* docs(readme): update README with detailed roadmap and contributing guidelines

* docs(architecture): add detailed architecture document for Lift Nexus API

* docs(contributing): add contributing guidelines for Lift Nexus API Project

closes #66
…#30)

* feat(exception-handling): implemented multiple BAD Request cases not handled by the GloablExceptionHandler.

* feat(exception-handling): implement global exception handling framework with custom error codes

* feat(exception-handling): add custom exceptions for forklift domain and update error handling

* feat(exception-handling): add LoadUnit domain exceptions and integrate with existing error handling

* feat(exception-handling): replace ResourceNotFoundException with LoadUnitNotFoundException and update related tests

* feat(exception-handling): add LoadUnitExceptionHandler for handling LoadUnitDomainException

* feat(exception-handling): add StorageBin domain exceptions and integrate with error handling

* feat(exception-handling): implement TransportOrder domain exceptions and update error handling

* feat(exception-handling): add DispatchJob domain exceptions and integrate with error handling

* feat(exception-handling): refine exception handling and improve code formatting

* feat(exception-handling): refine exception handling and improve code formatting

* feat(exception-handling): fixed some errors related to exception handling.

closes #68
* docs(forklift): written the code of the ForkliftService.

* docs(forklift): written doc of the ForkliftTypeService.

* docs(forklift): written doc of the LoadUnitService.

* docs: written doc of the StorageBinService and TransportOrderService

* docs(planning): written doc of the WarehouseDispatcherService.

* docs: enhanced coding style.

closes #70
* feat: implement Schema Validation of DispatchJob

* refactor: applied spotless

closes #72
* test: migrate from H2 to Testcontainers with real PostgreSQL 16

Replace the H2 in-memory database with Testcontainers-backed PostgreSQL
for all integration tests, ensuring tests run against the same database
engine as production.

* ci:  added timeout of 15 minutes for the run of tests.

* test:  remove @activeprofiles("test") from pure mock tests

* refact: fixed formating of the code

closes #76
* ci: skip container reuse on CI and let Ryuk manage cleanup
)

- ci: align badge label from "code style" to "build" to match
  what the step actually tracks (job pass/fail, not spotless)
Pages (#85)

fix: spotless error in OpenApiGeneratorTest

fix: spring api doc not retrievable in OpenApiGeneratorTest

ci: skip checkstyle and spotless during javadoc generation

feat: generate OpenAPI spec at build time and deploy docs portal to
GitHub Page (#85)
…yed website for documentation (#87)

* docs: updated README.md to reflect the current state of project with a detailed table for the roadmap.

* chore: added new logo shown in README.md

* docs: updated the design of the index.html and moved assets to the docs.

* devops: updated page deployement in CI.

* devops: try at redeploying documentation.

* devops: added exception to the deployment of docs in the devops.

* docs:  added first running version of mkdocs documentation.

* devops: added caching to pip installations in the ci pipeline

* docs: wrote the first version of the index in the documentation

* ci:  fixed problem with caching python libraries needed for the documentation

* docs(readme):  added urls to some of the badges.

* docs(readme):  updated the urls in the README.

* docs: added github logo to check repo button

* ci: added custom domain to the documentation page of the project

* docs: moved the architecture.md to the documentation website and wrote a clean personal one explaining clearly the architecture decisions
* ci: move JaCoCo coverage parsing to Python script

* ci: move JavaDoc coverage parsing to Python script

* ci: move page preparing of the project to bash script

* fix(ci): generation and deployment of javadoc 

* ci:  split the pipeline into multiple gates

* ci: added preview and dev websites to the pipeline deployment.
* docs(index): improve MkDocs overview navigation

* docs: add project overview page

* docs: clarify current MVP limitations

* docs: clarify current domail model

* docs: add project roadmap

* docs: document current solver constraints

* docs: docs: describe testing strategy

* fix(docs): some current inconsistencies in the documentation

* docs:  added explaination of the api-usage
* ci: disable checkstyle for v0.1.0 release

* docs: removed the checkstyle badge from the README
@V1rex V1rex self-assigned this Jun 14, 2026
@V1rex V1rex added the enhancement New feature or request label Jun 14, 2026
@V1rex
V1rex merged commit ec810a6 into main Jun 14, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant