Skip to content

Net-Vanguard/fase-01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English version 🇺🇸


ContactRegionator Logo
FIAP Cloud Games (FCG)

Service developed as part of the Phase 1 Tech Challenge — FIAP Postgraduate in .NET Software Architecture with Azure.

✨ Key Features🧠 Technical Requirements🚀 🏗️ Project Structure (DDD)🚀 How to Use


Notion

✨ Key Features

  • User Management: register with name, email & password (complexity rules)
  • Authentication & Authorization: JWT-based; roles User (library access) and Admin (manage users/games)
  • Game Catalog: CRUD operations for digital games (title, description, price)
  • User Library: purchase and list acquired games (many-to-many relation)
  • Data Persistence: EF Core with migrations (optional MongoDB/Dapper)
  • API Documentation: Swagger UI for all endpoints
  • Error Handling & Logging: global middleware with structured logs
  • Automated Testing: unit tests with xUnit; at least one module with TDD/BDD

🧠 Technical Requirements

  • .NET 8
  • C# 12
  • ASP.NET Core Web API (Minimal API or MVC Controllers)
  • Entity Framework Core (or Dapper / MongoDB optional)
  • JWT Authentication
  • Swagger (Swashbuckle)
  • SQL Server or PostgreSQL
  • xUnit + FluentAssertions
  • (Optional) SpecFlow for BDD scenarios

🏗️ Project Structure (DDD)

This project follows Domain-Driven Design (DDD) principles with the following layered structure:

src/
├── Application/
│   └── Services, DTOs, Interfaces
├── Domain/
│   └── Entities, Enums, ValueObjects, Interfaces
├── Infrastructure/
│   └── Repositories, Persistence (EF Core), Context
├── WebAPI/
│   └── Controllers, Middlewares, Authentication, Swagger
Tests/
    └── Unit tests using xUnit and FluentAssertions

🚀 How to Use


1. Clone the repository:
   git clone https://github.com/Net-Vanguard/fase-01.git
   cd fase-01

2. Run the API

3. Access Swagger

4. Create a user at endpoint /api/Users, exemple: 
   {
     "name": "Fulano",
     "email": "fulano@email.com",
     "password": "SenhaForte123!",
     "role": "0"
   }

   📌 role = 1 means regular user  
   📌 role = 0 means administrator

5. Log in using your user credentials at /api/Auth.

6. Copy the JWT token and click "Authorize" at the top of Swagger.
   Paste the token and authorize.

7. You can now access all protected API routes.


ContactRegionator Logo
FIAP Cloud Games (FCG)

Aplicativo desenvolvido como parte do Tech Challenge da Fase 1 — Pós-graduação FIAP em Arquitetura de Software .NET com Azure.

✨ Principais Características🧠 Requisitos Técnicos🏗️ Estrutura do Projeto (DDD)🚀 Como Usar


Notion

✨ Principais Características

  • Gerenciamento de Usuários: cadastro com nome, e-mail e senha segura
  • Autenticação & Autorização: JWT; papéis User (acesso à biblioteca) e Admin (gestão)
  • Catálogo de Jogos: CRUD de jogos digitais (título, descrição, preço)
  • Biblioteca de Usuário: compra e listagem de jogos adquiridos
  • Persistência de Dados: EF Core com migrations (opcional MongoDB/Dapper)
  • Documentação: Swagger UI para todos os endpoints
  • Tratamento de Erros & Logs: middleware global com logs estruturados
  • Testes Automatizados: xUnit; ao menos um módulo em TDD/BDD

🧠 Requisitos Técnicos

  • .NET 8
  • C# 12
  • ASP.NET Core Web API (Minimal API ou MVC Controllers)
  • Entity Framework Core (ou Dapper / MongoDB opcional)
  • Autenticação JWT
  • Swagger (Swashbuckle)
  • SQL Server ou PostgreSQL
  • xUnit + FluentAssertions
  • (Opcional) SpecFlow para cenários BDD

🏗️ Estrutura do Projeto (DDD)

Este projeto segue os princípios de Domain-Driven Design (DDD), com a seguinte estrutura:

src/
├── Application/
│   └── Serviços, DTOs, Interfaces
├── Domain/
│   └── Entidades, Enums, ValueObjects, Interfaces
├── Infrastructure/
│   └── Repositórios, Contexto EF Core, Persistência
├── WebAPI/
│   └── Controllers, Middlewares, Autenticação, Swagger
Tests/
    └── Testes unitários com xUnit e FluentAssertions

🚀 Como Usar

1. Clone o repositório:
   git clone https://github.com/Net-Vanguard/fase-01.git
   cd fase-01

2. Rode a API

3. Acesse o Swagger

4. Crie um usuário no endpoint /api/Users por exemplo:
   {
     "name": "Fulano",
     "email": "fulano@email.com",
     "password": "SenhaForte123!",
     "role": "0"
   }

   📌 role = 1 para Usuário comum  
   📌 role = 0 para Administrador

5. Faça login com seu usuário no endpoint /api/Auth.

6. Copie o token JWT retornado e clique em "Authorize" no topo do Swagger.
   Cole o token e confirme.

7. Agora você pode acessar todas as rotas protegidas da API.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •