Executando verificação de segurança...
19

Pitch: Conheça o site Jogos em promoções.

Fala, galera! A postagem de hoje vai ser um pouco mais longa, pois vou contextualizar a ideia e apresentar o roadmap do que será feito. Se você prefere ir direto ao ponto, acesse o link do site: Jogos em Promoções.

O que é Jogos em promoções?

jogos em promoções
Sempre gostei de jogos, mas encontrar promoções pode ser uma tarefa complicada, especialmente se você possui mais de um console. Isso exige visitar vários sites. Por isso, resolvi centralizar todas as promoções das principais lojas digitais em um único lugar. Dessa forma, basta selecionar a loja desejada e, no mesmo site, você verá as promoções disponíveis.

Atualmente, o site conta com poucos recursos, mas, conforme mostrado no roadmap, o projeto é ambicioso. No momento, temos:

  1. Lista promoções da Steam
  2. Lista promoções da Epic Games
  3. Lista promoções da GOG
  4. Sempre que houver um novo jogo em promoção aparece uma mensagem informando que existem novas promoções naquela loja.
  5. Permite se inscrever para receber e-mails com novidades.

Para quem quer saber um pouco da parte técnica.

Dependendo de onde você estiver lendo isso, você deve ser um dev ou futuro dev, então talvez essa parte te interesse.

Linguagem de programação:

Sou programador C# Há mais de 7 anos, porém sou curioso e brinco com diversas linguagens. Sempre fugi do PHP, porém para esse projeto acabei escolhendo PHP pelos seguintes motivos:

  1. Quero aprender PHP
  2. Estou querendo pegar alguns uns trabalhos freelancer e percebi que boa parte é PHP
  3. Hospedar um site em PHP vai ser mais barato do que dot.net (pelo menos de inicio).

Hospedagem

A API e o Front-end estão em uma hospedagem emprestada por enquanto. Devo adicionar no site algum tipo de analytics para ter ideia dos acessos e conforme for aumentando devo migrar para um servidor próprio.

Como está sendo feito a aplicação.

A aplicação está sendo feita de forma mais simples possível:

  1. Quando selecionado no front qual loja deseja ver as promoções, ele aciona a API para fazer o scrapping dos dados dos jogos na loja informada.

  2. Para fazer o scrapping estou usando CURL para request, o DOMDocument para ler o html e o DOMXpath para pegar os elementos que preciso.

  3. Cada loja tem sua própria classe, pois caso eu precise fazer alterações ou fazer algo específico para loja, os códigos estão bem separados.

  4. Para não ser barrada nas loja (devido a diversas requisições), a primeira request para cada loja gera um cache com validade de 2 Horas, com isso os demais usuários que acessarem a pagina pega os dados do cache e não direto da loja.

  5. No momento estou usando cache em arquivo, pois é algo simples, porém como separei o projeto em camadas, basta eu alterar o repositório do cache que posso migrar para um redis, Memcached, etc.

  6. Como ainda não existe login no sistema, foi adicionado uma pequena validação no front (vulgo gambiarra). Eu pego 3 jogos na tela inicial de cada loja e salvo no localstorage. Depois comparo esse dado com o retorno atual da API. Se os dados forem diferentes, eu mostro uma label dizendo que existem novos jogos em promoções disponíveis.

Esse é um pequeno resumo de como está o projeto atual. Não devo liberar o código de forma pública, pois se tudo der certo pretendo monetizar de alguma forma esse site. Mas caso tenham alguma dúvida, fico à disposição para ajudá-los.

Próximas etapas.

Há muitas coisas que desejo realizar com este site. Embora não saiba se conseguirei fazer tudo ou se desistirei no meio do caminho devido ao grande volume de trabalho, aqui está o que já planejei. Em teoria, está na ordem de implementação, mas pode ser alterado a qualquer momento.

  1. Adicionar a loja do XBOX
  2. Adicionar a loja do Playstation
  3. Adicionar a loja da Nintendo (aqui sempre pode ocorrer um PROCESSO e eu parar na cadeia kkkkk)
  4. Adicionar a loja da ubisoft.

Em teoria, aqui concluo a primeira fase de adição das lojas. Posteriormente, pretendo adicionar lojas "clandestinas", que vendem keys. Inicialmente, incluirei apenas as lojas nas quais já comprei Key. No entanto, essa parte ficará para depois. Continuando as tarefas programadas:

  1. Com as lojas adicionadas, devo adicionar um botão no card de cada jogo chamado: Comparar Preços.
    Nesse momento será aberta uma tela do jogo selecionado listando o preço que ele está custando em todas as lojas. Ordenado do menor para o maior.

  2. Depois adicionar o botão PESQUISAR, no qual será feito a pesquisa do jogo informado em diversas lojas (independente de estar ou não em promoção), ordenando do mais barato ao mais caro.

  3. Criar uma tela de cadastro para que seja possível o usuário se cadastrar no site.

  4. Criar opção nos cards para que seja possível os usuários cadastrados salvarem os jogos na lista de favoritos.

  5. Criar a tela para o usuário visualizar sua lista de favoritos. Além da tela de detalhes de um jogo na qual mostrará os valores do mesmo em cada loja.

  6. Criar opção de notificação por e-mail quando um jogo atingir o preço configurado pelo usuário.

Em teoria, com isso eu terminaria todas as funcionalidades que tenho em mente no momento.

Conclusão.

Este projeto está sendo muito divertido de realizar, pois combina duas coisas que adoro: programar e videogames. Eu GARANTO que vou terminar a etapa de adicionar todas as lojas oficiais.

Quanto a concluir o projeto inteiro, vou me esforçar, mas não posso garantir. Às vezes, dá mais vontade de jogar do que de codar, rsrs.

E aí, o que acharam? Gostaram? Tem alguma sugestão?

acesse o link do site: Jogos em Promoções.

Carregando publicação patrocinada...
2

Achei interessante você compartilhar a parte técnica do projeto, é sempre bom ver como as coisas funcionam por trás dos panos. Continue com o trabalho e boa sorte na implementação das próximas etapas.

1

O mais legal da programação é que geralmente tem N formas de fazer, e compartilhar com o pessoal pode ajudar a outras pessoas criarem algo.

2

Muito interessante o projeto, alguns sites que já o fazem são o https://gg.deals/ e a extensão augmentsteam, que se não me engano usa o https://isthereanydeal.com/.

Mas ambos são internacionais e normalmente pecam no quesito preço em real, vale se basear em alguns recursos do site, em especial um histórico preço mais assertivo, pois o do isthereanydeal é horrendo de mais kk.

No mais boa sorte na jornada, não existem muitas alternativas disso no BR, e nota-se que o valor agregado dai vai gerar muitos frutos, então não desista.

1

Valeu, tudo começou com esse primeiro site que fiz https://comparadorjogos.netlify.app/.

Começei ele como teste e gostei dos resultados, ele está bem feio e uso apenas para mim (não o divulgo). Fiz ele antes de conhecer o gg.deals.

Agora como pretendo divulgar o site, tinha que criar algo mais atrativo e alguns recursos que estou pensando em implementar vem do gg.deals (principalmente a questão do alerta de preço).

Agora em relação a disistir, creio que não irei porém devo demorar na conclusão pois não quero fazer desse projeto uma "obrigação", quero ir desenvolvendo aos poucos quando tiver tempo livre e mesclando com jogar, pois não adianta eu fazer um site que monitora jogos para ver os valores melhores e no fim das contas não jogar kkkkk.

Vlw pelo feedback.

1
1

Opa obrigado.
Eu vi a primeira vez php antes do php 5, acho que por isso não curtia.

Já o PHP > 8 está bem legal de usar, vamos em frente.

1

Que projeto massa, esse scrabi acredito ser a parte mais chata, se por algum acaso eles mudarem as classes as tags etc ..., nada que uma IA no meio nao consigo resolver esse problema eu acho sksksks, mas top demais, sucesso !!

1
1

nao de pegar as clases, mas sim de leer a dom e identificar o texto que voce quer adquirir o scrab, meio que a IA vai fazer o papel de validar o que você teria que fazer antes da execução do script, claro temos alguns serviços de scrabi que usam IA para terem ainda mais dessa precisao na busca.

0