/copa

A revolutionary way to host, participate and gamble (not real money) in Copa de Kuutio tournaments.

Primary LanguageTypeScript

copa what?

In one sentence, Copa is a web app with intent to revolutionize hosting and participating in our high school's (SYK) soccer tournaments.

front page

Here is some of what Copa brings to the table for participants:

  • create lasting, customizable team profiles and invite friends
  • check the latest tournament updates anywhere you are on mobile
  • view easy-to-understand group stage and play-off standings
  • know when and where each match occurs
  • follow LIVE score updates
  • explore all teams and matches between them in a graph-like (nodes for teams, edges for matches) map
  • gamble (not real money!) on match outcomes [still in development]

And for organizers:

  • oversee registered participants
  • notify of last-minute changes with notifications
  • draw teams into groups using a fortune wheel
  • customize the bracket structure
  • schedule and run matches with an in-built timer
  • crown the winner and immortalize memories with pictures

copa why?

A few years back, Eero Koskenvesa (SYK alumn) hosted the first niche, futsal-like tournament, where teams of four battled it out in six minute matches. Copa de Kuutio has since captured the hearts of many in our school (myself included), and typically sees nearly all 600 high school students coming together in a jubilant ceremony.

At the same time, these tournaments were organized through spreadsheets posted on Instagram, requiring a lot of manual labor to both plan and follow. The mission of the Copa web app is to simplify this process, simultaneously introducing new features and preserving tournament history, while maintaining the Copa spirit and a low barrier to entry.

copa how?

Copa is the product of a year (and counting) of work, combining both front- and back-end technology to produce a single-page application (SPA). It is built on top of the MERN stack, which is a fusion of MongoDB, Express, React and Node. In addition, the application is currently hosted on Azure. For in-depth technical information and guidance on contributing, refer to the wiki.

copa statement

At Copa, we take privacy and consent very seriously. You can find a disclaimer of what data is collected here. In addition, almost all features are opt-in, meaning that you have to consent to publicize your profile, your real name is only visible to the organizer, and so on. Again, the application acts as an opportunity to deeper engage with the tournament, not a mandate.

Acknowledgements

This application would not exist without the unwavering support of the community, and the shoulders of open-source giants upon which Copa resides.

People

  • Urho Heinonen - student council representative; thank you for helping with Finnish translations and outreach.
  • Jarmo Hurri - CS teacher; thank you for keeping me sane through seemingly endless bugs.
  • L21i - my class; thank you for helping beta-test Copa to resolve many of the seemingly endless bugs.

Packages

  • brackets-manager
  • react-query
  • material UI
  • passport-js

and many more acknowledged in package.json...

License

MIT License

Copyright (c) 2024 Aleksei Terin

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.