Skip to content

Firebot V6 Design Doc

Erik Bigler edited this page Aug 8, 2022 · 16 revisions

Preferred IDE

  • VS Code

Environment:

  • Electronjs (v20+)
  • TypeScript (v4+)
  • Frontend:
    • React
    • MobX (Global state management)
    • TailwindCSS + HeadlessUI (styling + UI framework)
  • Backend:
    • Nestjs
  • Testing:
    • Unit: Jest
    • E2E: Cypress or Puppeteer? (Research will be required to determine how these will work in Electron context)
  • Tooling:
    • ESLint (v7+)
    • Prettier
    • Webpack (v5+)

You can find out more about the tech used here

Refinements:

Architecture:

  • Circular imports should be avoided
  • Local data access must be abstracted to conform to a standard model
  • Front end must request all local data from back end
  • Streaming platform(s) must be abstracted to conform to a standard model

Directory and File Names:

  • Must use lower-case kebab-style naming
    • Exception: React Component .tsx files should be pascal case
  • Must not be of the following: assets, build, builds, configs, dist, docs

Considerations during development:

  • 3rd party extension interface should be able to add functionality to firebot but will not be able to modify native functionality

Contributions:

  • Must accept contribution agreement
  • Are only accepted through pull requests
  • Must be adequately commented
  • Must pass linting
  • Must include and pass tests
  • Must be passed through code formatter
  • Must adhere to directory structuring and filename formatting; see below
  • Must not have directory names from our exclusion list; see below
Clone this wiki locally