# Statbus
## Core Feature Progress
| Item | For Admins | For Players |
| --------------------- | ---------- | ----------- |
| Tickets | ✅ | ✅ |
| Bans | ✅ | ✅ |
| Notes & Messages | ✅ | ✅ |
| Player Pages | ✅ | ✅ |
| Feedback Links | ✅ | N/A |
| Library Mod Tools | | N/A |
| Art Gallery Mod Tools | | N/A |
IDK what version this is. Probably ned to come up with a new name.
* Architect infrastructure in such a way that multiple people can run it or take over
* Or maybe integrate it directly into tgstation13.org
* This will be done at a future date
* ✅ At the very least switch to [statbus.space](https://statbus.space) and decouple it from ned
* ✅ Also spin it up on its own dedicated server separated from other internet properties
* Provision infrastructure with Terraform
* Use a larger framework that can accomplish more + make it easier for others to work with
* ~~Probably [Symfony](https://symfony.com/)~~
* Nope it's [Slim](https://slimframework.com) again
* Some probable painpoints:
* Reversing the TGDB schema to doctrine entities
* Optimizing doctrine queries
* Hey this turned out to suck, AS I PREDICTED
* Working with db_ranks in Symfony's user class
* Try not to use Bootstrap!
* Or just go all out and lean into it
* ✅ And maybe customize it to match tgui
* Multiple authentication methods
* TG Forum OAuth
* ~~MSO can we have the user's avatar URL in the OAuth response?~~ This is already a thing
* Discord OAuth
* IP Auth (for downstreams)
* Whatever else downstreams need?
* Mainly focusing on TGDB stuff
* Tickets (viewing, exporting (for forums etc))
* Notes/Messages (viewing, appealing :soon:)
* Bans (✅ viewing, appealing :soon:)
* Cache and expose round info with an API
* Literally download the round data from the game DB periodically so we're not hitting that as often
* Also maybe use this to generate some actual fuckin' statistics
* Split more functionality into different applications
* ✅ BadgeR
* Actual stats
* Library
* Art Gallery
---
## Functionality and Features
### Admin Data
Data about game admins & ranks straight from the DB
* Current admin roster
* w/ links to Scrubby for playtime etc
* wiki -friendly formatting so we can copy + past the list into the wiki
* Admin rank logs
* Maybe deprecate the admin staffing log thread on the forums
* Admin feedback link updater
### Art Gallery
Parse information from [paintings.json](https://tgstation13.org/parsed-logs/manuel/data/paintings.json) and use it to display artwork
* Cache the data from paintings.json into a database (because the json data goes back to december of 2021(!))
* Add up/downvotes + report functionality
* Expose painting ratings in an API so the game can consume them (if it wants)
### Statistics
Previously, stats were generated dynamically, on request when you viewed a page. This was ultimately always a pain in the ass to collate and probably should be handled differently. So this time around, we're going to periodically (daily?) copy down the most recent stats from the game DB and compile statistics.
### Bans, Notes, Messages, Warnings, and Tickets
Players ned to have a way to see these out of game. Also include functionality to easily copy + paste a PHPBB formatted appeal/ticket convo
* Notes/Messages/Warnings (consolidate under "Admin Remarks")
* Generate PHPBB code for appeals based on the template provided
* This is codebase/community specific
* (Far-future) Handle appeals on Statbus
* Bans
* ✅ Generate PHPBB code for appeals based on the template provided
* This is codebase/community specific
* (Far-future) Handle appeals on Statbus
* Tickets
* Generate PHPBB code to copy+paste the conversation into the forums (& discord?)
* Let players selectively mark a ticket as public so they can link people to it