Skip to content

mshcherbyna99/football-api

Repository files navigation

Football Team Management API

Architecture

  • Symfony 8.0
  • Clean Architecture
  • Domain-Driven Development

Requirements

  • Docker
  • Docker Compose

Setup

docker compose up -d --build docker compose exec app composer install docker compose exec app php bin/console doctrine:migrations:migrate --no-interaction

Run Tests

docker compose exec app php bin/phpunit

API Endpoints

POST /api/teams - Create team GET /api/teams - List teams GET /api/teams/{id} - Get team with players PUT /api/teams/{id} - Update team DELETE /api/teams/{id} - Delete team + players POST /api/teams/{teamId}/players - Add player to team GET /api/players/{id} - Get player PUT /api/players/{id} - Update player DELETE /api/players/{id} - Delete player

Design Decisions

  • Team is the Aggregate Root, Player is a child entity
  • 11-player limit enforced at domain level
  • When city relocation triggers a domain event – it sends a notification via Symfony Messenger
  • Cascade delete via Doctrine mapping (orphanRemoval + onDelete CASCADE)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages