Backend Engine para plataforma de distribuição e catálogo de jogos digitais.
Este projeto é uma API RESTful desenvolvida em .NET 9, projetada para suportar um ecossistema multiplataforma (Web, Desktop e Mobile). O foco principal é oferecer uma base sólida, performática e segura para operações de comércio eletrônico de jogos.
- Performance First: Utilização de ADO.NET puro para manipulação de dados, garantindo máxima performance e controle sobre as queries SQL, ideal para cenários de alto volume de acessos.
- Omnichannel Security: Sistema robusto de recuperação de contas e notificações integrando múltiplos canais: E-mail (SMTP), SMS, WhatsApp (Twilio) e Telegram Bot.
- Arquitetura Limpa: Separação estrita de responsabilidades utilizando o padrão Repository Pattern e Injeção de Dependência.
-
Runtime: .NET 9 (Latest Release)
-
Linguagem: C# 13
-
Banco de Dados: Microsoft SQL Server
-
Acesso a Dados:
Microsoft.Data.SqlClient(ADO.NET) -
Segurança: * Hash Híbrido (SHA256 + BCrypt)
-
Proteção contra ataques de Força Bruta
-
Integrações:
-
📧 MailKit: Envio de e-mails transacionais.
-
📱 Twilio API: Envio de SMS e WhatsApp.
-
🤖 Telegram Bot API: Notificações instantâneas via bot.
-
Documentação: Swagger UI (OpenAPI).
-
Cadastro de Usuário: Registro com validação de dados e hashing seguro de senha.
-
Login: Autenticação segura.
-
Recuperação de Senha Omnichannel:
-
Envio de Token via E-mail.
-
Envio de Token via SMS.
-
Envio de Token via WhatsApp.
-
Envio de Token via Telegram.
-
Redefinição Segura: Validação de token com expiração (15 minutos).
- Listagem de Jogos (Vitrine).
- Detalhes do Produto.
- Carrinho de Compras.
- Processamento de Pedidos.
O projeto segue uma arquitetura em camadas para garantir manutenibilidade e escalabilidade:
graph TD
Client[Client Apps<br/>Web/Mobile/Desktop] -->|HTTP Request| API[API Controllers]
API -->|DI| Services[Business Services<br/>Auth/Email/SMS]
API -->|DI| Repos[Repositories<br/>Data Access Layer]
Repos -->|SQL| DB[(SQL Server)]
Services -->|API Call| External[External Providers<br/>Twilio/Gmail/Telegram]
- .NET 9 SDK
- SQL Server (Express ou Docker)
- Visual Studio 2022 ou VS Code
git clone https://github.com/Eduxplorer/BackEndGamesTito.API.git
cd BackEndGamesTito.API
Execute o script abaixo no seu SQL Server para criar a tabela necessária:
CREATE TABLE dbo.Usuarios (
UsuarioId INT IDENTITY(1,1) PRIMARY KEY,
NomeCompleto VARCHAR(150) NOT NULL,
Email VARCHAR(150) NOT NULL UNIQUE,
Telefone VARCHAR(20) NULL,
TelegramChatId VARCHAR(50) NULL,
PasswordHash VARCHAR(60) NOT NULL, -- Tamanho exato para BCrypt
ResetToken VARCHAR(100) NULL,
ResetTokenExpiry DATETIME2 NULL,
DataCriacao DATETIME2 DEFAULT SYSUTCDATETIME(),
StatusId INT DEFAULT 1
);
dotnet user-secrets init
dotnet user-secrets set "EmailSettings:SenderEmail" "seu-email@gmail.com"
dotnet user-secrets set "EmailSettings:Password" "sua-senha-de-app"
dotnet user-secrets set "SmsSettings:AccountSid" "seu-sid-twilio"
dotnet user-secrets set "SmsSettings:AuthToken" "seu-token-twilio"
dotnet user-secrets set "TelegramSettings:BotToken" "seu-token-botfather"
dotnet run
Acesse a documentação Swagger em: https://localhost:7079/swagger
A segurança das senhas utiliza uma abordagem de defesa em profundidade:
- Input: A senha recebe um pré-processamento.
- Pepper: Aplicação de uma chave secreta da aplicação.
- Hashing: Utilização do algoritmo BCrypt (padrão de mercado) para armazenamento final, garantindo proteção contra Rainbow Tables através de Salting automático.
Eduardo Desenvolvedor Full Stack .NET LinkedIn | GitHub