aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ADMIN.md35
-rw-r--r--README.md50
-rw-r--r--TODO.md8
-rw-r--r--img/datamodel.dot25
4 files changed, 118 insertions, 0 deletions
diff --git a/ADMIN.md b/ADMIN.md
new file mode 100644
index 0000000..fb4455d
--- /dev/null
+++ b/ADMIN.md
@@ -0,0 +1,35 @@
+# Administrating event vote
+
+## Create draft event
+
+In the "ballot draft" calendar,
+create a draft event
+at the earliest possible time it might occur,
+and fill in all possible options,
+including end time (to indicate estimated length of event)
+and invitees (those known ahead of time, if any).
+
+Save the draft event,
+and check you mail:
+You should then receive an email
+with instructions on composing a ballot for the draft event.
+
+NB! You can freely *edit* the draft event after it was saved,
+e.g. to update the event title and description.
+
+NB! If you *delete* a draft event,
+then the whole event vote is dropped.
+
+
+## Compose ballot
+
+Tell variability of the vote:
+
+ * earliest possible occurence
+ * pre-filled with start time of draft event
+ * if changed, then also update start time of draft event
+ * latest possible occurence
+ * possible times of day
+ * e.g. only within business hours, or only after business hours and before supper time
+ * possible days
+ * e.g. only business days, or only weekends and holidays
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..1aeb456
--- /dev/null
+++ b/README.md
@@ -0,0 +1,50 @@
+# Event voting
+
+> collectively deciding when an event should occur
+
+Modular, Doodle-like event voting.
+
+
+## Phases
+
+### Ballot design
+
+Create prototype;
+either event (with start and end time)
+or task list (listing all options).
+
+
+#### Event: Create prototype event
+
+Create a prototype event,
+at the earliest possible time,
+and end time to indicate estimated length of event.
+
+Provide title and description,
+
+
+ * id
+ * title
+ * description
+ * timespan for event - when event can be held
+ * length - timespan of event
+ * invitees
+ * open/closed? - can others invite themselves?
+
+
+## See also
+
+ * [Dudle]
+ * [Framadate]
+ * [Belenios]
+ * [CIVS]
+
+[Dudle]: <https://dudle.inf.tu-dresden.de/>
+
+[Framadate]: <https://framadate.org/abc/en/>
+
+[belenios]: <https://www.belenios.org/>
+ "Belenios - Verifiable online voting system"
+
+[CIVS]: <https://civs1.civs.us/>
+ "Condorcet Internet Voting Service"
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..75cf6cd
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,8 @@
+ * maybe support interfacing with [Belenios]
+ * maybe integrate with or extend [KNoodle]
+
+[belenios]: <https://www.belenios.org/>
+ "Belenios - Verifiable online voting system"
+
+[KNoodle]: <https://github.com/KNowledgeOnWebScale/knoodle>
+ "KNoodle - KNoWS' Solid-based alternative to Doodle"
diff --git a/img/datamodel.dot b/img/datamodel.dot
new file mode 100644
index 0000000..fa5d0f8
--- /dev/null
+++ b/img/datamodel.dot
@@ -0,0 +1,25 @@
+# Graph of data model
+# Copyright 2022 Jonas Smedegaard <dr@jones.dk>
+#
+# Licensed under the terms of the GNU Affero General Public License,
+# either version 3 of the License,
+# or (at your option) any later version.
+
+# Use: dot -Tx11 datamodel.dot
+
+digraph { rankdir=TB
+
+my_freebusy -> my_ballot
+my_ballot -> ballot [ dir=back ]
+my_vote -> vote
+my_attendance -> event
+
+draft_event -> draft_freebusy -> ballot
+
+rank=same { ballot my_ballot }
+rank=same { vote my_vote }
+rank=same { event my_attendance }
+
+ballot -> vote -> winner -> event
+
+}