-
-
Notifications
You must be signed in to change notification settings - Fork 102
Firebot V6 Design Refinement (08 2022)
Package updates since design doc:
- Electron v12 -> v20
- Drop blueprintjs
Backend:
-
Use internal HTTP API & Websocket to communicate with frontend to make translation to web hosted version easier
- Authenticate internal api used by UI
- Use Fastify
-
NestJS
- Reject will look into the tooling for this
-
Adopt some level of domain driven design?
- Yes, but don't get into the weeds.
- Define our ubiquitous language
- Determine app layers
- API
- Domain
- Infrastructure
Variables:
- make event data more friendly for variables
- make fancy text field/area component that supports variables in a more intuitive fashion and saves text + variables as json
Data storage:
- configuration data: json files
- app settings
- trigger configurations
- larger databases: fast, embeddable database. Sqlite3 as last resort if no tenable alternatives are found
- viewer database
- stats database?
Frontend:
-
Drop blueprintjs. We can just roll our own custom react UI components built entirely with TailwindCSS + Headless.UI.
-
Frontend shouldn't access hard disk or interact with Electron APIs at all. It should act as a traditional frontend client.
-
Consolidate all pages for triggers (Commands, Events, Timers, Preset Lists, etc) under a single pages called "Triggers"- Don't consolidate into single page, instead create some sort of concept of global tags/collections. Regroup when we are ready to tackle this as we don't want to cause confusion with sets vs tags vs collections
-
Don't use fontawesome paid icons anymore. Free/opensource icon sets only.
- material design icons
- heroicons
- fontawesome brand / free icons
Actions:
- Rename Effects to Actions
- Improve UI for actions, especially for nested ones like Random, Sequential, etc.
Misc:
- Avoid modals, especially nested ones.
- Support command line arguments
- to set data dir (see app.setPath in Electron docs)
- to run headless
- future networking options
- make sure to keep streaming platform types abstracted so we can more easily support multiple platforms
- unicode everything
- Move Emulate Control action + Robot.js into a plugin to simplify setup of main codebase
Still need help? Come chat with us in the #help channel of our Discord server.