An actuator plate configurator exploring web → parametric CAD → quote pipelines.
- Rust (latest stable)
- Bun (JavaScript runtime)
- Just (command runner) - install via
cargo install justorbrew install just - Terraform (IaC)
- AWS CLI (Cloud provider)
# Install frontend dependencies
cd frontend && bun install && cd ..
# Start development servers
just devThis starts:
- API: http://localhost:3030 (Rust/Axum)
- Frontend: http://localhost:3000 (Bun/React with HMR)
├── crates/ # Rust workspace (see crates/README.md)
│ ├── domain/ # Core types (ActuatorPlate, Millimeters)
│ ├── validation/ # Business logic (no_std, field validators)
│ ├── web/ # Axum REST API server
│ └── parametric/ # KCL parametric CAD definitions
├── frontend/ # React SPA (Bun, TailwindCSS, shadcn/ui)
└── justfile # Dev and build commands
See crates/README.md for detailed crate documentation.
Development: Two servers - Bun (frontend with HMR) + Rust (API)
Production: One server - Rust serves API + static frontend
┌─────────────────────────────────────────┐
│ Production Server │
│ │
│ /api/* → Axum handlers │
│ /* → Static files (React SPA) │
│ │
└─────────────────────────────────────────┘
just dev # Start both servers for development
just dev-frontend # Start only frontend dev server
just build-release # Build frontend + Rust for production
just test # Run all tests once
just clean # Clean build artifacts
just # List all available commandsbacon run-long # Run API with auto-restart on file changes
bacon test # Run tests with auto-rerun on changes
bacon clippy # Run linting with auto-rerun on changes
bacon check # Run type checking with auto-rerunFull-stack development:
just devBackend-focused development (two terminals):
# Terminal 1
bacon run-long
# Terminal 2
cd frontend && bun devFrontend-only:
just dev-frontend
# or
cd frontend && bun devQuick test run:
just testTest-driven development:
bacon testPlaterator deploys to AWS Lightsail with no Docker required:
# One-time setup (~5 min)
just tf-init # Initialize Terraform
just tf-plan # Review infrastructure (13 resources, ~$5/month)
just tf-apply # Create AWS infrastructure
just set-zoo-token # Store zoo CLI token
# Deploy application
git push origin master # Triggers GitHub Actions build
just deploy # Download + deploy to LightsailHow it works: GitHub Actions builds the Linux binary, you download it and deploy to Lightsail using your local AWS credentials. No Docker on your machine, no container overhead in production.
See QUICKSTART.md for step-by-step guide.
Infrastructure: Lightsail ($3.50/mo), S3, DynamoDB, Secrets Manager, CloudWatch
Platerator includes interactive OpenAPI (Swagger) documentation:
Development: http://localhost:3030/api/docs Production: https://your-domain.com/api/docs
The Swagger UI provides:
- Complete API endpoint documentation
- Request/response schemas with examples
- Interactive "Try it out" functionality
- Parameter descriptions and validation rules
| Method | Path | Description |
|---|---|---|
| GET | /api/health |
Health check |
| POST | /api/validate |
Validate plate parameters without generating files |
| POST | /api/generate |
Generate STEP and glTF model files |
| GET | /api/download/step/{session_id} |
Download generated STEP file |
| GET | /api/download/gltf/{session_id} |
Download generated glTF file |
| GET | /api/docs |
Interactive Swagger UI documentation |
| GET | /api/openapi.json |
OpenAPI specification (JSON) |
- CLAUDE.md - Development guide (architecture, patterns, workflows)
- crates/README.md - Rust crates documentation
- frontend/README.md - Frontend documentation
- TESTING.md - Testing documentation
- QUICKSTART.md - Start here for AWS deployment
- DEPLOYMENT.md - Complete deployment guide
- terraform/README.md - Infrastructure documentation
- PLAN.md - Feature roadmap
- LEARNING.md - Technical exploration notes