Development Overview

Hello there. If you're reading this, you've probably decided to contribute to easy-db-lab or use the tools for your own work. Very cool.

Dev Containers are the preferred method for developing easy-db-lab. They provide a consistent, pre-configured environment with all required tools installed:

VS Code

  1. Install the Dev Containers extension
  2. Open the project folder
  3. Click "Reopen in Container" when prompted

JetBrains IDEs

  1. Install the Dev Containers plugin
  2. Open the project and select "Dev Containers" from the remote development options

CLI with bin/dev

The bin/dev script provides a convenient wrapper for dev container management:

bin/dev start          # Start the dev container
bin/dev shell          # Open interactive shell
bin/dev test           # Run Gradle tests
bin/dev docs-serve     # Serve docs with live reload
bin/dev claude         # Start Claude Code
bin/dev status         # Show container status
bin/dev down           # Stop and remove container

To mount your Claude Code configuration (for AI-assisted development):

ENABLE_CLAUDE=1 bin/dev start

Run bin/dev help for all available commands.

Building the Project

Once inside the container (or with local tools installed):

./gradlew assemble
./gradlew test

Documentation Preview

Preview documentation locally with live reload:

bin/dev docs-serve

Then open http://localhost:8000 in your browser.

Project Structure

easy-db-lab is broken into several subprojects:

Architecture

The project follows a layered architecture:

Commands (PicoCLI) → Services → External Systems (K8s, AWS, Filesystem)

Layer Responsibilities

For more details, see the project's CLAUDE.md file.