Software stack
TypeScript is used because the asynchronous functionality is very suited for IO-intensive scalable applications. TypeScript also has the benefit of offering a single language and environment for the front end and back end. Parallel processing with Node.js worker threads is implemented to avoid performance bottlenecks for CPU-intensive tasks such as importing and data analysis with neural networks. Also, Kubernetes can automatically scale performance by spinning up additional containers that run in parallel. Docker is used to package all front-end and back-end modules. Docker is also used for integration with third-party platforms. This allows the use of libraries written in various languages such as Python, Rust, or JavaScript while providing a consistent REST integration API. Kubernetes is used for the deployment of microservices because it provides ease of installation and scalability and runs on low-end and high-end platforms.
Area | Component | Usage |
---|---|---|
FrontEnd | Material-UI | Framework for front-end components such as buttons, date pickers and menus. |
React | Framework for development of app and progressive web applications. | |
Three.js | High performance 3D graphics framework based on WebGL. | |
That open | Reading IFC files and accessing BIM metadata. | |
Blockly | Visual programming for automation, compliance monitoring, and solid modeling. | |
Cesium | Display of digital twins and sensor data in a 3D world view. | |
Websockets | Push state updates to browsers and mobile apps. | |
TypeScript | Main development language for client and server. | |
Ionic | Development of multi-platform apps with Bluetooth support. | |
Jest | Automated unit testing and UI testing. | |
BackEnd | TensorFlow | Machine learning framework for data analysis and forecasting. |
Node.js | Main development environment for client and server. | |
VM2 | Sandbox for running user defined JavaScript customizations. | |
Express | Web application framework for implementing REST APIs and web sockets. | |
Swagger | OpenAPI 3.0 compliant REST API documentation. | |
MongoDB | Persistent storage of IoT data, application data and documents. | |
Rust | High-performance and low footprint microservices for making custom connections to other systems. | |
C++ | Programming microcontrollers with sensors such as ESP32. | |
Puppeteer | Data collection using web crawling. | |
Mocha | Automated unit testing and integration testing. | |
DevOps | Docker | Packing of microservices into containers for deployment on ARM64 and AMD64 platforms. |
Kubernetes | Deployment and scaling of docker containers. | |
Helm | Installation and upgrading releases in Kubernetes. | |
Ansible | Configuration of linux and virtual machines. | |
Selenium | Integration testing and generation of screenshots for documentation. | |
Gitlab | Source code management and continuous integration. |