Skip to content

A react-based app to serve for Dynamo landing page.

License

Notifications You must be signed in to change notification settings

DynamoDS/DynamoHome

Repository files navigation

DynamoHome

License version Build Publish

A react-based app to serve as Dynamo landing page. This application is specific to Dynamo and utilizes several specific endpoints to work as intended.

Introduction

Layout

The sidebar contains links to the 3 main modules:

  • Recent - lists of recently opened files (the number of recent files can be changed by the user in Dynamo preferences window)
  • Samples - lists Sample files. e.g "%ProgramData%\Autodesk\RVT 2025\Samples"
  • Learning - a one-stop-shop for Dynamo learning resources

Recent module

recent

Samples module

samples

Learning module

learning

Development

Requirements

Install

git clone https://github.com/DynamoDS/DynamoHome.git
cd DynamoHome
npm install --force

Running the project

npm start

Build for development

npm run build

Create a distribution bundle

npm run bundle

Lint

We use ESlint to analyze and find problems. It has integrations for various editors and other tools.

npm run lint:check  # To find problems
npm run lint:fix    # To fix problems

Test

We use jest and playwright to run our tests.

npm run test:unit   # To run unit test
npm run test:e2e    # To run e2e test
npm run test        # To runs all tests

Bump Version

npm run version:patch   # To bump patch version

Localization

Localization is done via react-intl library. The current setup relies on the combination of these 2 elements:

export const getMessagesForLocale = (locale) => {
  switch(locale) {
    case 'en':
      return EnglishMessages;
    default:
      return EnglishMessages;
  }
}

3rd party libraries and dependencies

The use of 3rd party libraries was kept to the bare minimum, where developing native elements would have resulted in exceptional time overhead.

Generate Third Party License Info

  • To generate about box html files use npm run license, this will output alternative about box files to license_output. One will contain the full transitive production dep list, the other will contain the direct production deps.
  • These files will be packed into the released npm package