]> git.cworth.org Git - turbot/blob - TODO
Beginning of transition to single-table database schema
[turbot] / TODO
1 Recently-proposed ideas (not yet prioritized)
2 ---------------------------------------------
3 • Set-up an announcements Slack channel that's auto fed by email to a
4   particular email address.
5
6 Low-hanging fruit
7 -----------------
8
9 [These are not highest priority, but are so easy that they are worth
10 not delaying until after bigger features below.]
11
12 • Fix /puzzle dialog to reject a puzzle with the same URL as an
13   existing puzzle.
14
15 • Make /solved clear the state string for a puzzle.
16
17 Round management
18 ----------------
19
20 • Add a /round command to create a new round. This is like a puzzle in
21   that it has its own channel, but different in that it doesn't accept
22   a solution, etc.
23
24 • Add an (optional) drop-down at puzzle creation for selecting a known
25   round for a puzzle, (or creating a new round). Ensure this mechanism
26   allows for puzzles to exist in multiple rounds.
27
28 • Consider putting a round prefix into the channel name to group a
29   round's puzzles in the channel list.
30
31 Meta-puzzle support
32 -------------------
33
34 • Figure out a good mechanism for linking puzzles to a meta-puzzle
35   that they feed into. Is this different or the same as the round
36   mechanism described above?
37
38 Hunt overview commands and filters
39 ----------------------------------
40
41 • Implement a /hunt command for giving an overview of the entire hunt,
42   (like the Turbot "home" view but available in any channel)
43
44 • For "/hunt" display only unsolved puzzles by default, but also allow
45   for "/hunt all" to display all puzzles
46
47 • On the Turbot home screen allow a dropdown for Unsolved/Solved/All
48   puzzles
49
50 • For both "/hunt" and the Turbot home screen allow for a search
51   string that will search through puzzle names, puzzle IDs, puzzle
52   URLs, and state strings.
53
54 • Figure out what we want for tagging and searching on tags (beyond
55   what's already possible with the state strings).
56
57 Editing puzzle fields
58 ---------------------
59
60 • Implement a command to display the status of the current puzzle
61   within the channel. Need a name for this command.
62
63 • Extend the in-channel puzzle display to also allow editing of all
64   puzzle fields
65
66 • Implement an /archive command to allow for easy archiving of a
67   channel for a solved puzzle (but make sure archived puzzles still
68   show up in global hunt/round views).
69
70 File uploads
71 ------------
72
73 • Incorporate puzzle file uploads into the database state for each
74   puzzle. Any file uploaded to the Slack should get included
75   initially, but when editing a puzzle users can drop irrelevant files
76   or label relevant files.
77
78 Opt-out of channel invitations
79 ------------------------------
80
81 • Drop the auto-invitation of all hunt members to every new channel.
82
83 • Announce all newly-created puzzles in the main hunt channel, (so
84   that hunt members can easily click to join).
85
86 • Consider adding a user option to allow a user to opt-in to auto
87   invitation for all newly-created puzzle channels
88
89 Sheet-related fixes
90 -------------------
91
92 • Have linked spreadsheets go into a specific Google Drive folder
93
94 • Come up with a better sheet template
95
96 • Put the puzzle's name into the primary tab of the sheet
97
98 • When copying tabs from the spreadsheet template, don't leave the
99   default "Copy of " text in place.
100
101 • Do something to make it more clear which tabs exist just as
102   backup/reference from the original template vs. any new tab a user
103   has created during the hunt. (Perhaps color the reference tabs
104   differently.)
105
106 Un-prioritized items
107 --------------------
108
109 • Add support for recording/displaying those who have current roles
110
111 • Decide a good plan for audio/video calls for puzzles and integrate
112   that into Turbot.
113
114 • Inspect the CloudWatch logs for our Turbot AWS Lambda during the time
115   period of the active hunt, (October 24-31), find and diagnose any
116   errors that occurred during that period. Users reported seeing
117   "Trouble connecting" (probably during new-puzzle dialog submission)
118   as well as "dispatch_failed during /state command (perhaps due to a
119   state string that was very long).
120
121 • Think about some way to express solve priority
122
123 Lower priority
124 --------------
125
126 • Implement code to close out an entire hunt after the fact
127
128
129 • Figure out what tool we want to use for shared drawing on a puzzle
130   and integrate that into Turbot, (give a command that will generate a
131   new URL and will insert that URL into the Slack topic and the list
132   of links at the top of the sheet).