- Sobre o projeto
- Curso na Udemy
- O que você vai aprender no curso
- Features
- Construído com
- Arquitetura
- CI/CD e qualidade de código
- Como executar o projeto
- Instalação
- Executando os testes
- Licença
- Autor
Meu Livro de Receitas é uma API desenvolvida em .NET para gerenciamento de receitas culinárias.
A aplicação permite que usuários se cadastrem, façam login e gerenciem suas próprias receitas de forma simples e organizada. Cada receita pode conter título, ingredientes, modo de preparo, tempo de preparo e uma imagem ilustrativa.
Além do CRUD de receitas, o projeto também aborda recursos comuns em aplicações reais, como autenticação com JWT, Refresh Token, login com Google, upload de imagens, integração com IA, mensageria, testes automatizados, pipelines CI/CD, deploy no Azure e análise de cobertura de código.
Este projeto foi criado com foco em boas práticas de desenvolvimento backend e organização de código.
Este repositório faz parte do curso .NET Core: um curso orientado para o mercado de trabalho, disponível na Udemy.
Durante o curso, construímos uma API completa do zero, passando por arquitetura, banco de dados, autenticação, testes, Docker, Azure DevOps, pipelines e boas práticas de desenvolvimento.
O curso é indicado para pessoas que já possuem conhecimento em lógica de programação e C#, e querem aprender a desenvolver APIs mais completas, organizadas e preparadas para cenários reais.
Para acessar o curso, clique neste link.
Durante o curso, você aprenderá conceitos, técnicas e ferramentas usados em projetos reais:
- Criar uma API REST com .NET
- Estruturar uma solução com DDD e princípios SOLID
- Trabalhar com Entity Framework e migrations
- Implementar autenticação com JWT, Refresh Token e login com Google
- Integrar recursos externos: IA e mensageria com Azure Service Bus
- Escrever testes de unidade e de integração usando Testcontainers
- Configurar Docker no ambiente de desenvolvimento
- Criar pipelines no Azure DevOps com publicação de cobertura de testes
- Fazer deploy da aplicação em produção no Microsoft Azure
- Trabalhar em fluxo de time com Git, Pull Requests e políticas de branch
- Organizar o trabalho com práticas de SCRUM
- Usar o Claude Code como assistente de IA no desenvolvimento
A API oferece as seguintes funcionalidades:
-
Cadastro de usuários
Permite que usuários criem uma conta utilizando nome, e-mail e senha. -
Autenticação segura
Implementação de autenticação com JWT e Refresh Token, com senhas protegidas por hashing Argon2. -
Recuperação de senha
Redefinição de senha através de código de verificação enviado ao usuário. -
Login com Google
Integração com autenticação via conta Google. -
Gerenciamento de receitas
Criação, edição, exclusão, listagem e filtro de receitas. -
Upload de imagem
Permite adicionar uma imagem ilustrativa para cada receita, com validação do tipo real do arquivo via FileTypeChecker. -
Integração com AI
Geração de receitas completas com imagens, com o apoio de inteligência artificial. -
Mensageria
Uso de Azure Service Bus para processamento assíncrono, como exclusão de contas. -
Suporte a múltiplos bancos de dados
Compatível com MySQL e SQL Server. -
Testes automatizados
Testes de unidade e testes de integração para garantir a qualidade da aplicação. -
CI/CD
Pipeline configurado no Azure DevOps com build, testes e análise de cobertura.
O projeto segue uma organização baseada em Domain-Driven Design (DDD), com separação de responsabilidades entre as camadas da aplicação e os projetos compartilhados.
A estrutura principal da solução é organizada da seguinte forma:
src/
├── Backend/
│ ├── Api/
│ ├── Application/
│ ├── Domain/
│ └── Infrastructure/
│
└── Shared/
├── Communication/
└── Exception/
tests/
├── UseCases.Tests/
├── Validators.Tests/
└── WebApi.Tests/Contém os projetos principais da API e concentra as regras, fluxos e integrações da aplicação.
-
API Responsável por expor os endpoints, configurar middlewares, autenticação, documentação com Swagger e inicialização da aplicação.
-
Application Contém os casos de uso da aplicação (Regras de negócio) com as validações e transformações necessárias para executar os fluxos do sistema.
-
Domain Contém entidades e contratos principais.
-
Infrastructure Responsável por implementações externas, como acesso ao banco de dados, migrations com FluentMigrator, serviços de autenticação, envio de e-mails, integrações e persistência.
Contém projetos compartilhados que podem ser utilizados por diferentes partes da solução.
-
Communication Contém os objetos utilizados na comunicação da API, como requests, responses e contratos de entrada e saída.
-
Exception Centraliza as exceções personalizadas e estruturas relacionadas ao tratamento de erros da aplicação.
Contém os projetos responsáveis por validar o comportamento da aplicação em diferentes níveis.
-
UseCases.Tests Contém testes voltados para os casos de uso da aplicação, validando regras, fluxos e comportamentos da camada de Application.
-
Validators.Tests Contém testes específicos para as validações da aplicação, garantindo que os dados de entrada sejam avaliados corretamente.
-
WebApi.Tests Contém testes de integração da API, o comportamento real da API, incluindo banco de dados e configurações da aplicação.
O projeto utiliza Azure DevOps Pipelines para automatizar etapas importantes do desenvolvimento, como:
- Restore dos pacotes
- Build da solução
- Execução dos testes
- Publicação da cobertura de testes
- Publicação da imagem Docker com a API no Azure Container Registry
Para executar o projeto localmente, siga os passos abaixo.
- Visual Studio 2026 ou Rider
- .NET SDK
- Docker Desktop
- MySQL Server ou SQL Server
- Git
Clone o repositório:
git clone https://github.com/welissonArley/MyRecipeBook.gitAcesse a pasta do projeto:
cd MyRecipeBookConfigure o arquivo appsettings.Development.json com as informações necessárias. As chaves utilizadas atualmente são:
{
"ConnectionStrings": {
"DbConnection": "Server=localhost;Database=meulivrodereceitas;Uid=root;Pwd=sua_senha;"
},
"Jwt": {
"SigningKey": "sua-chave-secreta-com-no-minimo-32-caracteres",
"ExpirationTimeMinutes": 1000
}
}Conforme o curso avança, outras chaves são adicionadas (Google, Azure Service Bus e OpenAI) de acordo com os recursos que deseja executar.
Depois, execute a API pelo Visual Studio ou usando o comando:
dotnet runAcesse a documentação da API pelo Swagger:
https://localhost:7070/swaggerPara executar todos os testes da solução:
dotnet testPara os testes de integração, certifique-se de que o Docker esteja em execução.
Este projeto está disponível para fins de estudo e aprendizado.
A distribuição, revenda ou uso comercial do conteúdo do curso e dos materiais associados não é permitida sem autorização.
Criado por Welisson Arley.
Desenvolvedor .NET, mentor e instrutor, com experiência em desenvolvimento backend, arquitetura de software, APIs, testes automatizados, Azure DevOps e boas práticas de desenvolvimento.

