Skip to content

GabrielWeissReis/ToDoList-Docker

Repository files navigation

ToDoList Application

Overview

Esta aplicação é composta por um frontend em Angular e um backend em .NET Web API, utilizando Domain-Driven Design (DDD), clean code e clean architecture, e testes de unidade em cada camada para garantir a qualidade do código.

ATENÇÃO: o projeto foi criado no Visual Studio, e a visualização correta da estrutura de pastas/camadas só será possível caso o Visual Studio esteja sendo utilizado, conforme imagem abaixo.

Estrutura do Projeto

  • frontend: Contém o código do frontend em Angular.

    • src: Código fonte do Angular.
    • Dockerfile: Dockerfile para construir a imagem do frontend.
  • backend: Contém o código do backend em .NET, dividido em 4 camadas:

    • Api: Código da API Web.
    • Application: Lógica de aplicação.
    • Domain: Entidades e lógica de domínio.
    • Infrastructure: Configurações e repositórios de infraestrutura.
    • Testes para cada camada da aplicação.
  • banco de dados: Foi utilizado SQL Server para a persistência dos dados

  • docker-compose: Arquivos de configuração do Docker Compose.

    • docker-compose.yml: Arquivo principal para orquestrar os serviços do Docker.

Pré-requisitos

  • Docker e Docker Compose instalados na máquina.

Como Rodar a Aplicação com Docker Compose

  1. Clone o repositório

    git clone https://github.com/GabrielWeissReis/ToDoList-Docker.git
    cd ToDoList-Docker
  2. Contrua e inicie os contêineres

Execute o comando abaixo na raiz do projeto onde está localizado o arquivo docker-compose.yml:

docker-compose up --build
  1. Acesse a aplicação

Frontend: http://localhost:4200

Backend: http://localhost:8080/swagger/index.html

TODO

  • Testes: adicionar maior cobertura de testes.
  • API Gateway: adicionar API Gateway, por exemplo Ocelot, para termos um ponto de entrada único de requisições para a API e eventuais futuros microsserviços de backend.
  • Docker Hub Container Image Library: adicionar as imagens ao Docker Hub para agilizar o tempo de download.
  • Prometheus/Grafana: para coletar/armazenar métricas e criar deshboards interativos.
  • Redis: para armazenamento de dados em memória no estilo chave-valor, oferecendo acesso rápido aos dados frequentemente utilizados pela aplicação, reduzindo a necessidade de consultas ao banco de dados e melhorando o desempenho geral.

Imagens do Projeto

image image image image image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published