- [ ] https://www.fencingdatabase.com/clip/WhichFarArcticseal is reported as Karoline Loit but should be Oh Sanguk
- [ ] retest each clip for fencer names and scores
- [ ] sanitize db for duplicate names
- [ ] sanitize db for names that should be separated
- [X] sanitize db for extra bouts
- [ ] investigate every clip that throws an error on running normalize_names
- [X] add tournaments table
- [X] data cleaning queries
- [X] `update gfycats set tournament_id=’budapestwch2019’, gender=’female’ where valid and left_fencer_id is NULL and fotl_name = ‘NAVARRIA M’;`
- [X] `insert into canonical_names (gfy_name, canonical_name) values (‘kovalav n’, ‘kovalev nikolai’);`
- [X] add bouts table
- [X] each tournament has many bouts
- [X] each bout has many touches
- [X] columns: id, tournament_id, round, left_fencer_id, right_fencer_id
- [X] filter touches [4/4]
- [X] touches by fencer
- [X] touches by location on body
- [X] touches by location on strip
- [X] all of the above
- [-] fencer-specific page
- [X] touches scored
- [ ] touches scored per year
- [-] my account page
- [ ] logout button
- [X] count of clips reviewed
- [ ] badges?
- [-] DB changes
- [X] list of keycodes/meanings
- [ ] save reviewed touches - make them a special reel with all sabre clips, probably
- [ ] save results - who reviewed, what the result was, and what clip it was
- [X] clip page:
- [X] fencers
- [X] whose touch
- [X] tournament name
- [X] list of keycodes - pull from db
- [ ] submit js
- [ ] pull keycodes/meanings from db
- [ ] stats page:
- [ ] each key’s total
- [ ] link to list of gfys for each key
- [ ] API variant
- [ ] submit endpoint
- [X] keycodes endpoint
- [ ] search by opponent’s score
- [ ] search by two fencers, get all touches between them
- [X] add second search option “search fencers” and “search touches”
- [ ] search form should remember answers
- [X] “next page” button isn’t working
- [ ] add foil to the various dropdown lists
- [X] get updated list of fencers
- [X] get list of fencers in a tournament
- [X] deduplicate fencers in gfycats based on the list of fencers in the tournament, not in the whole list
- [X] add “report this touch” for errors
- [X] show derived data, like fencer names and touch scored
- [X] path should be `/clip/gfy_id` not `/clip?gfycat_gfy_id=gfy_id`
- [X] filter stats by weapon
- [ ] heatmap doesn’t filter by weapon
- [X] add “can have us upload it for you” to /reels/help
- [X] add “upload reel for me” button
- [X] add endpoint for `/reels/upload`
- [ ] sort clips by tournament, then bout
- [ ] allow option to categorize, not just yes/no
- [ ] report clip directly from selection page
- [ ] add link to FIE page
- [X] accounts table/model
- [X] create new account
- [X] login page
- [X] associate reels with accounts
- [X] associate form responses with accounts
- [X] catch invalid hash error
- [X] API documentation
- [X] “upload it for me” explanation