# Ned's Statbus todo list
In addition to [migrating functionality from Legacy Statbus](https://hackmd.io/@nfreader/By1MgKuu_):
## Quick tasks
- [x] Link to public ban appeals on TG
- [ ] Global ticket listing in TGDB
- [x] Crash Statbus if the DB isn't available
- [ ] This neds a better error page
## Gallery Enhancements
- [ ] Allow admins to delete gallery items on Statbus
- [ ] Export deleted items so that they can be delete en-masse in game
- [ ] A better viewing experience (lightbox)
- [x] Add an API endpoint for painting ratings.
Ned to poll the database for all ratings for a given painting hash and average them out. Shouldn't be too hard.
* Per-painting hash
* Per-server ratings
## Library Enhancements
- [x] Add option(al) to report a reason for a book deletion
- [x] Support for admins to delete all books by a given ckey
- [x] Option to report a book
- [ ] Rate limiting for reports
- [x] Surface book deletion logs
- [x] Probably ned to keep a separate log for this, since the existing log solution (the `external_activity` table on tgdb) isn't well-configured for searching.
- [ ] Add tgdb option to delete all books by an author
- [ ] Show reported books in tgdb
* Individual player pages ([sort of implemented](https://sb.atlantaned.space/player/shaps))
## Moderation Tools (tgdb)
- [ ] Chiseled messages viewer
## Appeals System Proof of Concept
Quickly, before MSO does it first.
* A test installation of Statbus that lets users generate bans (EXCLUSIVE TO STATBUS) that can be used to test appeals
* Still ned to work out all the details, i.e. how much of the existing format neds to be brought over?
In brief: Appeals function like a Github comment thread. The banned person creates their appeal, and admins + anyone who was online at the time of the ban* may post in the thread. Appeals can be denied/accepted etc, but *this does not affect the actual ban on TG*. All appeals are publicly viewable.
\* We track this data already
This is underway on [a separate branch](https://github.com/nfreader/banbus/tree/test)!
## Admin Candidate Training Checklist
An interest in this has been expressed in moving this into tgdb.
## Code Stuff
### Server data
This could/should be refactored into something that happens when the server list is instantiated from the settings file.
### Template-only actions
Add a generic action that can render a template with an argument specified on the route.
### Look into a new router + prefix/subdomain support
So we can set up something like `https://atlantaned.space/round/12345/json` for a json response or `https://api.atlantaned.space/round/12345`.
Check out [Statbus on Patreon](https://patreon.com/statbus)!