Open MaxwellBo opened 4 years ago
https://github.com/prabhuignoto/react-chrono Might be useful
Which actions do you think should be appended to the table? e.g. should adding/deleting a dropdown in a strawpoll etc. be added or not? it seems CloudMUN. is relatively conservative in what it stores, but we could be lenient and store just about everything, but let people filter it to get their desired history
@kumar-ish hmm so I think the important things you want to be recording is things that affect the course of debate. I think those would be:
1. Motion for <THING> proposed by <DELEGATE> passed at <TIMESTAMP>
^ doing this one would be our MVP. But people can do things without using the motions tab so:
2. A caucus about '<TITLE>' was created at <TIMESTAMP>
3. The '<TITLE>' caucus was closed at timestamp
4. A resolution about '<TITLE>' proposed by <PROPOSER> and seconded by <SECONDER> was created at <TIMESTAMP>
5. The '<TITLE>' resolution failed at <TIMESTAMP> [as it was vetoed|as it did not meet the required threshold]
6. The '<TITLE>' resolution passed at timestamp [as it was vetoed|as it did not meet the required threshold]
7. An unmoderated caucus lasting <TIME> started
8. A strawpoll '<TITLE>' held found that '<RESULT>' was the winner
Some of these could be a little tricky! Example: a resolution is created without the proposer and seconder being set. Do you simply reference the resolution from the timestamp and just display what the current proposer and seconder are? Do you record the entry in the timeline after both are set? Do you force resolutions to be created through a modal and record the result of the modal so that the resolution never has an undefined proposer or seconder?
CloudMUN has support for Conference Timeline mode that gives a log of every significant action .
We currently have some some aggregate analysis in the stats tab on a per delegate basis, but it would be nice to add something similar underneath. Additional support for export to PDF or CSV can come later on.
In my opinion, the best way to implement this is to just write every single performed action to a Firestore table (but not to Firebase). Firebase remains the mutable, business-logic focussed DB, and Firestore can contain the append-only, immutable audit log.