Code Monkey home page Code Monkey logo

gtsosu's People

Contributors

betairylia avatar briesmas avatar chupalika avatar cory2067 avatar dependabot[bot] avatar fajar13k avatar hiviexd avatar kasumiikun avatar tsukoteamie avatar vunyunt avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gtsosu's Issues

Adding warm ups handling on Schedule page

It's usually quite annoying to keep track of warm ups for referees. I think it would be nice if this could be handled by the website.
Just to give some guidelines I guess:

  • adding 2 columns. 1 for each team's warmup. Can be handled with the same icon as MP link.
  • only players from that team can modify the warm up. (limit to captain if it's easier?)
  • players can modify the warmup as soon as the match is up on the website but can't modify when it's 30mins or closer to the match.
  • I believe this is not worth keeping (especially for archives) so they can be removed when the week is over.

Allow adding map to pool on someone else's behalf

Currently, when someone adds a map the pool, the map card says that they're the one who picked it.

However, there are cases when a pooler isn't available to add their own picks to the site. So we should add a field to AddMapModal where poolers can specify who picked the map (defaulting to the current user)

Schedules page has some issues with username changes

https://gtsosu.com/2020/egts/schedule#3
You can see here some players with no flag and no seed.

This is because their username changed since those matches were scheduled. The Match model has each player's username instead of something unchanging like userid (which was a bad design decision)

We should think about ways to allow schedules to be up-to-date with username changes so that archived tourneys don't have some missing flags.

Potential teams counter

A counter on the "Players" page when players are displayed for country-based tourneys. At least a potential teams counter would be really nice. So, countries with 2 or more players + B teams if 7 players or more. Another counter could be: potential teams counter without B teams but eh.

Automatic staff management

  • Make 3 staff lists (1 ref, 1 streamer, 1 comm) with availabilities for Sat 0UTC - Sun 23:59UTC and each staff member can put in their availability for the weekend. (Basically same as what we're currently doing with excel lists)
  • Automate assigning matches to each group of staff members and make sure that it's distributed as equal as possible (1st ref on 9 matches, 2nd ref on 1 match while both available at same time = no)

Allow qualifier lobbies registrations to be locked

As most GTS tournaments tend to use a specific deadline to get players to register to lobbies, actually enforcing on the website the fact that they cannot move whatsoever after a specific date might be good?

We somehow haven't needed that in past GTS tourneys, but EGCS just made me need to actually screenshot lobbies and enforce "no players are allowed to move now", so ehh.... Would be good as a safety measure. Not high priority though, as EGCS' qualifiers are already starting, and next GTS tourney is in 2025.

Multiple roles when adding a staff member

I think the title is pretty clear. Currently each role has to be added separately when adding a staff member. I tagged as good for first issue but I'm not exactly sure how complicated this is? I believe it shouldn't be too hard.

A GTS Team/Alumni page

A simple page where people who staffed in gts can be shown, and what tourney's they've worked on.
Personally, I think adding which role they had is already too much, people can go to the staff page of a specific tourney if they want to check.

Basically if we could move that here instead of using more and more roll slots for that, would be great x)

Fill in zeroes automatically if a map is missing for someone

Right now, if someone/a team doesn't play all their qualifiers maps, the missing maps need to be manually given a zero to work. Otherwise they'll probably get too high of a rank average and seed too high.

If it could be done automatically that someone's score on a pick is 0 if that score is missing, that would be cool.
Could maybe even do it for quals that everyone starts off with 0's on everything and they have to be overridden by scores from the mp links. Idk which way would be easier x)

Add quals results page

Add qualifiers results on the schedules page so that we don't have to use spreadsheets. Example sheet: https://docs.google.com/spreadsheets/d/1Qfv_V36IHqQ4KUTRzRiLp8dYTHBeP-aPKZlAZUrhdiE/edit#gid=984263065
Make sure to consider both individual and team tourneys.

We'll first need to add a button so that refs can submit the mp link for each match. There's currently a link field in the QualifiersLobby schema, but it's unused. Then, we can process that match with the osu api and persist the quals results in the db.

Force Discord usage on website

Force players to join server before even being able to click the register button, as well as forcing them to login with their Discord account, instead of the manual usage we currently have for this, which Doesn't Help players understanding shit sememingly.

Make "Language" option more recognizable

Change the "Language" on the top menu to a more recognizable term/icon by everyone. Some ppl don't seem to know this word. I believe either displaying the current selected language (English, ...) or a flag (like osu! website) would make it clearer.

Originally posted by @Briesmas in #38 (comment)

Add badge for custom maps

Add a little icon in the MapCard for maps that were custom-made for the tourney.
A new field will need to be added to the Map schema, and it would probably make sense to add this as an option in the AddMapModal so poolers or admins can choose whether to show the badge.

Create a statistics page

Here's an example of a statistics sheet: https://docs.google.com/spreadsheets/d/1N9seyZEphvV5OisGBvuCaz-tb1shOJoGOjpvNMykW30/edit#gid=795207119
Be sure to consider both team tourneys and individual tourneys

Add a new page for this, maybe linked from the schedules page? Currently, we store the mp link for every map in the database, but we're not any kind of processing on it.

Whenever a ref submits a match link, we can use the osu api to fill out info about that match and persist it in the db. We also might want a script to backfill the stats all the past tourneys.

Redesign navbar

The new navbar design in the figma is white, so we might want to finish #120 first (or else it'll blend in with the page background)

Unable to add forfeits to the Schedule

On the BTT schedule, for some reason I can't submit forfeit scores. When I click ok, it just loads eternally.
Does this have something to do with the Stats? That there's no mp link to pull scores from?

image

Refactor Navbar structure to avoid double router

Currently there's a router in App.js and a separate router in Navbar.js, and it's a little ugly.
I have an idea of refactoring it to only use one router in App.js and having a route wrapper that renders the navbar

Refactor permissions checks

Lots of components define functions like this:

isRef = () => hasAccess(this.props.user, this.props.tourney, ["Referee"]);

and there is some repeated code like this between components

Refactor these checks into some permissions helper util file. It should have functions for each useful type of permission check, and also should define constants for those role names (e.g. Role.REFEREE) instead of using string literals like "Referee"

Some auth.ts typing broken in prod

In auth.ts, in the logout route, the line req.logout() fails to compile because logout() is not a property of Request.
This error happened in prod, but I can't reproduce it in dev.

I ended up temporarily fixing it by overriding that type to any: 0b24a00
but we should try to fix the root cause

Passport is supposed to override express.Request by adding on the additional logout property, but it seems like that isn't working

Add custom song page

Add a new page to list all the custom songs made for GTS with links to socials
Maybe it's possible to add soundcloud preview player? Idk how that works

Add way to auto-update players' timezones

There's often confusion whenever daylight savings changes, because people forget to change their timezone on the website.
We can detect when the browser's timezone is different from the timezone on the player's profile. In that case, we can prompt the user if they want to change their profile timezone.

Break up api.js

Consider breaking out api.js into smaller modules instead of one huge file

Improve team creation interface

Currently, you have to manually type out a comma-separated list of player names to create a team
image
This is tedious and prone to typos

Improve this by making it a searchable multi-select drropdown, with all the registered players as options. The list of players should be available from the frontend without any additional api calls.

Docs for select: https://ant.design/components/select/

Create FormModal component to clean up modal code

One common pattern in this repo is having a form inside a modal.

Something vaguely like this to give an idea of what I mean:

function FormModal(props) { // todo flesh out these props
  const [formData, setFormData] = useState(props.initialFormData);
  const onValuesChange = (newData) => setFormData({...formData, ...newData});
  return (
    <Modal
       ...props,
       onOk={() => props.handleOk(formData)}
    >
        <Form onValuesChange={onValuesChange} initialValues={props.initialFormData}
          { props.formContents}
       </Form>
    </Modal>
  )
}

This can help reduce some of the boilerplate involved in setting up form modals

Create a rules page with actual styling

The tourney rules pages have literally no styling or design, it's an empty page and we dump the rules markdown in it.
Since there's no design, it'll basically be working with a blank slate.

Talk with designers to see how we can lay this out in the best way.

Improve language dropdown menu

image
This is pretty gross. Instead, we should have these options change based on which tourney is currently being viewed.

The code for this is in Navbar.js, where there's a hardcoded list of language options.
Maybe we could populate the list of available languages based off what files are in the client/src/content directory

Add some way to navigate tourney home page sections

I think this is the only thing left to do on the tourney home page. It might be cool to add some table of contents sidebar like in a wiki. The hard part is figuring out how to generate clickable links to sections based on the info/rules markdown.

I don't think we should implement isolated rules sections like in the figma. It really needs to be scrollable all the way through like it is currently imo

Add page to browse all custom maps/songs

Some beatmap listing page that shows off all the songs and maps custom made for GTS.
Maybe show custom songs at the top, and then a more compact view where we list off all the custom maps. Need to talk with designers to figure out something.

Succesful entry validation message

Either a short text under the "Role"/"Custom flag" thing or a ticket(?) appearing on the bottom right for example when you add staff/teams to indicate it was successful. This is really low prio btw but sometimes I double check when I add stuff because of a potential typo so this would be a nice QoL.

Migrate to Typescript

Having type checking would make our lives a lot easier in catching issues with the code. Not sure how much

I think a codebase can be migrated to Typescript incrementally, so this might be doable.

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.