{"id":20382694,"url":"https://github.com/autodesk-forge/forge-digital-catalog","last_synced_at":"2025-04-12T08:53:54.331Z","repository":{"id":44265170,"uuid":"198473544","full_name":"Autodesk-Forge/forge-digital-catalog","owner":"Autodesk-Forge","description":"A responsive web application demonstrating how to build a product catalog with interactive instructions using the Autodesk Forge and Fusion platforms","archived":false,"fork":false,"pushed_at":"2023-02-01T03:49:06.000Z","size":14162,"stargazers_count":13,"open_issues_count":7,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-12T08:53:47.985Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://forge-digital-catalog.herokuapp.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Autodesk-Forge.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-23T16:58:51.000Z","updated_at":"2024-06-13T12:22:21.000Z","dependencies_parsed_at":"2023-02-17T01:46:34.404Z","dependency_job_id":null,"html_url":"https://github.com/Autodesk-Forge/forge-digital-catalog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk-Forge%2Fforge-digital-catalog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk-Forge%2Fforge-digital-catalog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk-Forge%2Fforge-digital-catalog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Autodesk-Forge%2Fforge-digital-catalog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Autodesk-Forge","download_url":"https://codeload.github.com/Autodesk-Forge/forge-digital-catalog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248543882,"owners_count":21121838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T02:18:42.980Z","updated_at":"2025-04-12T08:53:54.308Z","avatar_url":"https://github.com/Autodesk-Forge.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Forge Digital Catalog App\n\n![Platforms](https://img.shields.io/badge/platform-Windows|MacOS-lightgray.svg)\n![Node.js](https://img.shields.io/badge/node-%3E%3D%2010.0.0-brightgreen.svg)\n![License](https://img.shields.io/badge/license-MIT-green.svg)\n\n[![Viewer](https://img.shields.io/badge/Viewer-v7-green.svg)](http://developer.autodesk.com/)\n[![Data-Management](https://img.shields.io/badge/Data%20Management-v1-green.svg)](http://autodesk-forge.github.io)\n[![OSS](https://img.shields.io/badge/OSS-v2-green.svg)](http://autodesk-forge.github.io)\n[![Model-Derivative](https://img.shields.io/badge/Model%20Derivative-v2-green.svg)](http://autodesk-forge.github.io)\n\n[![koa2](https://img.shields.io/badge/koa-2-green.svg)](https://github.com/koajs/koa)\n![vue2](https://img.shields.io/badge/vue-2.6.6-green.svg)\n[![vuetify](https://img.shields.io/badge/Vuetify-2.0-blue.svg)](https://github.com/vuetifyjs/vuetify)\n[![oauth](https://img.shields.io/badge/passport--oauth-1-brightgreen.svg)](https://github.com/jaredhanson/passport-oauth)\n\n![Intermediate](https://img.shields.io/badge/Level-Intermediate-blue.svg)\n\n## Table of Contents\n\n* [Description](#description)\n* [Site](#site)\n* [Prerequisites](#prerequisites)\n* [Getting Started](#getting-started)\n* [Build and Test](#build-and-test)\n* [Deployment](#deployment)\n* [Documentation](#documentation)\n* [Sample Data](#sample-data)\n* [License](#license)\n* [Written By](#written-by)\n\n## Description\n\nThe digital catalog project is a Forge-powered responsive web application that enables companies to publish key models (Inventor, Fusion360) from Fusion Team or BIM360 Docs\nto their proprietary catalog. Companies can create the catalog structure they need as well as retire products, which have reached end-of-life, from the catalog.\n\nExternal users can search the catalog and view a 3D representation of each catalog item using the Forge Viewer.\n\nThis digital catalog solution also delivers interactive instructions workflow (assembly / disassembly instructions) by supporting animations authored in Fusion 360 in the Forge Viewer.\n\nThis web application can act as a foundation for more advanced workflows, such as digital twin initiatives.\n\n## Site\n\n### Landing Page\n\n![Landing Page](/src/client/public/thumbnail.png)\n\n### Administration Console\n\n![Admin Page](/src/client/public/settings.png)\n\n### Publisher Console\n\n![Publisher Page](/src/client/public/publisher.png)\n\n### Interactive Instructions\n\n![Animation Page](/src/client/public/interactive_instructions.png)\n\n### AR/VR Toolkit\n\nThe AR/VR Toolkit feature enables translation of SVF to [glTF](https://www.khronos.org/gltf/) file format.\n\n![ARVR Page](/src/client/public/arvr_toolkit.png)\n\nTo learn how to author augmented reality machine instructions, please go to: [Augmented Virtual Reality](arvr)\n\n### Live Demo\n\n[Digital Catalog](https://forge-digital-catalog.herokuapp.com)\n\n## Prerequisites\n\n- Node.js v10+\n- [Forge](https://forge.autodesk.com) application credentials\n- MongoDB database\n  - for example, use the free tier of [MongoDB Atlas](https://www.mongodb.com/cloud/atlas)\n  - or run it locally: \u003chttps://docs.mongodb.com/manual/installation\u003e\n\n## Getting Started\n\nThis section will guide you through getting the code up and running on your own system.\n\n1. Installation process\n\n    ```git clone https://github.com/Autodesk-Forge/forge-digital-catalog digital-catalog```\\\n    ```cd digital-catalog``` \\\n    ```npm install```\n\n2. Software dependencies\n\n    Please check `dependencies` in [package.json](package.json).\n\n## Build and Test\n\nBecause our frontend app (./src/client) is developed separately from our backend (./src/server) - i.e. our backend exposes an\nAPI for our frontend to talk to, then our frontend is essentially a purely static app. We can deploy\nthe built content in the ```www``` directory to any static file server, but we need to make sure to set the correct\npublicPath.\n\nYou can review how the frontend app will be built by reading the configuration in the ```./vue.config.js``` file.\n\nTo build the frontend app: ```npm run build```\n\nThis will create a new directory ```./www``` with the static files.\n\n### Development build\n\n1. Set environment variables\n\n    ```FORGE_CALLBACK_URL=http://localhost:3000/api/forge/callback/oauth``` \\\n    ```FORGE_CLIENT_ID=\u003cYour Forge Client ID\u003e``` \\\n    ```FORGE_CLIENT_SECRET=\u003cYour Forge Client Secret\u003e``` \\\n    ```MONGODB_URI=\u003cYour MongoDB Uri\u003e``` \\\n    ```NODE_ENV=development``` \\\n    ```USE_LOAD_BALANCER=false```\n\n2. Compile TypeScript\n\n    ```npm run tsbuild```\n\n3. Start Vue.js front-end app\n\n    ```npm run serve```\n\n4. Start Koa.js back-end app\n\n    On first run (only once): \\\n    ```npm run init```\\\n    ```npm run setadmin init```\n\n    Any time you start the server: \\\n    ```npm run dev``` (on mac) \\\n    ```npm run windev``` (on windows)\n\nIf you run into an error connecting to MongoDB, make sure you specify the database name in your connection string.\n`mongoose.connect('mongodb://username:password@host:port/database?options...', {useNewUrlParser: true});`\n\nTo learn how to configure the WebHooks locally, please follow this link: [Local WebHooks Instructions](webhooks)\n\n### Test build\n\n1. Set environment variables\n\n    ```FORGE_CALLBACK_URL=http://localhost:3000/api/forge/callback/oauth``` \\\n    ```FORGE_CLIENT_ID=\u003cYour Forge Client ID\u003e``` \\\n    ```FORGE_CLIENT_SECRET=\u003cYour Forge Client Secret\u003e``` \\\n    ```MONGODB_URI=\u003cYour MongoDB Uri\u003e``` \\\n    ```NODE_ENV=test``` \\\n    ```USE_LOAD_BALANCER=false```\n\n2. Compile TypeScript\n\n    ```npm run tsbuild```\n\n3. Run the tests\n\n    On first run (only once): \\\n    ```npm run init``` \\\n    ```npm run setadmin add \u003cemail\u003e``` \\\n    ```npm run tsbuild:test```\n\n    Any time you run the tests: \\\n    ```npm test``` (on mac) \\\n    ```npm run wintest``` (on windows)\n\n### Production build\n\n1. Set environment variables\n\n    ```FORGE_CALLBACK_URL=https://\u003cYour Web Server\u003e/api/forge/callback/oauth``` \\\n    ```FORGE_CLIENT_ID=\u003cYour Forge Client ID\u003e``` \\\n    ```FORGE_CLIENT_SECRET=\u003cYour Forge Client Secret\u003e``` \\\n    ```MONGODB_URI=\u003cYour MongoDB Uri\u003e``` \\\n    ```NODE_ENV=production``` \\\n    ```USE_LOAD_BALANCER=false``` \\\n    ```VUE_APP_KOA_HOST=\u003cYour Web Server\u003e``` \\\n    ```VUE_HOST=\u003cYour Web Server\u003e```\n\n2. Compile TypeScript\n\n    ```npm run tsbuild```\n\n3. Build Vue.js front-end app\n\n    ```npm run build```\n\n4. Start Koa.js back-end app\n\n    On first run (only once): \\\n    ```npm run init```\\\n    ```npm run setadmin add \u003cemail\u003e```\n\n    Any time you start the server: \\\n    ```npm start``` (on mac) \\\n    ```npm start``` (on windows)\n\n## Deployment\n\nTo learn how to deploy this Forge application, please follow this link: [Deployment Instructions](deployment)\n\n## Documentation\n\nThe online help for this application can be served through docsify.\n\nTo install docsify, please navigate to \u003chttps://docsify.js.org/#/quickstart\u003e\n\nThe documentation markup files for this application are located under the ```./docs``` folder.\n\nTo preview the online help, simply run the command ```docsify serve ./docs``` to start the local server.\nYou can then preview your online help site in your browser on ```http://localhost:3000```.\n\n## Sample Data\n\nThe models used in the live demo can be obtained from \\\n\u003chttps://knowledge.autodesk.com/support/inventor/troubleshooting/caas/downloads/content/inventor-sample-files.html\u003e\n\n## License\n\n\u003e You can check out the full license [here](LICENSE)\n\nThis project is licensed under the terms of the **MIT** license.\n\n## Written By\n\nBastien Mazeran ([@BastienMazeran](https://twitter.com/BastienMazeran)), Tony Mandatori, Autodesk Customer Success Org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk-forge%2Fforge-digital-catalog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautodesk-forge%2Fforge-digital-catalog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautodesk-forge%2Fforge-digital-catalog/lists"}