├── .gitignore ├── LICENSE ├── README.md ├── app ├── adapter │ ├── AdapterModule.scala │ ├── GroupController.scala │ ├── PickedLeaderPresenter.scala │ ├── Presenter.scala │ └── repository │ │ └── InMemoryUserRepository.scala ├── contract │ ├── Callback.scala │ ├── PullPort.scala │ ├── PushPort.scala │ ├── UseCase.scala │ ├── callback │ │ └── PickedLeaderCallback.scala │ └── usecase │ │ └── PickLeaderUseCase.scala ├── domain │ ├── GroupId.scala │ ├── UserBoard.scala │ ├── UserId.scala │ └── UserRepository.scala └── usecase │ ├── PickLeaderUseCaseImpl.scala │ └── UseCaseModule.scala ├── conf ├── application.conf ├── logback.xml └── routes ├── project ├── build.properties └── plugins.sbt └── public └── images └── favicon.png /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Clean Architecture Sample 2 | 3 | * Scala 4 | * Play! Framework 5 | -------------------------------------------------------------------------------- /app/adapter/AdapterModule.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/adapter/AdapterModule.scala -------------------------------------------------------------------------------- /app/adapter/GroupController.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/adapter/GroupController.scala -------------------------------------------------------------------------------- /app/adapter/PickedLeaderPresenter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/adapter/PickedLeaderPresenter.scala -------------------------------------------------------------------------------- /app/adapter/Presenter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/adapter/Presenter.scala -------------------------------------------------------------------------------- /app/adapter/repository/InMemoryUserRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/adapter/repository/InMemoryUserRepository.scala -------------------------------------------------------------------------------- /app/contract/Callback.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/contract/Callback.scala -------------------------------------------------------------------------------- /app/contract/PullPort.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/contract/PullPort.scala -------------------------------------------------------------------------------- /app/contract/PushPort.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/contract/PushPort.scala -------------------------------------------------------------------------------- /app/contract/UseCase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/contract/UseCase.scala -------------------------------------------------------------------------------- /app/contract/callback/PickedLeaderCallback.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/contract/callback/PickedLeaderCallback.scala -------------------------------------------------------------------------------- /app/contract/usecase/PickLeaderUseCase.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/contract/usecase/PickLeaderUseCase.scala -------------------------------------------------------------------------------- /app/domain/GroupId.scala: -------------------------------------------------------------------------------- 1 | package domain 2 | 3 | case class GroupId(id: Int) 4 | -------------------------------------------------------------------------------- /app/domain/UserBoard.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/domain/UserBoard.scala -------------------------------------------------------------------------------- /app/domain/UserId.scala: -------------------------------------------------------------------------------- 1 | package domain 2 | 3 | case class UserId(id: Int) 4 | -------------------------------------------------------------------------------- /app/domain/UserRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/domain/UserRepository.scala -------------------------------------------------------------------------------- /app/usecase/PickLeaderUseCaseImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/usecase/PickLeaderUseCaseImpl.scala -------------------------------------------------------------------------------- /app/usecase/UseCaseModule.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/app/usecase/UseCaseModule.scala -------------------------------------------------------------------------------- /conf/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/conf/application.conf -------------------------------------------------------------------------------- /conf/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/conf/logback.xml -------------------------------------------------------------------------------- /conf/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/conf/routes -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.2.8 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /public/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yoskhdia/cleanArchSample/HEAD/public/images/favicon.png --------------------------------------------------------------------------------