Skip to content

Mini E-commerce em .NET com C# e Entity Framework Core, com CRUD de produtos e categorias, carrinho de compras, checkout, aplicação de cupons e arquitetura API REST + MVC.

License

Notifications You must be signed in to change notification settings

Felipe-Martins-Nascimento/Mini_Ecommerce

Repository files navigation

🛒 Mini Ecommerce - Web API em .NET 8

Este é um projeto de um Mini Ecommerce, com funcionalidades de gerenciamento de produtos, carrinho de compras, aplicação de cupons de desconto e finalização de pedidos. O sistema simula um pequeno comércio (ex: livraria com categoria “Material Escolar”) e é dividido em várias camadas para ter melhor organização e modularidade.

Funcionalidades:

Gerenciamento de Produtos: Criar, editar e excluir produtos.

Carrinho de Compras: Adicionar produtos ao carrinho com a quantidade desejada.

Descontos com Cupons: Aplicar cupons de desconto VSHOP_PROMO_10 ou VSHOP_PROMO_20 conforme registrados na tabela coupons.

Finalização do Pedido: Visualizar e revisar os produtos, inserir dados pessoais e concluir a compra com uma mensagem de sucesso.

Arquitetura: O projeto está dividido em múltiplos serviços com bancos de dados separados:

🔙 Backend

Mini_Ecommerce: APIs de categorias e produtos (vshopdb → tabelas: categories, products)

VShop.CartApi: Gerenciamento do carrinho (vshopcartdb → tabelas: cartheaders, cartitems, products)

Discount: Aplicação de cupons de desconto (vshopdiscountdb → tabela: coupons)

💻 Frontend

Web: Interface web usando Razor (.cshtml), conectando-se às APIs acima.

🛠️ Tecnologias Utilizadas e Extensões:

ASP.NET Web API (.NET 8)

MySQL

Swagger UI

Postman

Bootstrap

AutoMapper

Entity Framework Core

Pomelo.EntityFrameworkCore.MySql

Swashbuckle.AspNetCore

🚀 Como Rodar o Projeto

Pré-requisitos:

.NET 8

MySQL instalado e rodando

Visual Studio

Clonar o Repositório git clone https://github.com/Felipe-Martins-Nascimento/Mini_Ecommerce.git

Configurar o Banco de Dados Certifique se as connection strings de cada projeto estão corretos nos arquivos appsettings.json (Em todos os projetos Backend, igualmente como irá fazer com o dotnet).

Instalar Ferramentas EF Core Em cada projeto (abra o terminal dentro da pasta de cada projeto, exemplo: VShop.CartApi => Botão direito => Abrir no Terminal):

dotnet tool install --global dotnet-ef

dotnet tool update --global dotnet-ef

dotnet ef --version # para verificar se foi instalado corretamente

Atualizar o Banco de Dados Rode o comando abaixo dentro de cada projeto que tem DbContext: dotnet ef database update

Caso precise passei o arquivo Backup.txt, apenas rode esse arquivo no MySql.

ENDPOINTS para rodar no Postman:

Catálogo de Produtos:

GET: /api/Products

http://localhost:5018/api/Products

POST: /api/Products

http://localhost:5018/api/Products

Colocar na aba headers:

Key: Content-Type

Value: application/json

Na aba Body:

{ "id": 78, "name": "apag", "description": "testar", "price": 20.22, "stock": 9, "imageURL": "balde.jpg", "categoryId": 1, "categoryName": null }

-> Ver no GET quais são os id que tem, e colocar um diferente no JSON

PUT: /api/Products

http://localhost:5018/api/Products

Colocar na aba headers:

Key: Content-Type

Value: application/json

Na aba Body:

{ "id": 41, "name": "apag", "description": "testar", "price": 20.22, "stock": 9, "imageURL": "balde.jpg", "categoryId": 1, "categoryName": null }

-> Ver no GET quais são os id que tem, e colocar um igual no JSON

GET: /api/Products/ {id}

http://localhost:5018/api/Products/{id}

Exemplo:

http://localhost:5018/api/Products/881

-> Ver no GET quais são os id que tem para caso tenha que substituir o 881, mesma coisa para o delete.

DELETE: /api/Products/{id} -> Verificar se tem algum produto com seu id

http://localhost:5018/api/Products/{id}

Exemplo:

http://localhost:5018/api/Products/881

Carrinho de Compras:

POST: /api/Cart/addcart

http://localhost:5039/api/Cart/addcart

Colocar na aba headers:

Key: Content-Type

Value: application/json

Na aba Body:

{ "cartItems": [ { "quantity": 2, "product": { "id": 1, "name": "Produto A", "stock": 10 } } ] }

GET: /api/Cart/getcart

http://localhost:5039/api/Cart/getcart

POST: /api/Cart/checkout

http://localhost:5039/api/Cart/checkout

Colocar na aba headers:

Key: Content-Type

Value: application/json

Na aba Body:

{ "cartItems": [ { "quantity": 2, "product": { "id": 1, "name": "Produto A", "stock": 10 } } ] }

DELETE: /api/Cart/clearcart -> Verificar se tem algum produto no carrinho

http://localhost:5039/api/Cart/clearcart

Além dessas APIs, implementei outras contribuindo para a parte WEB do projeto, para testar siga o mesmo padrão das APIs acima.

About

Mini E-commerce em .NET com C# e Entity Framework Core, com CRUD de produtos e categorias, carrinho de compras, checkout, aplicação de cupons e arquitetura API REST + MVC.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published