URL: https://wkps.netlify.app/
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.
Mentor Mateusz Nowak
- 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
The following technologies were used:
- 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).
- 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.
- 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!
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 this project locally
- Clone this project locally
- Run
npm install
in your bash/command line - Go to
/backend
in your bash/command line and Runnpm run start:dev
in your bash/command line - Go to
/frontend
in your bash/command line and Runnpm run start
in your bash/command line
- Execute
docker-compose -f docker-compose.dev.yaml up
in 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