Skip to content

Latest commit

 

History

History
61 lines (46 loc) · 2.13 KB

TODO.md

File metadata and controls

61 lines (46 loc) · 2.13 KB

TODO

This is a bit lighter-weight than using GH issues, and will do for now (while we're building it out & exploring the problem space).

Libraries we'll use

  • Phoenix LiveView (for web stuff)
  • Ash & AshPhoenix (for data modelling)
  • SaladUI
  • PhoenixTest (and hopefully PhoenixTestPlaywright) for front-end testing
  • cytoscape.js (in a phoenix hook) for rendering the diagrams
  • AshAuthentication (with passwords, maybe even magic links?) for auth
  • InstructorLite for platform-agnostic API use
  • LiteFS for "hosted SQLite"
  • (maybe) use this for cycle detection (via rustler) but honestly we might just hand-roll something naive

generator invocations

as an example:

mix ash.gen.resource \
  Revelo.Diagrams.Variable \
  --uuid-primary-key id \
  --timestamps \
  --default-actions read \
  --attribute "name:string:required,description:string:required,voi?:boolean:required,included?:boolean:required" \
  --relationship "belongs_to:session:Revelo.Sessions.Session:required,has_many:votes:Revelo.Diagrams.VariableVote"

general dev thoughts

  • data model-wise, maybe we don't actually want a session -> participants (or even session -> users) relationship? could just get that info from the list of variables (via their :creator attribute)

  • should we add phoenix storybook?