https://github.com/mateusznakodach/coderscamp2020.project.fullstack-node-react.tablesoccertournaments
Final project for CodersCamp 2021 programming course. Team leaded by Mateusz Nowak. Backend finished, frontend in progress.
https://github.com/mateusznakodach/coderscamp2020.project.fullstack-node-react.tablesoccertournaments
coderscamp coderscamp2020 coderscamp2020-dzial-4 coderscamp2020-dzial-5
Last synced: about 1 year ago
JSON representation
Final project for CodersCamp 2021 programming course. Team leaded by Mateusz Nowak. Backend finished, frontend in progress.
- Host: GitHub
- URL: https://github.com/mateusznakodach/coderscamp2020.project.fullstack-node-react.tablesoccertournaments
- Owner: MateuszNaKodach
- Created: 2021-02-15T20:16:09.000Z (over 5 years ago)
- Default Branch: develop
- Last Pushed: 2021-08-11T13:21:31.000Z (almost 5 years ago)
- Last Synced: 2025-03-20T21:21:30.386Z (about 1 year ago)
- Topics: coderscamp, coderscamp2020, coderscamp2020-dzial-4, coderscamp2020-dzial-5
- Language: TypeScript
- Homepage: https://wkps.netlify.app/
- Size: 8.37 MB
- Stars: 7
- Watchers: 0
- Forks: 6
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TourDeFoos - CodersCamp final project
### Frontend
#### Netlify Deployment
URL: https://wkps.netlify.app/
[](https://app.netlify.com/sites/wkps/deploys)
### Backend
[Swagger REST API Docs](https://coderscamp2020-tablesoccer.herokuapp.com/rest-api-docs/)
#### Test Coverage
[](https://codecov.io/gh/nowakprojects/CodersCamp2020.Project.FullStack-Node-React.TableSoccerTournaments)
#### Mutation Test Coverage
[](https://dashboard.stryker-mutator.io/reports/github.com/nowakprojects/CodersCamp2020.Project.FullStack-Node-React.TableSoccerTournaments/develop)
## 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](https://github.com/nowakprojects)**
- [Anna Lamperska](https://github.com/lamparina)
- [Piotr Rynio](https://github.com/PiotrWR)
- [Paweł Szambelan](https://github.com/Szambelan)
- [Tomasz Dworniczak](https://github.com/tomdworniczak)
## Main functionalities
1. Tournament organisation
2. Creating players profiles (regardless of tournaments) and sending them confirmation emails via NodeMailer.
3. Tournament registration
4. Tournament tables module responsible for enable/disable tables during tournament
5. Division into teams and assignment to teams
6. Division of matches between teams - making tournament tree
7. 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](https://miro.com/app/board/o9J_lOEebqI=/?moveToWidget=3074457356075616433&cot=14).

## Running the project
Running this project locally
###### From the repo:
1. Clone this project locally
2. Run `npm install` in your bash/command line
3. Go to `/backend` in your bash/command line and Run `npm run start:dev` in your bash/command line
4. Go to `/frontend` in your bash/command line and Run `npm run start` in your bash/command line
## Development
1. 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.
2. Now following urls should be available:
- REST API SWAGGER | http://localhost:5000/rest-api-docs/
- FRONTEND (REACT) | https://localhost:3000