enzo418 / FishingTournament

Demo app using Clean Arch x DDD x CQRS x (Unit-Arch-Integration) Tests

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project Fishing Tournament

DEMO

This project has all the basic features of the real fishing tournament application. It's deployed in Azure and you can test it in the following link: https://demo-fishingapp.azurewebsites.net/

Docs

  1. Introduction
  2. Implementation

Optimizations

Structure

├── Docs
│   ├── 1_introduction.md
│   ├── 2_implementation.md
│   ├── 4_setup.md
│   ├── Api
│   │   ├── Api.Competition.md
│   │   ├── Api.Fisher.md
│   │   └── Api.Tournament.md
│   └── Diagrams
│       ├── diagrams.juth
│       ├── DomainModel.png
│       ├── TournamentClassDiagram.png
│       └── UseCases.png
├── FisherTournament.API
│   ├── appsettings.Development.json
│   ├── appsettings.json
│   ├── AssemblyReference.cs
│   ├── Common
│   │   ├── CustomResults
│   │   │   └── ProblemResult.cs
│   │   ├── Errors
│   │   │   └── CustomProblemDetailsFactory.cs
│   │   ├── Http
│   │   │   └── HttpContextItemKeys.cs
│   │   └── Mapping
│   │       ├── CompetitionMapping.cs
│   │       ├── DependencyInjection.cs
│   │       ├── FisherMapping.cs
│   │       └── TournamentMapping.cs
│   ├── Controllers[NOTUSED]
│   │   ├── ApiController.cs
│   │   ├── CompetitionController.cs
│   │   ├── ErrorController.cs
│   │   ├── FisherController.cs
│   │   ├── README.md
│   │   └── TournamentController.cs
│   ├── DependencyInjection.cs
│   ├── Endpoints
│   │   ├── Competitions
│   │   │   ├── AddCompetitionsEndpoint.cs
│   │   │   ├── AddScoreEndpoint.cs
│   │   │   └── GetLeaderboardEndpoint.cs
│   │   ├── Fishers
│   │   │   └── CreateFisherEndpoint.cs
│   │   └── Tournaments
│   │       ├── AddInscriptionEndpoint.cs
│   │       └── CreateTournamentEndpoint.cs
│   ├── FisherTournament.API.csproj
│   ├── Program.cs
│   └── Properties
│       └── launchSettings.json
├── FisherTournament.Application
│   ├── Common
│   │   ├── Behavior
│   │   │   ├── ErrorOrBasedValidationBehavior.cs
│   │   │   └── ExceptionBasedValidationBehavior.cs
│   │   ├── Persistence
│   │   │   └── ITournamentFisherDbContext.cs
│   │   └── Validators
│   │       └── DateTimeValidators.cs
│   ├── Competitions
│   │   ├── Commands
│   │   │   └── AddScore
│   │   │       ├── AddScoreCommand.cs
│   │   │       └── AddScoreCommandValidator.cs
│   │   └── Queries
│   │       └── GetLeaderBoard
│   │           └── GetLeaderBoardQuery.cs
│   ├── DependencyInjection.cs
│   ├── Fishers
│   │   └── Commands
│   │       └── CreateFisher
│   │           ├── CreateFisherCommand.cs
│   │           ├── CreateFisherCommandResponse.cs
│   │           └── CreateFisherCommandValidator.cs
│   ├── FisherTournament.Application.csproj
│   └── Tournaments
│       └── Commands
│           ├── AddComepetitions
│           │   ├── AddCompetitionsCommand.cs
│           │   └── AddCompetitionsCommandValidation.cs
│           ├── AddInscription
│           │   ├── AddInscriptionCommand.cs
│           │   └── AddInscriptionCommandValidator.cs
│           └── CreateTournament
│               ├── CreateTournamentCommand.cs
│               ├── CreateTournamentCommandResponse.cs
│               └── CreateTournamentCommandValidator.cs
├── FisherTournament.Contracts
│   ├── Competitions
│   │   ├── AddCompetitionsContracts.cs
│   │   ├── AddScoreContracts.cs
│   │   └── GetLeaderboardContracts.cs
│   ├── Fisher
│   │   └── CreateFisherContracts.cs
│   ├── FisherTournament.Contracts.csproj
│   └── Tournaments
│       ├── AddInscriptionRequest.cs
│       └── CreateTournamentContracts.cs
├── FisherTournament.Domain
│   ├── AggregateRoot.cs
│   ├── Common
│   │   ├── Errors
│   │   │   ├── Errors.Competition.cs
│   │   │   ├── Errors.Fisher.cs
│   │   │   ├── Errors.Id.cs
│   │   │   └── Errors.Tournament.cs
│   │   └── ValueObjects
│   │       └── GuidId.cs
│   ├── CompetitionAggregate
│   │   ├── Competition.cs
│   │   ├── Entities
│   │   │   ├── CompetitionParticipation.cs
│   │   │   └── FishCaught.cs
│   │   └── ValueObjects
│   │       ├── CompetitionId.cs
│   │       └── Location.cs
│   ├── Entity.cs
│   ├── FisherAggregate
│   │   ├── Fisher.cs
│   │   └── ValueObjects
│   │       └── FisherId.cs
│   ├── FisherTournament.Domain.csproj
│   ├── Provider
│   │   └── IDateTimeProvider.cs
│   ├── TournamentAggregate
│   │   ├── Entities
│   │   │   └── TournamentInscription.cs
│   │   ├── Tournament.cs
│   │   └── ValueObjects
│   │       └── TournamentId.cs
│   ├── UserAggregate
│   │   ├── User.cs
│   │   └── ValueObjects
│   │       └── UserId.cs
│   └── ValueObject.cs
├── FisherTournament.Infrastructure
│   ├── DependencyInjection.cs
│   ├── FisherTournament.Infrastructure.csproj
│   ├── Persistence
│   │   ├── Configurations
│   │   │   ├── CompetitionConfiguration.cs
│   │   │   ├── FisherConfiguration.cs
│   │   │   ├── IdConverter.cs
│   │   │   ├── TournamentConfiguration.cs
│   │   │   └── UserConfiguration.cs
│   │   ├── Migrations
│   │   │   ├── 20230315213139_InitialMigration.cs
│   │   │   ├── 20230315213139_InitialMigration.Designer.cs
│   │   │   └── TournamentFisherDbContextModelSnapshot.cs
│   │   └── TournamentFisherDbContext.cs
│   ├── Provider
│   │   └── DateTimeProvider.cs
│   └── Settings
│       └── DataBaseConectionSettings.cs
├── FisherTournament.sln
├── Requests
│   ├── Competition
│   │   ├── AddCompetitionsToTournament.http
│   │   ├── AddScore.http
│   │   └── GetLeaderBoard.http
│   ├── Fisher
│   │   └── CreateFisher.http
│   └── Tournament
│       ├── AddInscription.http
│       └── CreateTournament.http
└── Tests
    ├── FisherTournament.ArchitectureTests
    │   ├── FisherTournament.ArchitectureTests.csproj
    │   ├── LayerDependenciesTests.cs
    │   ├── TestBase.cs
    │   └── Usings.cs
    ├── FisherTournament.IntegrationTests
    │   ├── appsettings.json
    │   ├── BaseUseCaseTest.cs
    │   ├── Competitions
    │   │   ├── Commands
    │   │   │   └── AddScoreHandlerTest.cs
    │   │   └── Queries
    │   │       └── GetLeaderBoardQueryHandlerTest.cs
    │   ├── Fishers
    │   │   └── Commands
    │   │       └── CreateFisherHandlerTest.cs
    │   ├── FisherTournament.IntegrationTests.csproj
    │   ├── Tournaments
    │   │   └── Commands
    │   │       ├── AddCompetitionsHandlerTest.cs
    │   │       ├── AddInscriptionHandlerTest.cs
    │   │       └── CreateTournamentHandlerTest.cs
    │   ├── UseCaseTestsFixture.cs
    │   └── Usings.cs
    └── FisherTournament.UnitTests
        ├── Common
        │   └── TestData
        │       ├── BaseTestData.cs
        │       ├── NegativeNumberTestData.cs
        │       └── NullEmptyStringTesData.cs
        ├── Competitions
        │   ├── Commands
        │   │   └── AddScoreCommandValidatorTest.cs
        │   └── Queries
        ├── Fishers
        │   └── Commands
        │       └── CreateFisherCommandValidatorTest.cs
        ├── FisherTournament.UnitTests.csproj
        ├── Tournaments
        │   └── Commands
        │       ├── AddCompetitionsCommandValidatorTest.cs
        │       ├── AddInscriptionCommandValidatorTest.cs
        │       └── CreateTournamentCommandValidatorTest.cs
        └── Usings.cs

About

Demo app using Clean Arch x DDD x CQRS x (Unit-Arch-Integration) Tests


Languages

Language:C# 75.4%Language:HTML 22.4%Language:CSS 1.2%Language:JavaScript 1.0%