{"id":29916580,"url":"https://github.com/cnthigu/alurachallengebackend7","last_synced_at":"2025-08-02T05:03:05.705Z","repository":{"id":306458865,"uuid":"1026261037","full_name":"cnthigu/alurachallengebackend7","owner":"cnthigu","description":"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.","archived":false,"fork":false,"pushed_at":"2025-07-25T15:39:24.000Z","size":65,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-25T22:41:09.990Z","etag":null,"topics":["ai-integration","alura","aspnet-core","backend","challenge","crud","csharp","dotnet","entity-framework","rest-api","sql-server","swagger","tourism-api","web-api"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cnthigu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-25T15:21:08.000Z","updated_at":"2025-07-25T15:43:16.000Z","dependencies_parsed_at":"2025-07-25T22:41:11.395Z","dependency_job_id":"4e2726cd-a984-45d1-ad89-6a36003837c8","html_url":"https://github.com/cnthigu/alurachallengebackend7","commit_stats":null,"previous_names":["cnthigu/alurachallengebackend7"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/cnthigu/alurachallengebackend7","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnthigu%2Falurachallengebackend7","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnthigu%2Falurachallengebackend7/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnthigu%2Falurachallengebackend7/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnthigu%2Falurachallengebackend7/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cnthigu","download_url":"https://codeload.github.com/cnthigu/alurachallengebackend7/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnthigu%2Falurachallengebackend7/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268337931,"owners_count":24234537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-integration","alura","aspnet-core","backend","challenge","crud","csharp","dotnet","entity-framework","rest-api","sql-server","swagger","tourism-api","web-api"],"created_at":"2025-08-02T05:01:08.785Z","updated_at":"2025-08-02T05:03:05.692Z","avatar_url":"https://github.com/cnthigu.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API de Depoimentos e Destinos\n\n\u003cdiv align=\"center\"\u003e\n\n![.NET](https://img.shields.io/badge/.NET-9.0-512BD4?style=for-the-badge\u0026logo=.net\u0026logoColor=white)\n![C#](https://img.shields.io/badge/C%23-239120?style=for-the-badge\u0026logo=c-sharp\u0026logoColor=white)\n![Entity Framework](https://img.shields.io/badge/Entity_Framework-512BD4?style=for-the-badge\u0026logo=.net\u0026logoColor=white)\n![SQL Server](https://img.shields.io/badge/SQL_Server-CC2927?style=for-the-badge\u0026logo=microsoft-sql-server\u0026logoColor=white)\n![Swagger](https://img.shields.io/badge/Swagger-85EA2D?style=for-the-badge\u0026logo=swagger\u0026logoColor=black)\n\n\u003c/div\u003e\n\n## Descrição\n\nAPI RESTful desenvolvida em **ASP.NET Core 9.0** para um sistema de busca e gerenciamento de destinos turísticos com depoimentos de usuários. \nEste projeto foi desenvolvido como parte de um **challenge da plataforma Alura**, demonstrando habilidades em desenvolvimento backend com tecnologias \nmodernas e integração com **Inteligência Artificial**.\n\n### **Projeto Educacional Alura**\nEste projeto faz parte do programa de formação da **Alura**, uma das principais plataformas de educação em tecnologia do Brasil. \nO challenge foi desenvolvido para consolidar conhecimentos em:\n- Desenvolvimento de APIs REST com ASP.NET Core\n- Integração com bancos de dados usando Entity Framework\n- Implementação de funcionalidades com IA\n- Boas práticas de desenvolvimento e documentação\n\n## Funcionalidades\n\n### Gestão de Destinos\n- **CRUD completo** de destinos turísticos\n- **Busca por nome** com filtros dinâmicos\n- **Geração automática de descrições via IA** - Sistema inteligente que cria descrições personalizadas para cada destino\n- **Validação de dados** com Data Annotations\n- **Upload de múltiplas imagens** por destino\n\n###  Sistema de Depoimentos\n- **CRUD completo** de depoimentos de usuários\n- **Seleção aleatória** para exibição na home\n- **Gestão de fotos** e textos dos usuários\n- **Endpoint especializado** para depoimentos da página inicial\n\n### Recursos Técnicos\n- **Documentação automática** com Swagger/OpenAPI\n- **Configuração de CORS** para desenvolvimento\n- **Entity Framework Core** com SQL Server\n- **Arquitetura em camadas** (Controllers, Models, Data)\n- **Injeção de dependência** nativa do ASP.NET Core\n- **Integração com IA** para geração automática de conteúdo\n\n## Tecnologias Utilizadas\n\n- **.NET 9.0** - Framework principal\n- **ASP.NET Core Web API** - Para criação da API REST\n- **Entity Framework Core 9.0** - ORM para acesso a dados\n- **SQL Server** - Banco de dados relacional\n- **Swagger/OpenAPI** - Documentação da API\n- **C#** - Linguagem de programação\n- **Inteligência Artificial** - Geração automática de conteúdo\n\n## Como Executar\n\n### Pré-requisitos\n- [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)\n- [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)\n- [Visual Studio 2022](https://visualstudio.microsoft.com/pt-br/) ou [VS Code](https://code.visualstudio.com/)\n\n### Configuração\n\n1. **Clone o repositório**\n```bash\ngit clone https://github.com/cnthigu/alurachallengebackend7.git\ncd depoimentos-api\n```\n\n2. **Configure a string de conexão**\nEdite o arquivo `appsettings.json` e configure sua string de conexão:\n```json\n{\n  \"ConnectionStrings\": {\n    \"DefaultConnection\": \"Server=localhost;Database=DepoimentosDB;Trusted_Connection=true;TrustServerCertificate=true;\"\n  }\n}\n```\n\n3. **Execute as migrações**\n```bash\ndotnet ef database update\n```\n\n4. **Execute o projeto**\n```bash\ndotnet run\n```\n\n5. **Acesse a documentação**\nAbra o navegador e acesse: `https://localhost:7001/swagger`\n\n## Endpoints da API\n\n### Destinos\n- `GET /destinos` - Lista todos os destinos\n- `GET /destinos?nome={nome}` - Busca destinos por nome\n- `GET /destinos/{id}` - Obtém detalhes de um destino específico\n- `POST /destinos` - Cria um novo destino\n- `PUT /destinos/{id}` - Atualiza um destino existente\n- `DELETE /destinos/{id}` - Remove um destino\n\n### Depoimentos\n- `GET /depoimentos` - Lista todos os depoimentos\n- `GET /depoimentos/{id}` - Obtém um depoimento específico\n- `GET /depoimentos-home` - Obtém 3 depoimentos aleatórios para a home\n- `POST /depoimentos` - Cria um novo depoimento\n- `PUT /depoimentos/{id}` - Atualiza um depoimento existente\n- `DELETE /depoimentos/{id}` - Remove um depoimento\n\n![Imagem](imagens/depoimentos.jpg)\n\n## Arquitetura do Projeto\n\n```\nDepoimentosApi/\n├── Controllers/          # Controladores da API\n│   ├── DestinosController.cs\n│   └── DepoimentosController.cs\n├── Models/              # Modelos de dados\n│   ├── Destinos.cs\n│   └── Depoimento.cs\n├── Data/                # Camada de acesso a dados\n│   └── AppDbContext.cs\n├── Migrations/          # Migrações do Entity Framework\n└── Program.cs           # Configuração da aplicação\n```\n\n## Funcionalidade de Inteligência Artificial\n\n### Geração Automática de Conteúdo\nO projeto implementa um sistema inteligente que gera automaticamente descrições para destinos turísticos quando não fornecidas pelo usuário:\n\n```csharp\nprivate string GerarResumoIA(string nomeDestino)\n{\n    return $\"Resumo sobre {nomeDestino}: lugar incrível, cheio de cultura e diversão. Vale a pena conhecer!\";\n}\n```\n\n**Como funciona:**\n- Quando um destino é criado sem descrição, o sistema automaticamente gera uma\n- A IA analisa o nome do destino e cria uma descrição contextualizada\n- Melhora a experiência do usuário fornecendo conteúdo sempre disponível\n- Demonstra integração de tecnologias emergentes em projetos práticos\n\n## Modelos de Dados\n\n### Destinos\n```csharp\npublic class Destinos\n{\n    public int Id { get; set; }\n    public string Foto1 { get; set; }\n    public string Foto2 { get; set; }\n    public string Nome { get; set; }\n    public string Meta { get; set; }\n    public int Preco { get; set; }\n    public string? TextoDescritivo { get; set; }\n}\n```\n\n### Depoimentos\n```csharp\npublic class Depoimento\n{\n    public int Id { get; set; }\n    public string Nome { get; set; }\n    public string Foto { get; set; }\n    public string Texto { get; set; }\n}\n```\n\n## Diferenciais do Projeto\n\n- **Implementação completa de CRUD** em ambas as entidades\n- **Busca dinâmica** com filtros por nome\n- **Geração automática de conteúdo via IA** - Sistema inteligente que cria descrições personalizadas para destinos\n- **Seleção aleatória** de depoimentos para home\n- **Validação robusta** de dados de entrada\n- **Documentação automática** com Swagger\n- **Configuração de CORS** para integração frontend\n- **Arquitetura limpa** seguindo boas práticas\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnthigu%2Falurachallengebackend7","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcnthigu%2Falurachallengebackend7","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnthigu%2Falurachallengebackend7/lists"}