🎮 PROJECT GAMEHOUSE
Projeto de vitrine e catálogo de jogos construído com Next.js, consumindo a API da RAWG para listar títulos, exibir detalhes e simular funcionalidades de loja como busca, filtro e carrinho.
REPOSITÓRIO OFICIAL OU PRÉVIA ONLINE
DESCRIÇÃO
O GameHouse foi pensado como uma experiência inspirada em lojas de jogos digitais. A página inicial exibe a listagem de jogos, com busca por nome e filtro por gênero. Cada card leva para uma página de detalhes, onde o usuário encontra informações resumidas do jogo, preço calculado dinamicamente, requisitos mínimos de PC e comentários simulados.
O projeto também inclui uma navegação superior com acesso ao perfil do usuário e ao carrinho, além de um drawer lateral para revisar os itens adicionados. A interface prioriza uma estética escura, com contraste forte, remetendo à Steam.
TECNOLOGIAS
- Next.js
- React 18
- TypeScript
- React Query
- Zustand
- Tailwind CSS
- Lucide React
- RAWG API
ARQUITETURA
O projeto segue uma arquitetura simples e separada por responsabilidade:
- pages: rotas principais da aplicação, incluindo home, detalhes do jogo e perfil do usuário.
- components: componentes reaproveitáveis, divididos em screens, ui/elements e ui/layout.
- services: camada de acesso à API externa, concentrando as requisições para a RAWG.
- store: estado global com Zustand para carrinho, busca, lista de jogos e controle do drawer.
- utils: funções auxiliares para cálculo de preço, extração de requisitos e filtros.
- types: contratos TypeScript para manter consistência entre telas, componentes e estado.
Fluxo principal:
- A home faz a consulta de jogos via React Query.
- Os dados recebidos são normalizados antes de entrarem no estado global.
- O usuário pode filtrar por gênero e buscar por nome usando o estado compartilhado.
- O card do jogo leva para a página de detalhes, que busca informações específicas pelo id.
- O carrinho é controlado globalmente e pode ser aberto de qualquer tela do layout.
DECISÕES DE DESIGN DE PROJETO
- Estado remoto e estado local foram separados: React Query cuida da sincronização com a API e Zustand concentra as interações do usuário.
- A UI usa um tema escuro consistente, com cores e contrastes semelhantes a de lojas de games já consolidadas no mercado.
- A lista e os detalhes são montados a partir de uma camada de normalização, reduzindo acoplamento com o formato bruto da API.
- O preço dos jogos é calculado no cliente com base na data de lançamento, o que ajuda a manter a experiência visual sem depender de backend próprio.
- Os requisitos mínimos de PC são extraídos de texto bruto da API e convertidos para uma apresentação mais legível.
- O perfil do usuário e os comentários são para fins demonstrativos, servindo como simulação básica de funcionalidades de comunidade.
CONSIDERAÇÕES FINAIS
O GameHouse é um projeto de front-end focado em catálogo, navegação e interação visual. Ele mostra uma base sólida para evoluir em direção a um e-commerce mais completo, caso seja necessário adicionar autenticação, persistência de carrinho, checkout real e paginação de resultados.
Para executar localmente, é necessário configurar a variável de ambiente NEXT_PUBLIC_RAWG_API_KEY com uma chave válida da RAWG API.
Comandos úteis:
npm install
npm run dev