---
title: "GamesUP - Plataforma E-Commerce de Jogos de Tabuleiro com Recomendacoes ML"
description: "API backend completa para uma plataforma e-commerce de jogos de tabuleiro com motor de recomendacao KNN, seguranca JWT e 81% de cobertura de testes - construida com Spring Boot 3, Python FastAPI e Docker."
locale: "pt"
canonical: "https://portfolio.josedacosta.info/pt/realizacoes/gamesup-plateforme-ecommerce-ml"
source: "https://portfolio.josedacosta.info/pt/realizacoes/gamesup-plateforme-ecommerce-ml.md"
html_source: "https://portfolio.josedacosta.info/pt/realizacoes/gamesup-plateforme-ecommerce-ml"
author: "José DA COSTA"
date: "2024"
type: "achievement"
slug: "gamesup-plateforme-ecommerce-ml"
tags: ["Java 17", "Spring Boot 3.3.4", "Spring Security 6", "JWT", "JPA/Hibernate", "MySQL 8.0", "Python 3.11", "FastAPI", "scikit-learn", "Docker Compose", "JUnit 5", "Mockito", "JaCoCo"]
generated_at: "2026-04-23T15:46:40.486Z"
---

# GamesUP - Plataforma E-Commerce de Jogos de Tabuleiro com Recomendacoes ML

API backend completa para uma plataforma e-commerce de jogos de tabuleiro com motor de recomendacao KNN, seguranca JWT e 81% de cobertura de testes - construida com Spring Boot 3, Python FastAPI e Docker.

**Date:** Setembro 2024 - Janeiro 2025  
**Duration:** ~8 semanas de desenvolvimento ativo  
**Role:** Lead Tecnico & Desenvolvedor Solo (Assistido por IA)  
**Technologies:** Java 17, Spring Boot 3.3.4, Spring Security 6, JWT, JPA/Hibernate, MySQL 8.0, Python 3.11, FastAPI, scikit-learn, Docker Compose, JUnit 5, Mockito, JaCoCo

### Key Metrics

- Linhas de codigo: **-** - Java + Python
- Testes automatizados: **-** - 273 unitarios + 91 integracao
- Cobertura de codigo: **-** - JaCoCo (97% nos servicos)
- Endpoints API: **-** - Endpoints REST em 11 controllers

## Apresentacao

_Definicao e escopo do projeto_

### Domain

E-commerce especializado em jogos de tabuleiro - gestao de catalogo, pedidos, recomendacoes, avaliacoes de usuarios

### Target Users

Compradores de jogos de tabuleiro (B2C) e administradores da plataforma. Frontend (Angular) planejado mas nao incluido nesta fase (entrega somente backend).

**Content:** **GamesUP** e uma API backend para uma plataforma e-commerce de jogos de tabuleiro que integra um **sistema de recomendacao por aprendizado de maquina** baseado no algoritmo K-Nearest Neighbors (KNN). O projeto foi realizado como estudo de caso profissional para uma certificacao de nivel 7 (Expert em Engenharia de Software) concedida pela ESIEA atraves da Visiplus Digital Learning.

A plataforma cobre o ciclo completo de e-commerce: gestao de catalogo de produtos, pedidos multi-linhas com gestao de estoque, autenticacao JWT com controle de acesso baseado em papeis, recomendacoes personalizadas, avaliacoes e classificacoes, e listas de desejos.

Um codigo pre-existente deixado por um estagiario foi avaliado e considerado abaixo dos padroes profissionais. A decisao foi **reconstruir todo o backend do zero**, aplicando rigorosamente os principios SOLID, arquitetura em camadas e testes abrangentes.

**Domain:** Dominio

**Target Users:** Usuarios alvo

**Functional Scope:** Escopo funcional

**Scope Catalog:** Catalogo de produtos (CRUD)

**Scope Orders:** Pedidos multi-linhas & estoque

**Scope Auth:** Autenticacao JWT & RBAC

**Scope M L:** Recomendacoes ML (KNN)

**Scope Reviews:** Avaliacoes & classificacoes

**Scope Wishlist:** Gestao de wishlists

**Scope Search:** Busca multi-criterios

**Scope Docker:** Orquestracao Docker

## Objetivos, Contexto, Desafios & Riscos

_Visao estrategica e restricoes_

### Context

O projeto nasceu de uma exigencia de certificacao profissional (ESIEA Nivel 7, Bloco 4 - Concepcao avancada de arquitetura de software). O backend existente gerava bugs recorrentes que impactavam a receita e a experiencia do usuario. Um estagiario havia sido encarregado de criar uma nova API Spring Boot, mas o codigo nao atendia aos padroes de qualidade.

José DA COSTA assumiu o projeto com a missao de **reconstruir completamente o backend** em uma solucao profissional, funcional e escalavel. O projeto foi realizado individualmente ao longo de aproximadamente 8 semanas, com desenvolvimento assistido por IA (Claude Code) para implementacao sob a direcao tecnica e decisoes de arquitetura de José.

### Stake Quality

Demonstrar dominio de concepcao avancada de software (SOLID, design patterns, arquitetura em camadas) atraves de uma aplicacao concreta

### Stake Innovation

Integrar um sistema de recomendacao ML (KNN) em uma arquitetura e-commerce classica via comunicacao inter-API

### Stake Certification

Validar 4 competencias do Bloco 4 do titulo RNCP Expert em Engenharia de Software (C.14, C.16, C.17, C.18)

- Reconstruir a API Spring Boot com arquitetura em camadas e principios SOLID
- Implementar Spring Security 6 com autenticacao JWT e gestao de papeis (ADMIN, CLIENT)
- Desenvolver um sistema de recomendacao KNN via microsservico Python FastAPI
- Atingir minimo 70% de cobertura de testes com JaCoCo, JUnit 5 e Mockito
- Produzir documentacao UML completa (diagramas de classes, componentes, sequencia, arquitetura)

**Objectives:** Objetivos

**Context:** Contexto

**Stakes:** Desafios

**Stake Quality:** Qualidade arquitetural

**Stake Innovation:** Inovacao tecnica

**Stake Certification:** Certificacao profissional

**Risks:** Riscos identificados

**Risk1 Title:** Codigo do estagiario inutilizavel

**Risk1 Desc:** O codigo existente nao atendia aos padroes de qualidade, exigindo uma reconstrucao completa.

**Risk2 Title:** Modelo ML nao treinavel

**Risk2 Desc:** Dados de producao insuficientes para treinamento KNN. Mitigacao: modo demo funcional com arquitetura pronta para treinamento futuro.

**Risk3 Title:** Falhas de seguranca JWT

**Risk3 Desc:** Uma implementacao JWT incorreta poderia expor a aplicacao. Mitigacao: implementacao rigorosa de Spring Security 6 + HMAC-SHA256.

**Risk4 Title:** Cobertura de testes < 70%

**Risk4 Desc:** Estrategia de teste sistematica necessaria para superar o limite JaCoCo de 70% por pacote.

**Risk5 Title:** Complexidade inter-API

**Risk5 Desc:** A comunicacao Java-Python via RestTemplate exigiu healthchecks e orquestracao Docker Compose.

## As etapas - O que eu fiz

_Fases cronologicas e contribuicoes pessoais_

- Fase 1 - Arquitetura & UML
- Fase 2 - Fundamentos JPA
- Fase 3 - Camada Service com SOLID
- Fase 4 - Seguranca & JWT
- Fase 5 - Controllers REST & DTOs
- Fase 6 - Sistema de recomendacao ML
- Fase 7 - Testes & Qualidade

**Phase1 Period:** Semanas 1-2

**Phase2 Period:** Semanas 2-3

**Phase3 Period:** Semanas 4-5

**Phase4 Period:** Semanas 5-6

**Phase5 Period:** Semana 6

**Phase6 Period:** Semana 7

**Phase7 Period:** Semana 8

## Os atores - As interacoes

_Colaboracao e partes interessadas_

### Work Method

O projeto ilustra um modo de trabalho **"desenvolvedor aumentado por IA"**: José desempenhou o papel de CTO/diretor de projeto definindo objetivos, tomando decisoes de arquitetura, identificando problemas e validando entregaveis. Claude Code desempenhou o papel de desenvolvedor executor, realizando toda a implementacao tecnica sob a direcao de José. Esta abordagem e coerente com a evolucao da profissao de desenvolvedor na era da IA generativa.

**Content:** Este foi um **projeto individual** realizado com desenvolvimento assistido por IA. José DA COSTA atuou como **Lead Tecnico e Diretor de Projeto**, responsavel por todas as decisoes de arquitetura, revisoes de qualidade, analise de requisitos e validacao do entregavel final.

**Claude Code (IA)** serviu como parceiro de implementacao, executando codigo sob a direcao de José com base em aproximadamente 100 prompts rastreados em 3 arquivos documentados. José identificou problemas (problemas de codificacao no PHPMyAdmin, inconsistencias na documentacao), tomou decisoes organizacionais (renomeacao de pastas, convencoes de estrutura de arquivos) e produziu o documento Word final para submissao a certificacao.

O codigo original do estagiario foi avaliado e inteiramente substituido - nenhum elemento do entregavel final contem codigo da tentativa inicial. A contribuicao do estagiario limita-se ao cenario pedagogico que justifica a reconstrucao.

**Team Composition:** Composicao da equipe

**Team Jose:** José DA COSTA - Direcao tecnica, pilotagem, revisao de qualidade, decisoes de arquitetura, testes manuais, redacao do documento final

**Team A I:** Claude Code (IA) - Implementacao do codigo, testes, documentacao, diagramas, configuracao Docker

**Team Intern:** Estagiario (anonimo) - Desenvolvedor inicial (codigo inteiramente reconstruido)

**Stakeholders:** Partes interessadas externas

**Stakeholder Training:** Visiplus Digital Learning - Organizacao de formacao

**Stakeholder Certification:** ESIEA - Instituicao certificadora (Nivel 7 - Expert em Engenharia de Software)

**Stakeholder Block:** Bloco 4 - Concepcao avancada de arquitetura de software

**Work Method:** Metodo de trabalho

## Os resultados - Para mim, para o projeto

_Resultados mensuraveis e impacto_

**For Project:** Para o projeto

**For Me:** Para mim

## Os desdobramentos do projeto

_O que aconteceu apos a entrega_

**Content:** **Entrega imediata:** O projeto foi submetido como estudo de caso profissional completo (PDF, 20+ paginas) para a certificacao ESIEA Nivel 7, Bloco 4 - Concepcao avancada de arquitetura de software. O entregavel incluiu o codigo-fonte completo, configuracao Docker, diagramas UML, relatorios de cobertura de testes e um documento de reflexao critica.

**Estado atual:** O backend e funcional e implantavel via Docker Compose. O modelo ML opera em modo demo (algoritmo KNN implementado mas nao treinado com dados de producao). O frontend Angular mencionado na arquitetura permanece nao construido, limitando a demonstrabilidade do produto final a testes no nivel da API.

**Perspectiva a longo prazo:** As decisoes de arquitetura (SOLID, design em camadas, servicos baseados em interfaces) provaram seu valor em termos de testabilidade (81% de cobertura) e extensibilidade. O sistema de recomendacao foi projetado com um caminho de evolucao progressiva: V1 (filtragem colaborativa Java) -> V2 (KNN Python, pronto mas nao treinado) -> V3 (Deep Learning, futuro). A interface RecommendationService permite trocar implementacoes sem modificar o restante do codigo.

**Repositorio:** O codigo-fonte e mantido em um repositorio GitHub privado com um mirror publico no GitFront para avaliacao.

## Meu olhar critico

_Analise retrospectiva honesta_

### Strength

- [object Object]
- [object Object]
- [object Object]
- [object Object]

### Improvement

- [object Object]
- [object Object]
- [object Object]
- [object Object]
- [object Object]

### Would Do

- Adotar TDD (Test-Driven Development) - os testes foram escritos apos o codigo na Fase 8, perdendo feedback de design precoce
- Integrar seguranca desde a Fase 2 em vez da Fase 5, evitando problemas de configuracao de testes com Spring Security
- Escrever user stories formais com criterios de aceitacao antes da implementacao
- Usar MapStruct em vez de mappers manuais para reduzir boilerplate
- Adicionar documentacao Swagger/OpenAPI para exploracao interativa da API

### Lesson

- Os principios SOLID nao sao teoricos - sua aplicacao concreta melhora consideravelmente a qualidade, testabilidade e extensibilidade do codigo
- Documentacao continua e mais eficaz que documentacao no final do projeto - escrever ao longo do caminho produz melhor qualidade
- Testes permitem evolucao segura - com 81% de cobertura, refatoracao se torna mais segura
- Seguranca deve ser projetada desde o inicio - adiciona-la depois cria problemas de integracao (ilustrado pelas falhas nos testes de controllers)
- Um sistema de recomendacao ML pode ser integrado progressivamente - o padrao interface permite comecar simples e evoluir sem refatoracao major

**Strengths:** O que funcionou bem

**Improvements:** O que poderia ser melhorado

**Would Do Differently:** O que eu faria diferente

**Lessons:** Licoes duradouras
