Giter VIP home page Giter VIP logo

cupwithme's Introduction

Welcome to the Competitive Gaming Tournament Organizer

Introduction:

🎮 Immerse yourself in the world of competitive gaming with our Tournament Organizer SPA. This project, developed as part of a Java Development Bootcamp, leverages cutting-edge technology to offer a dynamic platform for effortlessly scheduling and managing tournaments. Powered by Spring Boot for the backend, MongoDB for the database, and React with TypeScript for the frontend, our application streamlines the entire process, ensuring a seamless experience from registration to match results.

🏆 Whether you're a player or an organizer, our platform revolutionizes the world of competitive gaming. Explore the thrill of competition as you navigate through the tournament brackets and witness the rise of champions. Join us on this interactive journey of sportsmanship and skill as we bring the excitement of tournaments to life.

Getting Started with the Tournament Organizer:

Accessing the Application:

Using the Application:

  1. 🔐 Registration and Login:

    To start your journey, click on the Signup option available on the website. You will be prompted to register with a username and password.

    For security purposes, please note that passwords are securely hashed and stored in the database. This means that even system administrators cannot view your actual password. Your password is protected with advanced cryptographic techniques to safeguard your account.

  2. 🎮 Player Management:

    Utilize the "Player" button to navigate to the Player List section. Here, you can easily add new players for tournament participation.

  3. 🏆 Tournament Creation:

    Click on the "Tournament" button to access the Tournament List. Provide basic information to set up a new tournament.

  4. 📊 Tournament Management:

    Within the Tournament List, you'll find the tournaments you've created. Click on the tournament you wish to manage. This will display the bracket structure of the tournament.

    Select the players who will participate in the tournament and enter match results as needed.

    Don't forget to save your tournament progress using the "Save" button to ensure that all your changes are recorded and the tournament is updated accurately.

Screenshot 2023-09-27 234506

Experience the future of tournament organization with our advanced technology stack and join us in elevating the world of competitive gaming! 🚀🎮

cupwithme's People

Contributors

eliasyazdani avatar elias122112 avatar

Stargazers

Pia Pesl avatar  avatar Lorenz avatar Enrico Weißenrieder avatar  avatar 0x41, 0x4C, 0x47 avatar Onyinye Collins Chigbo avatar Anton Roters avatar Benjamin avatar Christoph Groneberg avatar Canan avatar  avatar Kohei Suzuki avatar Gökhan Agkurt avatar  avatar  avatar Sahed Wahedi avatar Joshua Stolle avatar

Watchers

 avatar

cupwithme's Issues

V11,V12- Logout- Signup

User story

As a user , I want to have logout and signup button , so I can log in and sign up users

Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.

Acceptance criteria

  • signup and logout buttons with functions

Tasks

  • Frontend
  • add logout function in App.tsx and logout button in Home.tsx
  • add signUp component and signup button in Home.tsx and signup function in App.tsx
  • add UserWithoutId
  • Backend
  • add logout in security config and requestMatcher for logout endpoint
  • add signup endpoint in MongoUserController
  • add addNewUser with hashedPassword in MongoUserService and add MongoUserWithoutId record
  • add requestMatcher for signup in securityconfig
  • add unittest for addNewUser in MongoUserService

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable
    • External / 3rd Party dependencies identified

V3- add Edit function


name: User story template
about: This template provides a basic structure for user story issues.


User story

As a User, I want to click on the rows of players, so I can edit them in modal pop up and save changes

Acceptance criteria

  • by click on player should open the pop up to edit and save changes .

Tasks

  • Frontend
  • add onclick function to rows of table
  • axios for put
  • Backend
  • putmapping in controller for editing and add methods in service and related Unit test and integration test

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V16 user access control

User story

As a user, I want to save players and tournaments seperately for every user

Acceptance criteria

  • Every user should have different saved data in playerList adn tournamentList

Tasks

  • Frontend
  • add admin to all Player and Tournament Models
  • edit axios.post and axios.put for player and tournament with admin
  • send user from app.tsx to above mentioned points
  • Backend
  • add admin to all Player and Tournament records
  • add function in both repository to find by admin
  • edit get ,put and post methods in service classes for Player and Tournament with admin
  • adit GettMApiing in Controller for Player and Tournament
  • edit all unit tests for Player and Tournament
  • edit all integration tests for Player and TOurnament

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable
    • External / 3rd Party dependencies identified

V17-Save-Rounds-Matches-Arrays

User story

As a user, I want to save all Info of the matches in seperate rounds

Acceptance criteria

  • edit and save some matches of tournament

Tasks

  • Frontend
  • create Round and roundWithoutId Model replace all matches arrays in Tournaments Models with round Models
  • edit axios.post to add new Tournament with rounds
  • edit showing matches in TournamentBracket with matche- and roundIndex
  • modify initial and actuall value of Players and score to show them in Bracket
  • Backend
  • add Round and RoundswithoutId records and add them to all Tournaments records
  • change deletTournament to void method
  • update all methods (get,put,post) in TournamentServiceClass
  • update all unit tests and integration tests with rounds

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V2- add new player

User story

As a user, I want to have the buttons new player , so I can add new player to my player list by a modal Pop up

Acceptance criteria

  • the button new player should be available and functional

Tasks

  • Frontend
  • add new player button at the end of player list
  • axios for post
  • add new modal component wit save and cancel buttons
  • Postmapping in cotnroller for new player button and add method in service and repo and related UnitTests and Integration test

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V4- Delete player


name: User story template
about: This template provides a basic structure for user story issues.


User story

As a user , I want to have a delete button on edit modal , so I can remove some players

Acceptance criteria

  • with click on a player ,open edit modal and with delete button remove the player

Tasks

  • Frontend
  • add delete button to player modal
  • it should be there just by editing modal and not by new player modal
  • axios for delete
  • Backend
  • add deleteMapping in Controller and its method in service and related unit test and integration test

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable
    • External / 3rd Party dependencies identified

V5-TournamentList

User story

As a user I want to have a button (Tournaments) in Homepage, so I can see the all of tournaments in TournamentList page.

Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.

Acceptance criteria

  • observable Button in Homepage with function to Tournament List page

Tasks

  • Frontend

  • create Tournament component and fields for name and location and id and number of player

  • create TournamentTable component to show all of tournaments together with some css

  • create TournamentList component to show TournamentTable and Title

  • Backend

  • create Tournament model

  • create repository with spring repo

  • create service with getAllTournaments method

  • create controller with tournaments endpoint with getMapping

  • Write unite test for getAllTournaments in Service

  • Write Integration test for GetMapping(getAllTournaments)

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V15- Modify

User story

As a user, I want to more details in readme about Product

Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.

Acceptance criteria

  • given details in readme with foro of bracket

Tasks

  • edit Readme

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable
    • External / 3rd Party dependencies identified

V14- Save-MatchsArray

User story

As a user, I want to save all Info of the matches

Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.

Acceptance criteria

  • edit and save some matches of tournament

Tasks

  • Frontend
  • modify all touranment models and axios post in NewTournamentModal by adding Array of matches
  • modify axios put in Tournament bracket by adding Array of matches
  • Backend
  • add List to Tournament and TournamentWithoutIdWithMatch
  • add List in TournamentWithoutId
  • Modiy addNEwTournament and changeTournamentInfo in Service class
  • modify all unit and integration test with Array of matches

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable
    • External / 3rd Party dependencies identified

V7,V8- Edit Tournament and Tournament bracket


User story

As a User, I want to have Option to edit and save Tournament bracket with new details

Acceptance criteria

  • by click on Tournament row should open the new page for bracket and in this page should be edit and save and cancel buttons.

Tasks

  • Frontend
  • write and design TournamentBracket and create css
  • axios put for bracket
  • edit post and get axios for bracket
  • navigate from table row to bracket page
  • Backend
  • putmapping in controller for editing and add methods in service and related Unit test and integration test
  • improve Tournament model for player and matchs

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V1- Title and Player List

User story

As a user I want to have a button( Player List) in Homepage, so I can see all of Player in PlayerList Page.

Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.

Acceptance criteria

  • observable main title on Top of site and PlayerList button with function to list of players

Tasks

  • Frontend

  • new h element for title some css for it

  • create Player component and fields for first name and last name and id and age

  • create playerTable component to show all of players together with some css

  • create PlayerList component to show PlayerTable and Title

  • Backend

  • create player model

  • create repository with spring repo

  • create service with getAllPlayers method

  • create controller with players endpoint with getMapping

  • Write unite test for getAllPlayers in Service

  • Write Integration test for GetMapping(getAllPlayers)

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V18 Modify Login Signup

User story

As a user, I want to have an icon to display inputted password, two password field to confirm password and an error message for it, an error message if given username to signup is existed

Acceptance criteria

  • icon next to password with its function, two password field in signup page with both error messages

Tasks

  • Frontend
  • add icon next to password field in Home.tsx
  • edit Home.tsx-return to seperate login and logout
  • move login and signup button to top side of Home page
  • add second field for passwort to confirm it and show error message
  • add axios Get request in App to check existence of username during signuup
  • display error message in signup component
  • Backend
  • add a method as doesUsernameExistes in UserService and GetMapping in UserController to checkexistence of username during signup
  • update addNewUser to send error message if given username is existed
  • add unittests for MongoUserService
  • add Integrationtests for all endpoints in MongoUSerController

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V6-New Tournament

User story

As a user I want to have a button (New Tournaments) in Tournament List, so I can add New Tournament due a Modal with Name and location and number of Player and see it in Tournament List.

Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.

Acceptance criteria

  • observable Button in Tournament List and Modal Pop up with its functions

Tasks

  • Frontend

  • create Tournament Modal and fields for name and location and number of player

  • add post axios to create new Tournament component

  • Backend

  • add addNewTournament in Tournament Service

  • add PostMapping in Controller

  • Write unite test for addNewTournaments in Service

  • Write Integration test for GetMapping(addNewTournaments)

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V13-Edit Tournament bracket phase 2

User story

As a user, I want to have symmetrical diagram and a ülace for winner, can save and edit match info

Ideally, this is in the issue title, but if not, you can put it here. If so, delete this section.

Acceptance criteria

  • symmetrical diagram with edit and save function

Tasks

  • Frontend
  • edit App and TournamentList and Bracket to show bracket separatly for every Tournament
  • edit Barcket to show correct diagram and calculate correct number of matches pro round
  • add a place for winner
  • edit PlayerWithScore to two separate 1 and 2
  • addd MatchModel and adjust it for two PlayerWithScore and add axios Put for Tournament bracket
  • create MatchWithoutId, TournamentWithoutIdWithMatch, TournamentWithoutId
  • add match to TournamentModel and empty match to axios post in NewTournamentModal
  • move allTournamentList from TournamentBracket to App
  • add home button into signUp page and add delete button and its function to TournamentBracket
  • Backend
  • create match record, MatchWithoutId and TournamentWithoutIdWithMatch
  • add match to Tournament and add matchWithoutId into TournamentWithoutId
  • modify addNewTournament and change TournamentInfo in TournamentService
  • modify PutMapping in TournamentController
  • modify Unit test and Integration test beacause of adding match in Tournament

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable
    • External / 3rd Party dependencies identified

V9- Delete-Tournament-Backend

User story

As a User, I want delete tournament option

Acceptance criteria

  • by postmann can delete a Tournament from DB

Tasks

  • Backend
  • add DeleteMapping in TournamentController and its Integrationtest
  • add deletTouranment in TournamentService and its unit test

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable

V10- Security

User story

As a user, I want limited access to endpointsand ,option to signup and login and logout with hashed password and csrf , and validation for username and password

Acceptance criteria

  • signup and login button and logout button after login with function

Tasks

  • Frontend
  • add Login Page and show it in Home
  • add login and me function in App.tsx
  • add logout button in Home if user is logged-in
  • Backend
  • add Spring security in Pom.xml
  • add SecurityConfig and RequestMatchers
  • add MongoUser and MongoUserRepositoryand findByUsername to sarch in DB
  • add MongoUserDetailsService and loadUserByUsername method
  • add Argon2PasswordEncoder in securityConfig
  • add MongoUserController and GetMapping for me endpoint to call logged-in user
  • add Spring-scurity-test dependency and add csrf to securityConfig
  • add sessionManagement and requestMatcher for Tournament EndPoints
  • add Postmapping for login endpoint
  • add Validation tinto MongoUser and another model classes and and @Valid inito PlayerController and TournamentController

Sprint Ready Checklist

    • Acceptance criteria defined
    • Team understands acceptance criteria
    • Team has defined solution / steps to satisfy acceptance criteria
    • Acceptance criteria is verifiable / testable
    • External / 3rd Party dependencies identified

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.