GithubHelp home page GithubHelp logo

pmourlanne / taw Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 2.0 330 KB

Slips, pairings & standings generator from AetherHub

Home Page: https://taw-woad.vercel.app

License: GNU General Public License v3.0

Python 16.08% HTML 83.92%

taw's People

Contributors

glamarque avatar pmourlanne avatar pre-commit-ci[bot] avatar

Watchers

 avatar  avatar

Forkers

glamarque stphena

taw's Issues

Match slips are not perfectly ordered

Follow-up of #6

After having physically cut papers, I realised that the ordering isn't perfect.

As opposed to what I initially wrote in #6 (comment), for 17 paper slips we actually want:

1   2   3   4
5   6   7   8
9   10  11  12
13  14  15  16
17

That way we have only one row with blank paper slips, instead of three

Better display the BYE in pairings

WER used to show the BYE with * * * BYE * * *, either replicate it, or do something akin to that

Also, the BYE pairing shouldn't have a table number: the player doesn't have to sit anywhere 🙆‍♀️

Currently the BYE looks like this:
Screenshot from 2023-06-14 14-38-48

Add the ability to print pairings by table

Not sure that I see a need for this 🤔
We all have pairings by table in AetherHub if we need it as judges. We don't need to print it, at least for players.

Something to consider if the need arises.

Monitoring on the live app

Potential follow-up of #10

We probably want some form of monitoring 🤡 Even logging form validation issues could be worthwhile (?)

Pairings and standings should have taller footers

When printing multiple pages, it'd be better to have taller footer, so that we have more margin when tying multiple pages together with tape.

I think it'd be good to also the "Powered by TAW" line on the footer of every printed page

Add the ability to upload a logo

Users should be able to upload a logo, that would be rendered on pairings, standings (and match slips?)

Non exhaustive list of things to look into:

  • Add an optional input for this
  • Can we store the logo in the browser's local storage, so that users don't have to upload it every time?
  • Show a suggested size in the input's description
  • Resize the logo if / when necessary when generating papers

Add the ability to print match slips

Requirements:

  • Should look like a match slip 😶‍🌫️
  • At least five match slips should fit on a printable page
  • Match slips should be in the "correct" order, for example:
P1  P2  P3  P4  P5
1   2   3   4   5
6   7   8   9   10
11  12  13  14  15
16  17  18  19  20
21  22  23  24  25

That way, when we put all the pages in a paper cutter, we get the match slips in the correct order

  • Match slips should be aligned from one page to the next. That way, we can stack pages in a paper cutter

Moar tests

We should be testing more stuff idk 🤷

Issue when ordering unicode characters in pairings

Here is the dumb from AetherHub

1 	Élisabeth Borne (0 Points) 	Maurice Couve de Murville (0 Points) 	2 - 0 	
2 	François Fillon (0 Points) 	Pierre Messmer (0 Points) 	1 - 1 - 1 	
3 	Édith Cresson (0 Points) 	Bernard Cazeneuve (0 Points) 	1 - 2 	
4 	Jean Castex (0 Points) 	Michel Rocard (0 Points) 	0 - 2 	
5 	Lionel Jospin (0 Points) 	Pierre Bérégovoy (0 Points) 	2 - 1 	
6 	Jean-Marc Ayrault (0 Points) 	Raymond Barre (0 Points) 	1 - 0 - 1 	
7 	Pierre Mauroy (0 Points) 	Alain Juppé (0 Points) 	2 - 0 	
8 	Jacques Chirac (0 Points) 	Manuel Valls (0 Points) 	0 - 2 	
9 	Georges Pompidou (0 Points) 	Jean-Pierre Raffarin (0 Points) 	1 - 2 	
10 	Édouard Philippe (0 Points) 	Laurent Fabius (0 Points) 	2 - 1 	
11 	Édouard Balladur (0 Points) 	Michel Debré (0 Points) 	2 - 0 	
12 	Jacques Chaban-Delmas (0 Points) 	Dominique de Villepin (0 Points) 	2 - 1 	

Here is the PDF generated by TAW:
Pairings round #1.pdf

I would expect Édouard Balladur to be ordered between Dominique de Villepin and François Fillon. Instead, he appears at the end of the list.

Set up at least a little zest of CI

Doesn't have to be massive, but there are pre-commit hooks to check, and there are a couple of tests.
It should be pretty simple to set up the bare minimum.

Validation on input may be too strict

I think right now if a table is missing we just outright don't validate the input field. I think we should let the user know they may be missing a table, but let them through with a warning.

Maybe we want all the positions always for eg. standings, but printing arbitrary table numbers for match slips shouldn't be blocking (?)

TAW should allow users to paste in the "headers" in the AetherHub dump

Let's not be too strict: if the user pasts the headers in, we can just ignore it, instead of being anal about it.

For example, the following should be a valid input:

Table 	Player 1 	Player 2 	Match Results
1 	Polak Maxence (18 Points) 	Mommee Alexis (16 Points) 	0 - 0 - 3
2 	Payan Grégoire (16 Points) 	Lestienne Jules (15 Points) 	0 - 0 - 3
3 	Prail Nicolas (15 Points) 	Pernes Domino (15 Points) 	0 - 0 - 3
4 	Devineau Arnaud (15 Points) 	audiffren guillaume (13 Points) 	1 - 2 

This should be the case for both pairings and standings parsing.

(We may need to change the documentation to reflect the new behaviour)

Users should be able to choose the first table number

Right now the first table is always 1, we should offer the possibility to choose a different table number.

Non exhaustive list of things to look into:

  • Add an optional input for this
  • Offset table numbers at parsing stage
  • Make sure validation properly handles the first table not being explicitly 1

Avoid printing slips for the bye

TAW generates a result slip for the player to which a bye was assigned. This is of course not needed.
I assume the solution would be to exclude that pairing before sending them to the formatter.

(you can assign this to me, I am curious to try!)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.