Project creates ✨3d inventory
✨—a solution that allows you to build a spatial and database representation of your warehouses or datacenters.
I am developing this project as a sandbox to explore database systems. It covers relevant topics and issues related to creating a simple and efficient platform for graphical representation of IT inventory.
Project contain three repos:
- ⚓ https://github.com/karol-preiskorn/3d-inventory-angular-ui
- ⚓ https://github.com/karol-preiskorn/3d-inventory-mongo-api
- ⚓ https://github.com/karol-preiskorn/3d-inventory-oracle-api
Angular
19+ - as a Corp framework.Bootstrap
5.3+ - logic for insertUI
datatree.js
163+ - as best graph framework.MongoAtlas
|Oracle
- I want to try different solutions and data structures, including both relational and NoSQL data models using MongoAtlas and Oracle.REST
- preparedAPI
documented and used inSwagger
.Docker
as containers
The 3d inventory
project leverages Angular
for building the user interface and utilizes the three.js
library to render interactive 3D graphics.
The data model is based on a parametric, generic attribute class. All attributes for Devices
, Models
, and Connections
are stored in this model.
Parameter types are defined in the Attribute Dictionary
.
Attributes store values defined in the Attribute Dictionary
for Devices
, Models
, and Connections
. The Attribute Dictionary
specifies parameters for these entities.
I had a lot of fun learning how to convert relational DB structures to correct collections in NoSQL MongoDB.
Relational data model is mapped to a NoSQL model in MongoDB.
git clone https://github.com/karol-preiskorn/3d-inventory-angular-ui.git
cd 3d-inventory-angular-ui
npm install
npm run start
Goto in browser http://localhost:4200 http://localhost:4200/
https://angular.io/guide/deployment
Build in first terminal: ng build --watch
in npm alias:
npm run build
Docker is used for containerization, and deployment to Google Cloud is planned.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate. Do not forget about code guidelines.