Project layout

Summary

In this chapter, we will discuss the layout and directory structure of the Inventory Management tutorial. The tutorial is structured so that you can add code snippets as you read. If you’d like to see the completed tutorial, it is located in the completed branch of the repository.

Concepts

  • VS Code directory structure

  • Overview of provided files


These tutorials will use a working development environment to enable you to code along through this exercise. If you have not already reviewed the Environment setup section of these tutorials, please do that first.

Once you have your IDE set up and Node.js installed, open the Inventory Management project directory in your editor.

<HC_installation_root>
├── tutorials
│   ├── inventory_management // HERE
│   │   ├── data
│   │   │   ├── database
│   │   │   ├── thumbnails
│   │   │   └── xml
│   │   ├── favicon.ico
│   │   ├── img
│   │   ├── index.html
│   │   ├── package-lock.json
│   │   ├── package.json
│   │   ├── src
│   │   │   ├── css
│   │   │   ├── hoops
│   │   │   └── js
│   │   ├── tsconfig.json
│   │   └── webpack.config.js

A brief overview of this directory structure:

  • data – contains the provided .SCS model data and subdirectories
    • database – user data linking the node IDs to additional data
    • thumbnails – thumbnails for models that will be used
    • xml – xml output directory for converted models
  • src – source code for the application
    • css – style sheets for the application
    • hoops – any HC client related libraries and code
    • img – static image assets used by the application
    • js – where we will write and place our application Javascript files
      • completed_reference_code - a directory containing completed JavaScript implementation of this tutorial for your reference
  • favicon.ico – TS3D favicon
  • index.html – defines the document hierarchy and entry point of our application
  • package.json – defines our project structure and lists any development dependencies to install
  • webpack.config.js – defines options for how we will be using webpack to serve our application

In order to focus more on the HOOPS Communicator WebViewer API, we have provided the HTML, CSS, and project configuration files for you, so you do not need to write them yourself.