Skip to content

Directory structure

Darren Siegel edited this page Oct 24, 2017 · 9 revisions

Top level

  • assets - static assets needed for web application
  • src - Application source code
  • test - Application unit tests

src directory

  • actions - Redux action creators
  • components - General application components and views
  • data - Data models and persistence
  • editors - Editor implementations
    • document - Top level document editors. Each editor should exist in a subdirectory.
      • workbook - Workbook page editor
      • course - Course editor
      • assessment - Assessment editor
      • org - Organization editor
      • common - Common components and utilities
    • content - Content based sub-editors.
      • common - Common components and utilities
  • reducers - Redux reducer implementations. Each reducer should be defined in a subdirectory
  • utils - application wide utilities

src dependency graph

The following image depicts the dependencies that should be enforced within the code. The arrows indicate an allowed dependency between code in the various directories or components depicted. For instance, the presence of the arrow between reducers and actions indicates that it is acceptable for code in reducers to use or depend on code in directory actions. With no arrow between them, it is not acceptable for code in editors/document to depend on or use code in data - or vice versa.

While not explicitly stated by the following diagram, the only code that should subscribe to global application Redux state is Main.tsx or code within the components directory.

dependencies

Clone this wiki locally