https://github.com/cnthigu/alurachallengebackend7
API REST para gestão de destinos turísticos e depoimentos. Desenvolvida com ASP.NET Core 9.0, integração com IA e documentação Swagger. Projeto do Challenge Backend da Alura.
https://github.com/cnthigu/alurachallengebackend7
ai-integration alura aspnet-core backend challenge crud csharp dotnet entity-framework rest-api sql-server swagger tourism-api web-api
Last synced: 11 months ago
JSON representation
API REST para gestão de destinos turísticos e depoimentos. Desenvolvida com ASP.NET Core 9.0, integração com IA e documentação Swagger. Projeto do Challenge Backend da Alura.
- Host: GitHub
- URL: https://github.com/cnthigu/alurachallengebackend7
- Owner: cnthigu
- Created: 2025-07-25T15:21:08.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-07-25T15:39:24.000Z (11 months ago)
- Last Synced: 2025-07-25T22:41:09.990Z (11 months ago)
- Topics: ai-integration, alura, aspnet-core, backend, challenge, crud, csharp, dotnet, entity-framework, rest-api, sql-server, swagger, tourism-api, web-api
- Language: C#
- Homepage:
- Size: 63.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API de Depoimentos e Destinos





## Descrição
API RESTful desenvolvida em **ASP.NET Core 9.0** para um sistema de busca e gerenciamento de destinos turísticos com depoimentos de usuários.
Este projeto foi desenvolvido como parte de um **challenge da plataforma Alura**, demonstrando habilidades em desenvolvimento backend com tecnologias
modernas e integração com **Inteligência Artificial**.
### **Projeto Educacional Alura**
Este projeto faz parte do programa de formação da **Alura**, uma das principais plataformas de educação em tecnologia do Brasil.
O challenge foi desenvolvido para consolidar conhecimentos em:
- Desenvolvimento de APIs REST com ASP.NET Core
- Integração com bancos de dados usando Entity Framework
- Implementação de funcionalidades com IA
- Boas práticas de desenvolvimento e documentação
## Funcionalidades
### Gestão de Destinos
- **CRUD completo** de destinos turísticos
- **Busca por nome** com filtros dinâmicos
- **Geração automática de descrições via IA** - Sistema inteligente que cria descrições personalizadas para cada destino
- **Validação de dados** com Data Annotations
- **Upload de múltiplas imagens** por destino
### Sistema de Depoimentos
- **CRUD completo** de depoimentos de usuários
- **Seleção aleatória** para exibição na home
- **Gestão de fotos** e textos dos usuários
- **Endpoint especializado** para depoimentos da página inicial
### Recursos Técnicos
- **Documentação automática** com Swagger/OpenAPI
- **Configuração de CORS** para desenvolvimento
- **Entity Framework Core** com SQL Server
- **Arquitetura em camadas** (Controllers, Models, Data)
- **Injeção de dependência** nativa do ASP.NET Core
- **Integração com IA** para geração automática de conteúdo
## Tecnologias Utilizadas
- **.NET 9.0** - Framework principal
- **ASP.NET Core Web API** - Para criação da API REST
- **Entity Framework Core 9.0** - ORM para acesso a dados
- **SQL Server** - Banco de dados relacional
- **Swagger/OpenAPI** - Documentação da API
- **C#** - Linguagem de programação
- **Inteligência Artificial** - Geração automática de conteúdo
## Como Executar
### Pré-requisitos
- [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)
- [SQL Server](https://www.microsoft.com/pt-br/sql-server/sql-server-downloads) ou [SQL Server Express](https://www.microsoft.com/pt-br/sql-server/sql-server-downloads)
- [Visual Studio 2022](https://visualstudio.microsoft.com/pt-br/) ou [VS Code](https://code.visualstudio.com/)
### Configuração
1. **Clone o repositório**
```bash
git clone https://github.com/cnthigu/alurachallengebackend7.git
cd depoimentos-api
```
2. **Configure a string de conexão**
Edite o arquivo `appsettings.json` e configure sua string de conexão:
```json
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=DepoimentosDB;Trusted_Connection=true;TrustServerCertificate=true;"
}
}
```
3. **Execute as migrações**
```bash
dotnet ef database update
```
4. **Execute o projeto**
```bash
dotnet run
```
5. **Acesse a documentação**
Abra o navegador e acesse: `https://localhost:7001/swagger`
## Endpoints da API
### Destinos
- `GET /destinos` - Lista todos os destinos
- `GET /destinos?nome={nome}` - Busca destinos por nome
- `GET /destinos/{id}` - Obtém detalhes de um destino específico
- `POST /destinos` - Cria um novo destino
- `PUT /destinos/{id}` - Atualiza um destino existente
- `DELETE /destinos/{id}` - Remove um destino
### Depoimentos
- `GET /depoimentos` - Lista todos os depoimentos
- `GET /depoimentos/{id}` - Obtém um depoimento específico
- `GET /depoimentos-home` - Obtém 3 depoimentos aleatórios para a home
- `POST /depoimentos` - Cria um novo depoimento
- `PUT /depoimentos/{id}` - Atualiza um depoimento existente
- `DELETE /depoimentos/{id}` - Remove um depoimento

## Arquitetura do Projeto
```
DepoimentosApi/
├── Controllers/ # Controladores da API
│ ├── DestinosController.cs
│ └── DepoimentosController.cs
├── Models/ # Modelos de dados
│ ├── Destinos.cs
│ └── Depoimento.cs
├── Data/ # Camada de acesso a dados
│ └── AppDbContext.cs
├── Migrations/ # Migrações do Entity Framework
└── Program.cs # Configuração da aplicação
```
## Funcionalidade de Inteligência Artificial
### Geração Automática de Conteúdo
O projeto implementa um sistema inteligente que gera automaticamente descrições para destinos turísticos quando não fornecidas pelo usuário:
```csharp
private string GerarResumoIA(string nomeDestino)
{
return $"Resumo sobre {nomeDestino}: lugar incrível, cheio de cultura e diversão. Vale a pena conhecer!";
}
```
**Como funciona:**
- Quando um destino é criado sem descrição, o sistema automaticamente gera uma
- A IA analisa o nome do destino e cria uma descrição contextualizada
- Melhora a experiência do usuário fornecendo conteúdo sempre disponível
- Demonstra integração de tecnologias emergentes em projetos práticos
## Modelos de Dados
### Destinos
```csharp
public class Destinos
{
public int Id { get; set; }
public string Foto1 { get; set; }
public string Foto2 { get; set; }
public string Nome { get; set; }
public string Meta { get; set; }
public int Preco { get; set; }
public string? TextoDescritivo { get; set; }
}
```
### Depoimentos
```csharp
public class Depoimento
{
public int Id { get; set; }
public string Nome { get; set; }
public string Foto { get; set; }
public string Texto { get; set; }
}
```
## Diferenciais do Projeto
- **Implementação completa de CRUD** em ambas as entidades
- **Busca dinâmica** com filtros por nome
- **Geração automática de conteúdo via IA** - Sistema inteligente que cria descrições personalizadas para destinos
- **Seleção aleatória** de depoimentos para home
- **Validação robusta** de dados de entrada
- **Documentação automática** com Swagger
- **Configuração de CORS** para integração frontend
- **Arquitetura limpa** seguindo boas práticas