TourDeFoos - CodersCamp final project
April 23, 2021 · View on GitHub
Frontend
Netlify Deployment
URL: https://wkps.netlify.app/
Backend
Test Coverage
Mutation Test Coverage
Overview
TourDeFoos is an application to organize and manage tournaments - in this case it's dedicated especially for foosball tournaments.
It was created as a final project of CodersCamp course.
Our Crew
Mentor Mateusz Nowak
Main functionalities
- Tournament organisation
- Creating players profiles (regardless of tournaments) and sending them confirmation emails via NodeMailer.
- Tournament registration
- Tournament tables module responsible for enable/disable tables during tournament
- Division into teams and assignment to teams
- Division of matches between teams - making tournament tree
- Matches module responsible for starting and finishing matches
Dependencies
The following technologies were used:
Backend:
- Node.js
- Express
- Database: MongoDB / in memory save
- TypeScript
- Docker
- Nodemailer
- Jest
- MailHog
- Stryker
- Heroku
- Swagger
- Docker
Our backend application follows the TDD approach and is almost fully covered by tests. The architecture has been designed according to the DDD (Domain-driven design).
Frontend:
- React
- React-DOM
- Router
- Hooks (useState, useEffect, useContext,useHistory)
- Material-UI
- Axios
The architecture has been designed according to the Atomic Design approach. Application follows th Mobile First Design.
Other:
- Code Review in every Pull Request (and 2 Approve to merge)
- Event Storming & Event Modeling
- Domain-Driven Design (DDD)
- Git
- GitHub
- IntelliJ
- Miro
- Figma
- Swagger
- Docker
- EasyRetro
- We used to daily every day and remote-meeting every week!
Event Modeling
During this project used EventStorming, followed by Event Modeling to model our application flow and for task division. We used for it miro web app. Link to Miro Board.

Running the project
Running this project locally
From the repo:
- Clone this project locally
- Run
npm installin your bash/command line - Go to
/backendin your bash/command line and Runnpm run start:devin your bash/command line - Go to
/frontendin your bash/command line and Runnpm run startin your bash/command line
Development
- Execute
docker-compose -f docker-compose.dev.yaml upin main project catalog - this will run the application in watch mode and all required dependencies. - Now following urls should be available:
- REST API SWAGGER | http://localhost:5000/rest-api-docs/
- FRONTEND (REACT) | https://localhost:3000