Skip to content

Iclasth/ProductClientHub

Repository files navigation

ProductClientHub

.NET SQLite Entity Framework Core


🚀 Visão Geral

ProductClientHub é uma API RESTful construída com C# e ASP.NET Core para gerenciar Clientes e Produtos de forma simples, organizada e escalável.
O projeto utiliza Entity Framework Core com SQLite para persistência, aplicando boas práticas de arquitetura, validação e tratamento de erros.

Idealizado como um estudo prático para consolidar conhecimentos essenciais sobre:

  • Estruturação de APIs REST
  • Boas práticas com .NET
  • CRUD completo (Create, Read, Update, Delete)
  • Clean code e modularização
  • Validação de dados e exceções

📌 Principais Funcionalidades

  • CRUD de Clientes
  • CRUD de Produtos
  • Persistência com SQLite + EF Core
  • Validação com FluentValidation
  • Tratamento de erros com exceções customizadas
  • Estrutura limpa, modular e de fácil manutenção
  • Ambiente simples para desenvolvimento local

🧰 Tecnologias e Ferramentas

  • .NET 8.0 / C#
  • ASP.NET Core Web API
  • Entity Framework Core 9.0.10
  • SQLite
  • FluentValidation
  • Swagger / OpenAPI (se configurado)
  • Visual Studio / VS Code / CLI .NET

📂 Estrutura do Projeto


ProductClientHub/
│
├─ ProductClientHub.API/                ← API principal
│   ├─ Controllers/                     ← Endpoints REST (Clients, Products)
│   ├─ Entities/                        ← Modelos de domínio
│   ├─ Infrastructure/                  ← DbContext e configurações de banco
│   ├─ Services / UseCases / ...        ← Lógica de negócio
│   ├─ Program.cs                       ← Configuração inicial da API
│   └─ ...
│
├─ ProductClientHub.Communication/      ← DTOs: requests/responses
├─ ProductClientHub.Exceptions/         ← Exceções customizadas e handlers
├─ ProductClientHub.sln                 ← Solução .NET
└─ README.md                            ← Este documento


⚙️ Como Executar Localmente

  1. Clone o repositório:
git clone https://github.com/Iclasth/ProductClientHub.git
cd ProductClientHub/ProductClientHub.API
  1. Restaure as dependências:
dotnet restore
  1. Aplique as migrações e crie o banco SQLite:
dotnet ef database update

Ou, caso queira recriar do zero:

dotnet ef database drop
dotnet ef database update
  1. Execute a API:
dotnet run
  1. Acesse o Swagger (se disponível) ou use Insomnia/Postman para testar.

🧪 Exemplos de Endpoints

Clientes

Método Endpoint Descrição
GET /api/clients Lista todos os clientes
GET /api/clients/{id} Busca cliente por ID
POST /api/clients Cria novo cliente
PUT /api/clients/{id} Atualiza cliente
DELETE /api/clients/{id} Remove cliente

Exemplo JSON (Criar Cliente)

{
  "name": "João Silva",
  "email": "joao@example.com"
}

Products

Estrutura equivalente aos endpoints de Clients.


✅ Boas práticas adotadas

  • Separação clara entre camadas (Controllers, Entities, Infra, DTOs, Exceptions)
  • Uso de EF Core + Migrations
  • Validação robusta com FluentValidation
  • Tratamento centralizado de exceções
  • Padronização de respostas
  • Código organizado e legível

🧭 Melhorias Futuras

  • Implementar autenticação e autorização (JWT)
  • Documentação avançada com exemplos completos no Swagger
  • Criação de testes unitários e de integração
  • Paginação e filtragem nas listagens
  • Dockerização para deploy
  • Logging estruturado (Serilog)

🤝 Como Contribuir

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature:
git checkout -b feature/minha-feature
  1. Commit com mensagens semânticas (ex.: feat:, fix:, docs:)
  2. Abra um Pull Request descrevendo suas alterações

📬 Contato / Autor

Desenvolvido por Iclasth Projeto criado como parte do meu avanço nos estudos de .NET e APIs REST.

🔗 GitHub: https://github.com/Iclasth 🔗 LinkedIn: https://www.linkedin.com/in/iclasoliveira

About

A RESTful API built with .NET C# for managing users and products using Entity Framework Core. | API RESTful desenvolvida em .NET C# para gerenciamento de usuários e produtos utilizando Entity Framework Core.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages