Eu construí um sistema de apostas esportivas com Python Django!

Gostaria de compartilhar que criei uma aplicação web com a principal finalidade de propiciar aos usuários uma boa experiência ao apostar em bolão de jogos de futebol.

Sabemos que a nação brasileira não fica parada quando o assunto é futebol!

Vim compartilhar meus principais obstáculos:

  1. Como corrigir as apostas para os usuários ao mesmo tempo?
  2. Como enviar emails para os usuários ao mesmo tempo?
  3. Como processsar pagamentos no brasil para este tipo de software em específico?
  4. Como funciona o marketing e divulgação para jogos deste tipo no brasil ?
  5. Existe regulamentação para que você aí também desenvolva um concorrente ?

Para começar, já vou avisando. Não tive nenhum apostador nos 13 primeiros dias em que a plataforma foi ao ar (dia 01/03). Infelizmente, ter um site no ar não significa que vai alcançar as pessoas certas.

Pensamentos sobre os obstáculos:

  1. Corrigir as apostas demanda, de início, pouco. Simplesmente a criação de um método de correção de apostas fez o serviço, mas pensando em escalabilidade, configurei um celery com redis como broker para "dar conta" do incrível volume de apostas que pode surgir na aplicação.
  2. Os emails também ficam por conta do celery, que é capaz de disparar diversos emails em fila.
  3. Este é meu maior problema atualmente, simplesmente não há gateways de pagamento no brasil que dão suporte à apostas esportivas (fica o questionamento sobre como esses concorrentes fazem aqui no brasil).
  4. Também disconheço. Confesso que foi um desafio codificar o WebApp em django, mas está sendo maior ainda divulgar um produto sem um gateway de pagamento confiável
  5. Boa pergunta, a contar pelos concorrentes, não acho que seja proibido, mas não sei também quanto à legalidade do produto em si, só sei que desenvolvi e deixo aberto agora para vocês irem apostar, mesmo que de graça, para testar o software.

O link para esta belezura de app é: https://brasabet.net

Ainda não há premiação para as rodadas, pois não temos nenhum participante... provavelmente pagaremos algum valor simbólico a partir do momento em que houver mais de um jogador.

Você é livre para apostar, basta escolher uma rodada, dar seu palpite e clicar em apostar (após ter feito um cadastro é claro).

Por fim, as regras de negócio (como pontuar cada aposta) que estão no site foram muito boas de se criar. Um pouco confuso de início, mas um esquema de nome bem assertivo de variáveis resolveu o problema.

Quem tiver dúvidas sobre como criar o seu próprio sistema de apostas, estou à disposição!

PS: Também aceito feedback sobre a plataforma em si

Ah, faltou o mais importante! Eu utilizei uma API que provê os resultados de jogos de diversos campeonatos. Definitivamente não iria conseguir sem ela.

Opa o site ta fora do ar... desistiu do projeto mano? Fiquei curioso! Estou trabalhando em uma ideia pra apostas esportivas também...

Bom dia,

Queria bater um papo com você sobre essa questão de jogos.

Se poder deixa seu contato aqui, ou fala comigo, nos seguintes meios de comunicação, por favor!

Discord: HEUDER SENA#6759 Whatsapp: 61993029884

Muito interessante amigo. Concordo que uma parte bem desafiadora é o marketing. Acredito que para você conseguir mais visibilidade vai ter que usar coisas como Google Ads e divulgação em redes sociais.

E eu já ouvi falar sobre Celery antes, mas nunca parei para analisar o assunto. Seu post me levantou a curiosidade, irei pesquisar a respeito. Mas de que se trata?

Seria interessante também, caso seu projeto seja open source, se você compartilhasse o link do repositório :)

Sobre a plataforma, realmente é perceptível que ainda está em desenvolvimento. Acredito que daria pra melhorar um pouco o design, adicionando algumas descrições nos ícones e ajustando o estilos.

Por exemplo, o botão de login no canto superior direito não pareceu combinar tanto, e os cards na tela de championchips quando passamos o mouse em cima aumentam e cobrem o texto logo abaixo. E vale a pena lembrar de que ficou faltando colocar um favicon.

É possível também que usando cache nas views possa evitar ter que bater no banco, fazer requisições para a api-futebol e carregar as mesmas páginas para diferentes usuários desnecessariamente.

Tirando isso está bem clean e direto ao ponto, e as regras de pontuação estão bem claras e descritivas.

E aproveitando que você desenvolveu essa aplicação com Django, não posso deixar de dizer que eu aprecio muito usar essa ferramenta, principalmente para desenvolver apis com Django Rest Framework. Inclusive cheguei a desenvolver uma biblioteca para esse ecosistema. (Acaba que só eu uso :laughing:, mas aceito feedbacks).

Parabéns meu amigo, continue assim. Um projeto nunca acaba 100%, sempre vamos estar atualizando e melhorando.

Uma última pergunta, por curiosidade, como foi feito o deploy desse projeto?

Opa, obrigado pelo feedback! Confesso que o design ainda está bem simples. Foquei em deixar funcional primeiro e ignorei completamente usabilidade exceto por ter usado algumas media queries no css para deixar o projeto minimamente responsivo. Confesso que tenho que pensar no quesito cache. No plano gratuíto, a API futebol permite apenas 100 requisições ao dia por IP. Tudo que é servido na página é resultado direto do que está no banco de dados, então o cache seria mais para diminuir as requisições nas páginas onde o usuário final navega, e não no conteúdo da API-FUTEBOL em si. Sobre o celery, pode-se dizer que é um sistema de Task Queue, ou fila de tarefas. Ele é composto por um worker e um broker, mas não limitado a um de cada apenas. Para dar início a uma tarefa, o celery que se comunica por mensagens, utiliza o broker para entregar uma mensagem ao worker. O worker então é responsável por fazer o processamento/tarefa e devolver ao sistema de mensageria o resultado. Exemplo: Sistema de relatórios. Quando usar: tarefa altamente consumidora de tempo e recurso, que não pode ser gerada em foreground, fazendo com que a requisição morra antes de devolver o resultado esperado. Veja as [docs](https://docs.celeryq.dev/en/stable/getting-started/introduction.html) para mais detalhes Quanto ao google ads, não sei se a política deles é condizente com apostas esportivas... Sou um fã de DRF também, suspeito para falar... Gosto da maneira de como os serializadores funcionam. Vou acompanhar no github e quem sabe, num próximo projeto, eu passe a utilizar sua extensão O deploy foi feito na vps Amazon lightsail, não pude encontrar lugar melhor para deployar, afinal tem a questão do deploy do celery daemonizado com supervisor (que ainda não deployei por questão de tempo), do beat (agendador de tarefas do celery) e flower (monitor de tarefas do celery) O projeto será aberto em breve, por conta que não consigo dar manutenção sozinho. infelizmente (ou felizmente) sou uma pessoa só.
Ah sim, muito jóia. Então com o Celery eu posso deixar ele trabalhando em uma tarefa mais pesada e que levaria mais tempo, sem travar o servidor. Gostei :smile:, realmente o caso de mandar email é excelente usar isso. E assim, você não está fazendo nada fora da lei 🤷 então acho que não teria problema com o google. Mas enfim, é só questão de checar lá. Sobre o deploy, maneiro, ainda não cheguei a fazer nenhum deploy com serviços da Amazon. O único serviço que já usei foi o _s3_. Parece bem legal isso aí. Desejo tudo de bom para seu projeto!

Já tem o meu respeito por usar Celery e Django kkkkk Achei muito legal a ideia do APP, e essa API que você usou pode me servir algum dia para os projetos que eu faço (eu tenho ideia a todo momento, só faço as melhores kkkk)

Uma pergunta, você hospeda o servidor RabbitMQ (ou Redis) que o Celery consome onde? em alguma cloud ou você comprou algo como uma VPS para dar conta do recado ?

Na VPS da própria aplicação django mesmo. Instalei o celery e o redis local por conta de custo (no próprio lightsail da AWS). Assim, não sei se é a melhor prática, mas a grana também é curta para ficar contratando vários serviços separados.