Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

105 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meu Livro de Receitas

hero-project-image

Índice


Sobre o projeto

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.


Curso na Udemy

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.

hero-course-image


O que você vai aprender no curso

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

Features

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.


Construído com

badge-c# badge-dot-net badge-windows badge-visual-studio badge-mysql badge-sqlserver badge-swagger badge-docker badge-azure-devops badge-azure badge-yaml badge-gmail badge-openai


Arquitetura

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/

Principais responsabilidades

Backend

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.

Shared

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.

Tests

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.

CI/CD e qualidade de código

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

Como executar o projeto

Para executar o projeto localmente, siga os passos abaixo.

Requisitos

  • Visual Studio 2026 ou Rider
  • .NET SDK
  • Docker Desktop
  • MySQL Server ou SQL Server
  • Git

Instalação

Clone o repositório:

git clone https://github.com/welissonArley/MyRecipeBook.git

Acesse a pasta do projeto:

cd MyRecipeBook

Configure 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 run

Acesse a documentação da API pelo Swagger:

https://localhost:7070/swagger

Executando os testes

Para executar todos os testes da solução:

dotnet test

Para os testes de integração, certifique-se de que o Docker esteja em execução.


Licença

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.


Autor

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.


About

API .NET para gerenciamento de receitas com login via Google e integração com ChatGPT. Utiliza arquitetura DDD e SOLID. Testes unitários e de integração implementados. Mensageria e deploy com Azure.

Topics

Resources

Stars

74 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages