Skip to content

amazingustav/ktorplate

Repository files navigation

English README

Ktorplate - Template para projetos Ktor

Tech stack:

Este projeto obedece as regras da Arquitetura Limpa (Clean Architecture) e está organizado da seguinte maneira:

|-- application -> Módulo principal, responsável por injeções de dependências e contextos. Enxerga e orquestra todos os outros módulos
|-- persistence -> Faz a integração e interface com o banco de dados ou qualquer outro tipo de armazenamento de dados. Reconhece os módulos "entity" e "usecase"
|-- web         -> Web Adapter, onde expomos a porta de entrada da aplicação (API, evento, sockets...). Reconhece os módulos "entity" e "usecase"
|-- usecase     -> Regras da aplicação. Reconhece apenas o módulo "entity".
|-- entity      -> Entidades e regras de negócio. Não reconhece nenhum módulo. É o miolo da arquitetura

Como executar

  • Para inicializar o banco de dados e a API, basta executar o seguinte comando:
    • Caso queira acompanhar os logs, apenas remova o argumento -d
docker-compose up -d
  • Para encerrar o banco de dados e a API, basta executar o seguinte comando:
docker-compose stop

OBS: É necessário estar no mesmo nível de pasta do arquivo docker-compose.yml para executar os comandos acima.

Versionamento da Base

Todas as alterações na base são versionadas com o flyway, então a cada alteração (DDL/DML) da base, é necessário adicionar um novo arquivo na pasta resources/db/migration contendo sua alteração. O build do gradle se encarregará de aplicar as alterações graças ao plugin do flyway.