TenniShip is a web app for managing tennis tournaments inspired in Davis Cup rules. It allows users to find teams, matches, keep track of scores, and check their standings in tourneys.
Check first our demo video: Link -> (https://www.youtube.com/watch?v=OT3qRSFsoTI)
The home page has two search bars: one for tournaments and another one for teams. This search bars are only for queries, so they redirect you to the team or tournament information sheet. There's another slide below, that explains what TenniShip can do and links the user to various actions.
Users can sign up in TenniShip as team leaders. Such as in Davis Cup official tournament, every team must have five players.
Tournament information sheets indicate the actual phase of the tournament, its teams and its progress.
When a game is played, teams must log the result.
Team Sheet contains information about a team. It includes the team's logo, its players with their picture and name (on mouse hover), the tournaments played by them and their most recent results. There's a pie chart that showcases the percentage of matches won and lost in each tournament.
TenniShip has been made with HTML, CSS and JavaScript. BizPage Bootstrap template has been used and modified.
- Iván Fernández Llorente - Ivan's GitHub - Ivan's e-mail
- Santiago González Martin - Santi's GitHub - Santi's e-mail
- Diego Pascual Ferrer - Diego's GitHub - Diego's e-mail
- Alvaro Justo Rivas Alcobendas - Álvaro's GitHub - Álvaro's e-mail
- Marcos Villacañas Flores - Marcos' GitHub - Marcos' e-mail
TenniShip has five different entities: match, tournament, team, player and user role.
TenniShip has three different users: administrator, registered user and non-registered user.
- Non-registered users can only see tournaments and teams information.
- Registered users can see tournaments and teams information and register matches on those tournaments they play at.
- Administrators can modify tournaments information.
- Spring Tool Suite 4.
- MySQL Server 8.0.
- MySQL WorkBench 8.0.
- MSQL Server 8.0.
- Spring framework.
- Mustache.
- Springboot starter mail.
- Springboot starter security.
- Clone the repository or download the ZIP.
- Open SpringToolSuite4 >> File >> Open Projects from File System.
- Select '/webapp' folder.
- Import both Maven and Eclipse Projects and click on Finish.
- To run the application select 'Run As >> Spring Boot App'.
- To build the project select 'Project >> Build Project' if 'Build Automatically is not selected (recommended to)'.
- Download MySQL Windows Installer.
- Run it as administrator.
- In 'Choosing a Setup Type' select Developer Default.
- In 'Check Requirements' screen install every of the items showed so the app works fine.
- Execute the installation of the products (MySQL Server must be there).
- Next.
- In 'High Avaliability' screen select Standalone MySQL Server / Classic MySQL Replication option.
- Next >> Next.
- Write a Password.
- Next >> Execute >> Finnish till installation ends.
- Tournament has an image as its logo.
- Each team has 6 images: the team logo, and a profile picture for the five team members.
In team's details appears a pie chart that automatically calculates and shows matches won and lost graphically.
An e-mail will be sent when you register your TenniShip account.
Tournaments will automatically reorganize themselves when a match is played.
-
Straight arrows show how non-registered users can navigate throw the website.
-
Arrows that start with a circle show how registered users can navigate throw the website.
-
Arrows that start with a rhombus show how administrator users can navigate throw the website.
We used Trello for tasks management.
- Iván:
- Tasks:
- Security, HTTPS and needed roles added. Authenticated users sessions added too.
- Sign in and Sign Up are available
- Tournament Creator with its whole complexity.
- Admin Role functions, deleting tournaments option available, edit matches option available too.
- Error control system.
- Top 5 most important commits in 'Second Phase':
- Top 5 most modified files:
- Tasks:
- Santi:
- Tasks:
- Implement main search of tournaments and teams with autocomplete.
- Add result pages of tournaments and teams to land on.
- Ajax functionality on tournament selection
- Mustache list rendering and format optimization
- Pie chart and tournament progress bar functionality added
- Top 5 most important commits in 'Second Phase':
- Top 5 most modified files:
- Tasks:
- Diego:
- Tasks:
- DataBase MySQL installation and queries.
- Data Graphics and Team Carousel for Tournaments.
- Entity Tournament, Tournament Controller and Bug fixing.
- Teamfile AJAX Button for Matches reloading
- Documentation: Diagrams
- Top 5 most important commits in 'Second Phase':
- Top 5 most modified files:
- Tasks:
- Álvaro:
- Tasks:
- Images upload.
- Images visualization.
- E-Mail sender: e-mail sent when a new user signs up.
- Minor things: making Spring friendly with Bootstrap, documentation, spelling check, etc.
- Insertion of sample data for demo.
- Top 5 most important commits in 'Second Phase':
- Top 5 most modified files in 'Second Phase':
- [Mail Sender] (https://github.com/CodeURJC-DAW-2019-20/webapp2/blob/master/backend/tenniShip/src/main/java/com/practica/MailSenderXX.java "MailSenderXX.java")
- [Images Service] (https://github.com/CodeURJC-DAW-2019-20/webapp2/blob/master/backend/tenniShip/src/main/java/com/practica/ImageService.java"Image Service")
- [Data Base Usage] (https://github.com/CodeURJC-DAW-2019-20/webapp2/blob/master/backend/tenniShip/src/main/java/com/practica/DataBaseUsage.java"DataBaseUsage.java")
- [Tournament Rest Controller] (https://github.com/CodeURJC-DAW-2019-20/webapp2/blob/master/backend/tenniShip/src/main/java/com/practica/tournament/TournamentRestController.java "TournamentRestController.java")
- [Team Rest Controller] (https://github.com/CodeURJC-DAW-2019-20/webapp2/blob/master/backend/tenniShip/src/main/java/com/practica/team/TeamRestController.java "TeamRestController.java")
- Tasks:
- Marcos:
- Tasks:
- Data Base correctly implemented.
- Make Register Match functional and fix its bugs.
- Create Tournament Logic, team ranking, create matches, advanced sorting algorithm, tournament progression, useful queries and bugs fixed.
- Admin Role functions, deleting tournaments option available, edit matches option available too.
- Url and Navs uploaded.
- Top 5 most important commits in 'Second Phase':
- Top 5 most modified files:
- Tasks:
Click on the next Link in order to consult the ApiRest user guide using Postman. ApiRest Link
Take into account that previously git clone of this repository is needed, so that you are able to execute the application from the next directory:
./Docker
The only step for executing the application is to run the next script on CMD:
docker-compose up
To stop the application:
docker-compose down
To create the image, you just have to launch the script, this will be responsible for creating the image, and push to the repository on docker hub:
./Docker/build.bat
- Iván:
- Tasks:
- Co-implementation of Docker
- ApiRest co-implementation
- Security development
- General bug-fixing and error tracking
- Top 5 most important commits in 'ThirdPhase':
- Top 5 most modified files:
- Tasks:
- Santi:
- Tasks:
- Creating REST API documentation
- Porting Tournament Sheet methods to REST API
- Completing initial Postman collection before link changes
- API request error handling check
- Top 5 most important commits in 'ThirdPhase':
- Top 5 most modified files:
- Tasks:
- Diego:
- Tasks:
- API implementation of Team
- Paging for Team
- Paging for Tournaments
- Documentation: Diagrams
- Docker
- Top 5 most important commits in 'Third Phase':
- Top 5 most modified files:
- Tasks:
- Álvaro:
- Tasks:
- Docker implementation (grupal commit)..
- Images adaptation for Docker.
- Images uploading and visualization via Res.
- Access constraints via Res.
- Managing images and email with new adaptation, and some API Rest Sentences.
- Top 5 most important commits in 'ThirdPhase':
- Top 5 most modified files in 'Third Phase':
- Tasks:
- Marcos:
- Tasks:
- Cleaning-Code.
- ApiRest co- implementation.
- Bugs-fixing.
- Docker co-implementation.
- Documentation.
- Top 5 most important commits in 'Third Phase':
- Top 5 most modified files:
- Tasks:
1. First, install Angular Cli -> npm install -g @angular/cli
2. Second step, install some dependencies -> npm install
3. Thirdly, start your server using -> npm start
4. Last but not least, search for -> localhost:4200/TenniShip
5. Enjoy :)
You can dockerize this app by executing this script.
- Iván:
- Tasks:
- Tournament Creator and all child components
- Error Handling
- Header component
- Docker, Image Petitions, Error Control and Authorizations Control for Registered and Admin users, and Data Refresh for Components and Interfaces creation (Co-Implementation)
- Spinners
- Top 5 most important commits in 'Fourth Phase':
- Top 5 most modified files:
- Tasks:
- Santi:
- Tasks:
- Register match and admin register match pages
- Tournament selector page and error handling
- Frontpage searchboxes and autocomplete functionality
- Footer functionality, header scroll changer and other JS ported to TS
- Top 5 most important commits in 'Fourth Phase':
- Top 5 most modified files:
- Tasks:
- Diego:
- Tasks:
- Team Info and all child components (first connection to API!!)
- Data Refresh for Components and Interfaces creation
- Paging for Teams and Bug Fixing
- Documentation: Diagram Update
- Docker, Image Petitions, Error Control and Authoritations Control for Registered and Admin users (CoImplementation)
- Top 5 most important commits in 'Third Phase':
- Top 5 most modified files:
- Tasks:
- Álvaro:
- Tasks:
- Sign Up component.
- Sign In component.
- User communication with backend.
- Image upload via Angular.
- Application waits for API call returns.
- Top 5 most important commits in 'ThirdPhase':
- Top 5 most modified files in 'Fourth Phase':
- Tasks:
- Marcos:
- Tasks:
- Cleaning-Code.
- Tournament Sheet Component.
- Docker, Image Petitions, Error Control and Authoritations Control for Registered and Admin users (Co-Implementation)
- New Component Super Diagram.
- Top 5 most important commits in 'Fourth Phase':
- Top 5 most modified files:
- Tasks:
© BizPage Bootstrap template has been designed by BootstrapMade. Original Bizpage Template.