ymhr / mas-league Goto Github PK
View Code? Open in Web Editor NEWA fun, competitive league for Mini American Shepherd owners
Home Page: https://masleague.run
A fun, competitive league for Mini American Shepherd owners
Home Page: https://masleague.run
React a11y should be added for a11y checking
There should be 1 'table page' with 3 sub tabs for the different league brackets.
No need to add filtering or ordering.
This should be a dropdown of
1, 2, 3, 4, 5, 6 ,7 ,8, 9, 10, 10+, UPC (unplaced clear)
UPC should provide 2 points.
When a user registers we need to create a document in for them in the profiles
collection. The ID is their UID.
The admin should be able to create a new league, and they should be able to pick a name for it.
This will help to add support for multiple leagues (#69) as there can be a league for obedience, agility, showing, etc.
Currently we just use the current year, so that will need to be replaced. We should also add an option to close a league so that it doesn't show as an option for users to add points to anymore.
Should inherit from the show
Lucy will provide the text for the homepage.
Also means putting the leagues on a separate page.
Admins need to be able to pick dogs to put into leagues
When the league the current run is being added for is changed, some of the fields need to change with it, for example the 'type' field is relevant only for agility.
More importantly the points selector may also have to change, since different sports may record results differently. This is TBD.
KC name should be on field on dog
Runs need:
If you remove a dog from a league it deletes all of their points, and it would be a PITA to put it all back. Add a confirmation to make sure no one does this intentionally.
Really the closed leagues should be removed - can potentially wait for 1 year, since all the leagues will be open for this year, and hopefully (lol...) firebase will have implemented IN
queries or some other advanced querying techniques.
tl;dr support 'agility', 'showing' and 'other' leagues.
types
array on the league record in the leagues
collection. This array represents the supported types.Notes:
{
"leagues": {
"2019": {
"agility": {
"grade": 2,
"points": 20
},
"showing": {
"points": 12
}
}
}
}
A toggle somewhere that they can click to change the state.
This causes the system to think they're already IN a league, which actually prevents you from adding them.
Need to do this before we can launch.
Some firestore queries could benefit from data validation, for example someone could technically update their own 'points' value and therefore hack the league. Ideally some fields should not be editable.
Tyler also recommended validating the data types, e.g. 'this field should be text
' otherwise someone could change 'name' to be an object, etc.
<Layout />
component for antd?
The rest of the site should be accessible without any logging in at all.
Can we leverage offline data from firestore to make the loading instant?
Currently, when the user signs up, if they enter their data before the function has run, it will do set
and replace all of their data, when what we actually want it to do it update
, assuming of course the user has put any text in.
A user should be able to see a form where they can add a new dog, and edit their existing dogs.
NOTE: The user should be able to set the grade of their dog when they register, but after that they should not be able to change the grade of the dog (OR we need to record the initial grade of the dog and not have that update).
Should probably implement this at some point, I don't want to have to do it manually every time.
For delete, write a firebase function - when a users account is deleted, go through all dogs, and delete all of their runs, remove the dogs from any current or past leagues, then delete the dog themselves. Delete the users profile data.
Currently using standard firestore functions, but I think this should use an endpoint instead.
Allowing the user to do this clientside would mean we would constantly need to check whether the league was open or not. If we push it to server side, then we only need to check when they update a league.
If the data is stored in the same format, then the live updating and everything will still work the same.
The endpoint needs to take a run
object, check whether that league is still open, and if it is, then add the points to the dog.
So that people can link to specific league tiers, or refresh and stay on the same table.
Bit jarring for the user, perhaps only auto fill email address?
Remove shows completely and have show name on each run instead.
Remove league picker, and make it so there is only one active league. Others are 'archives'.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.