A comprehensive 3D scene management system built with NestJS and modern web technologies.
- Node.js (v16 or higher)
- npm or yarn
- Nx CLI (optional but recommended)
npm installmake serveor
npx nx run @object-lab/demo-api:serveThe API server will start on http://localhost:3000
make runor
npx nx run @object-lab/viewer:devThe client application will be available at http://localhost:4200
- Install dependencies:
npm install - Start the server:
make serve(runs on port 3000) - Start the client:
make run(runs on port 4200) - Navigate to: http://localhost:4200
nx run @object-lab/demo-api:testnpx nx g @nx/nest:app packages/${appname}Interactive Swagger documentation is available at: http://localhost:3000/api/docs
- Version: 1.0
- Base URL:
/api - Documentation Standard: OpenAPI 3.0
- GET
/api- Application health check
- GET
/api/scene-objects- Get all scene objects - POST
/api/scene-objects- Create a new scene object - GET
/api/scene-objects/{id}- Get scene object by ID - PUT
/api/scene-objects/{id}- Update scene object by ID - DELETE
/api/scene-objects/{id}- Delete scene object by ID
object-lab/
├── packages/
│ ├── demo-api/ # NestJS API server
│ ├── demo-api-client/ # API client for the demo
│ └── viewer/ # Frontend viewer application
├── Makefile # Make commands for easy development
├── README.md
└── package.json
| Command | Description |
|---|---|
make serve |
Start the demo API server |
make run |
Start the viewer client application |
npm run test |
Run API tests |
npm run create-app |
Generate a new NestJS application |
| Command | Description |
|---|---|
npx nx run @object-lab/demo-api:serve |
Start the demo API server |
npx nx run @object-lab/viewer:dev |
Start the viewer in development mode |
nx run @object-lab/demo-api:test |
Run API tests |
- API Server: Default port 3000
- Client Application: Default port 4200
You can override the API server port by setting the PORT environment variable:
PORT=8080 npx nx run @object-lab/demo-api:servecurl http://localhost:3000/api/scene-objectscurl -X POST http://localhost:3000/api/scene-objects \
-H "Content-Type: application/json" \
-d '{"name": "Cube", "position": {"x": 0, "y": 0, "z": 0}}'curl http://localhost:3000/api/scene-objects/1This project is licensed under the MIT License.