Skip to content

Net-Vanguard/Fiap-Games

Repository files navigation

English version 🇺🇸

 

  FCG Logo  

  FIAP Cloud Games (FCG)  

A scalable digital games platform, developed throughout the Tech Challenges of the FIAP Postgraduate Program in .NET Software Architecture.

  ✨ Project Evolution •   🧠 Key Technologies & Concepts •   🚀 How to Use


✨ Project Evolution

This project was developed in three distinct phases, reflecting the evolution from a simple MVP to a complex, distributed, and cloud-native architecture.

Phase 1: Foundation and MVP (Monolith)

The initial goal was to build the core of the platform. We developed a monolithic API in .NET 8 that included essential functionalities such as user registration and authentication with JWT. We applied Domain-Driven Design (DDD) principles and created a solid foundation with unit tests to ensure software quality from the start.

Phase 2: Automation and Cloud Scalability

With the MVP validated, the focus shifted to operational efficiency and scalability. The monolithic application was containerized using Docker. We implemented CI/CD pipelines to automate the testing and deployment processes, publishing the application to a cloud environment (AWS/Azure). We also integrated a monitoring stack to ensure the platform's reliability and performance.

Phase 3: Microservices Architecture

In the final phase, we evolved the architecture to a microservices model to increase modularity and resilience. The monolith was decomposed into independent services (Users, Games, Payments). We implemented Elasticsearch for advanced game searches and adopted serverless functions for asynchronous processes, all managed through an API Gateway, resulting in a robust and modern distributed system.

🧠 Key Technologies & Concepts

  • Backend: .NET 8 (Minimal APIs / MVC)
  • Architecture: Monolith (Phases 1-2) ➔ Microservices (Phase 3), Domain-Driven Design (DDD), Event Sourcing
  • Data Persistence: Entity Framework Core, Elasticsearch
  • DevOps: Docker, CI/CD (GitHub Actions / Azure DevOps)
  • Cloud: AWS / Azure, Serverless (Lambda / Functions), API Gateway
  • Authentication: JWT (JSON Web Tokens)
  • Software Quality: Unit Tests (TDD / BDD)
  • Observability: Structured Logging, Distributed Tracing, Monitoring (Prometheus, Grafana, etc.)

🚀 How to Use

(Note: The final project structure is based on microservices. Each service is in its own repository and has specific setup instructions in its respective README.)

  1. Clone the repositories:    
    # Clone each microservice repository
    git clone [Link to User Microservice Repository]
    git clone [Link to Game Microservice Repository]
    git clone [Link to Payment Microservice Repository]
        
  2. Configure Environment Variables: Each microservice requires its own .env file. Refer to the .env.example in each repository to configure database connections, API keys, etc.
  3. Run the Infrastructure: Use docker-compose up -d to start necessary services like databases, Elasticsearch, and message queues.
  4. Run the Microservices: Navigate into each microservice's directory and run its start command (e.g., dotnet run).
  5. Access the Application: The services are exposed through the API Gateway. Use the Gateway's URL to interact with the complete application.

 

  FCG Logo  

  FIAP Cloud Games (FCG)  

Plataforma de jogos digitais escalável, desenvolvida ao longo dos Tech Challenges da Pós-graduação FIAP em Arquitetura de Software .NET.

  ✨ Evolução do Projeto •   🧠 Principais Tecnologias e Conceitos •   🚀 Como Usar


✨ Evolução do Projeto

Este projeto foi desenvolvido em três fases distintas, refletindo a evolução de um MVP simples para uma arquitetura complexa, distribuída e nativa da nuvem.

FASE 1: Fundação e MVP (Monolito)

O objetivo inicial foi construir o núcleo da plataforma. Desenvolvemos uma API monolítica em .NET 8 que contemplava funcionalidades essenciais como cadastro e autenticação de usuários com JWT. Aplicamos princípios de Domain-Driven Design (DDD) e criamos uma base sólida com testes unitários para garantir a qualidade do software desde o início.

FASE 2: Automação e Escalabilidade na Cloud

Com o MVP validado, o foco mudou para a eficiência operacional e escalabilidade. A aplicação monolítica foi conteinerizada com Docker. Implementamos pipelines de CI/CD para automatizar os processos de teste e deploy, publicando a aplicação em um ambiente na nuvem (AWS/Azure). Integramos também uma stack de monitoramento para garantir a confiabilidade e o desempenho da plataforma.

FASE 3: Arquitetura de Microsserviços

Na fase final, evoluímos a arquitetura para um modelo de microsserviços, visando aumentar a modularidade e a resiliência. O monolito foi decomposto em serviços independentes (Usuários, Jogos, Pagamentos). Implementamos o Elasticsearch para buscas avançadas de jogos e adotamos funções serverless para processos assíncronos, tudo gerenciado por um API Gateway, resultando em um sistema distribuído, robusto e moderno.

🧠 Principais Tecnologias e Conceitos

  • Backend: .NET 8 (Minimal APIs / MVC)
  • Arquitetura: Monolito (Fases 1-2) ➔ Microsserviços (Fase 3), Domain-Driven Design (DDD), Event Sourcing
  • Persistência de Dados: Entity Framework Core, Elasticsearch
  • DevOps: Docker, CI/CD (GitHub Actions / Azure DevOps)
  • Cloud: AWS / Azure, Serverless (Lambda / Functions), API Gateway
  • Autenticação: JWT (JSON Web Tokens)
  • Qualidade de Software: Testes Unitários (TDD / BDD)
  • Observabilidade: Logs Estruturados, Rastreamento Distribuído (Traces), Monitoramento (Prometheus, Grafana, etc.)

🚀 Como Usar

(Nota: A estrutura final do projeto é baseada em microsserviços. Cada serviço está em seu próprio repositório e possui instruções de setup específicas em seu respectivo README.)

  1. Clone os repositórios:    
    # Clone cada repositório dos microsserviços
    git clone [Link para o repositório do Microsserviço de Usuários]
    git clone [Link para o repositório do Microsserviço de Jogos]
    git clone [Link para o repositório do Microsserviço de Pagamentos]
        
  2. Configure as Variáveis de Ambiente: Cada microsserviço exige um arquivo .env próprio. Consulte o .env.example em cada repositório para configurar conexões de banco de dados, chaves de API, etc.
  3. Execute a Infraestrutura: Utilize docker-compose up -d para iniciar os serviços necessários como bancos de dados, Elasticsearch e filas de mensagens.
  4. Execute os Microsserviços: Navegue até o diretório de cada microsserviço e execute o seu comando de inicialização (ex: dotnet run).
  5. Acesse a Aplicação: Os serviços são expostos através do API Gateway. Utilize a URL do Gateway para interagir com a aplicação completa.

About

Repositorio destinado a games e promoções

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages