Skip to content

XpGameFps/FutDash

Repository files navigation

FutDash

FutDash e um sistema PHP/MySQL para gestao de banca, apostas esportivas, relatorios, painel do usuario, painel administrativo, blog, assinaturas premium e pagamentos via Mercado Pago.

O projeto foi pensado para rodar em hospedagens tradicionais com Apache/PHP/MySQL, como cPanel, Hostinger, VPS ou XAMPP em ambiente local.

Indice

Funcionalidades

  • Cadastro, login, recuperacao de senha e verificacao de e-mail.
  • Painel do usuario com dashboard, bancas, apostas, relatorios e perfil.
  • Cadastro e controle de multiplas bancas.
  • Registro de apostas, resultados, odds, stake, mercado, esporte, liga e casa.
  • Relatorios de desempenho, ROI, lucro, drawdown, casas de aposta e curva de equity.
  • Controle de transacoes de banca.
  • Metas, estrategias, simuladores e ferramentas.
  • Planos Free/Premium/Admin.
  • Checkout premium via Mercado Pago.
  • Webhook para ativacao automatica de premium apos pagamento aprovado.
  • Cupons promocionais, incluindo cupons de desconto e dias VIP.
  • Painel administrativo para usuarios, pagamentos, planos, cupons, blog, banners, contatos, logs e alertas.
  • Blog com editor administrativo e upload de imagens.
  • Formulario de contato.
  • Paginas publicas, sitemap e suporte a idiomas pt-br e en.

Tecnologias

  • PHP
  • MySQL/MariaDB
  • Apache com .htaccess e mod_rewrite
  • HTML, CSS e JavaScript
  • PDO para conexao com banco
  • Mercado Pago para pagamentos
  • TinyMCE para edicao de blog

O projeto nao usa Composer atualmente.

Estrutura do projeto

FutDash/
  api/                    Endpoints internos, premium, cron e relatorios
  assets/                 CSS, JS, imagens, fontes e favicon
  Banco De Dados/         SQL consolidado de banco/migracoes
  docs/                   Documentacao tecnica e guias
  includes/               Classes e helpers compartilhados
  lang/                   Traducoes pt-br e en
  logs/                   Logs de runtime
  pages/                  Paginas publicas e config central
  painel/app/             Painel do usuario
  painel/admin/           Painel administrativo
  uploads/                Uploads gerados pelo sistema
  webhooks/               Webhooks legados/compatibilidade
  config.example.php      Modelo do arquivo privado de configuracao
  index.php               Pagina inicial
  README.md               Este arquivo

Requisitos

Recomendado:

  • PHP 8.0 ou superior.
  • MySQL ou MariaDB.
  • Apache com mod_rewrite.
  • HTTPS em producao.
  • Extensoes PHP:
    • pdo_mysql
    • curl
    • mbstring
    • gd
    • fileinfo
    • json
    • openssl
  • Funcao mail() configurada no servidor para envio de e-mails.

Instalacao local com XAMPP

  1. Coloque o projeto em:
C:\xampp\htdocs\FutDash
  1. Inicie Apache e MySQL no XAMPP.

  2. Crie um banco no phpMyAdmin.

  3. Importe o SQL disponivel em:

Banco De Dados/futdash_database.sql
  1. Crie o arquivo privado:
C:\xampp\htdocs\FutDash\futdash-config.php
  1. Configure o BASE_URL local:
define('BASE_URL', 'http://localhost/FutDash/');
  1. Acesse:
http://localhost/FutDash/

Instalacao em hospedagem

Em producao, envie os arquivos publicos do projeto para public_html e deixe o arquivo real de configuracao fora da pasta publica.

Exemplo recomendado:

/home/seu_usuario/
  config/
    futdash-config.php
  public_html/
    index.php
    pages/
    painel/
    api/
    includes/
    assets/
    uploads/
    .htaccess

O arquivo futdash-config.php nao deve ficar acessivel pela web.

Se usar outro caminho, defina:

FUTDASH_CONFIG_PATH=/caminho/seguro/futdash-config.php

Configuracao privada

Use config.example.php como modelo e crie um arquivo privado chamado:

futdash-config.php

Exemplo completo:

<?php

define('ENVIRONMENT', 'production');
define('APP_DEBUG', false);

define('BASE_URL', 'https://seu-dominio.com/');

define('DB_HOST', 'localhost');
define('DB_NAME', 'nome_do_banco');
define('DB_USER', 'usuario_do_banco');
define('DB_PASS', 'senha_do_banco');
define('DB_CHARSET', 'utf8mb4');

define('TOOL_COOKIE_SECRET', 'gere-uma-string-longa-e-aleatoria');
define('FUTDASH_CRON_TOKEN', 'gere-um-token-hexadecimal-com-64-caracteres');

define('SMTP_HOST', 'smtp.seu-provedor.com');
define('SMTP_PORT', 587);
define('SMTP_USER', 'usuario_smtp');
define('SMTP_PASS', 'senha_smtp');
define('SMTP_FROM_EMAIL', 'noreply@seu-dominio.com');
define('SMTP_FROM_NAME', 'FutDash');
define('SMTP_SECURE', 'tls');
define('SMTP_AUTH', true);
define('CONTACT_DESTINATION_EMAIL', 'contato@seu-dominio.com');

define('MERCADOPAGO_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN');
define('MERCADOPAGO_WEBHOOK_SECRET', 'SEU_WEBHOOK_SECRET');
define('MERCADOPAGO_WEBHOOK_TOKEN', 'UM_TOKEN_FORTE_PARA_URL_DO_WEBHOOK');
define('MERCADOPAGO_FORCE_SANDBOX', false);
define('MERCADOPAGO_SANDBOX_PAYER_EMAIL', '');

define('TINYMCE_API_KEY', 'no-api-key');

Em desenvolvimento local, voce pode usar:

define('ENVIRONMENT', 'development');
define('APP_DEBUG', true);

Em producao, use:

define('ENVIRONMENT', 'production');
define('APP_DEBUG', false);

Banco de dados

Os dados de conexao ficam no futdash-config.php:

define('DB_HOST', 'localhost');
define('DB_NAME', 'nome_do_banco');
define('DB_USER', 'usuario_do_banco');
define('DB_PASS', 'senha_do_banco');
define('DB_CHARSET', 'utf8mb4');

Arquivo responsavel pela conexao:

includes/Database.php

SQL disponivel no projeto:

Banco De Dados/futdash_database.sql

Observacao importante: o arquivo SQL do repositorio consolida atualizacoes/migracoes existentes. Para uma instalacao totalmente nova, confirme se voce possui o schema base completo do FutDash com tabelas como usuarios, banca, apostas, plans, payments, promotions, blog_posts e contact_messages.

Primeiro usuario admin

Depois de configurar o banco e criar um usuario pelo cadastro do site, transforme esse usuario em administrador:

UPDATE usuarios
SET tipo_conta = 'admin',
    email_verificado = 1,
    status = 'ativo'
WHERE email = 'seu-email@dominio.com';

Acessos principais:

/painel/app/index.php
/painel/admin/index.php

E-mail

As configuracoes ficam no futdash-config.php:

define('SMTP_FROM_EMAIL', 'noreply@seu-dominio.com');
define('SMTP_FROM_NAME', 'FutDash');
define('CONTACT_DESTINATION_EMAIL', 'contato@seu-dominio.com');

Arquivos relacionados:

includes/EmailService.php
includes/EmailTexts.php
pages/enviar-contato.php

Atencao: atualmente o envio usa a funcao nativa mail() do PHP. As constantes SMTP existem na configuracao, mas o projeto nao faz autenticacao SMTP direta sem adaptacao.

Pagamentos

O checkout premium usa Mercado Pago.

Configure no futdash-config.php:

define('MERCADOPAGO_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN');
define('MERCADOPAGO_WEBHOOK_SECRET', 'SEU_WEBHOOK_SECRET');
define('MERCADOPAGO_WEBHOOK_TOKEN', 'UM_TOKEN_FORTE_PARA_URL_DO_WEBHOOK');
define('MERCADOPAGO_FORCE_SANDBOX', false);
define('MERCADOPAGO_SANDBOX_PAYER_EMAIL', '');

Webhook recomendado:

https://seu-dominio.com/api/premium/webhook.php?token=UM_TOKEN_FORTE_PARA_URL_DO_WEBHOOK

Arquivos relacionados:

api/premium/checkout.php
api/premium/webhook.php
api/premium/payment-status.php
api/premium/payment-history.php
webhooks/mercadopago.php

Para testar em sandbox:

define('MERCADOPAGO_FORCE_SANDBOX', true);
define('MERCADOPAGO_SANDBOX_PAYER_EMAIL', 'comprador_teste@example.com');

Planos e cupons

Planos e cupons sao gerenciados no painel administrativo:

/painel/admin/configuracoes.php

Tabelas principais:

  • plans
  • payments
  • promotions
  • promotion_usages
  • payment_status_history

Tipos de cupom suportados:

  • percent: desconto percentual.
  • amount: desconto fixo.
  • vip_days: libera dias premium.

Rotinas cron

Configure um token forte:

define('FUTDASH_CRON_TOKEN', 'gere-um-token-hexadecimal-com-64-caracteres');

Rotinas disponiveis:

api/cron/expire-payments.php
api/cron/expire-premium.php
api/cron/process-account-deletions.php
api/cron/process-user-exports.php

Exemplo de cron via CLI:

*/5 * * * * /usr/bin/php /home/seu_usuario/public_html/api/cron/expire-payments.php >> /home/seu_usuario/futdash-cron.log 2>&1
0 * * * * /usr/bin/php /home/seu_usuario/public_html/api/cron/expire-premium.php >> /home/seu_usuario/futdash-cron.log 2>&1
*/10 * * * * /usr/bin/php /home/seu_usuario/public_html/api/cron/process-account-deletions.php 20 >> /home/seu_usuario/futdash-cron.log 2>&1
*/10 * * * * /usr/bin/php /home/seu_usuario/public_html/api/cron/process-user-exports.php 5 >> /home/seu_usuario/futdash-cron.log 2>&1

Se chamar por HTTP:

curl -fsS -H "X-Cron-Token: SEU_TOKEN" https://seu-dominio.com/api/cron/expire-payments.php

Trocar nome e marca

O projeto ainda nao possui uma constante central de nome da aplicacao. Para trocar FutDash por outra marca, busque no projeto:

rg -n "FutDash"

Pontos comuns:

  • lang/pt-br.php
  • lang/en.php
  • includes/header.php
  • includes/footer.php
  • includes/EmailService.php
  • includes/EmailTexts.php
  • painel/components/sidebar.php
  • painel/components/sidebar-admin.php
  • site.webmanifest
  • robots.txt
  • assets/img/
  • assets/favicon/

Seguranca

Boas praticas ja previstas no projeto:

  • configuracao sensivel fora do public_html;
  • .gitignore bloqueando configs privadas, logs e dumps;
  • PDO com prepared statements;
  • CSRF em rotas sensiveis;
  • CSP e headers de seguranca;
  • logs e alertas de sistema;
  • verificacao de permissao para areas admin;
  • token para cron via HTTP;
  • webhook de pagamento com token e/ou assinatura.

Arquivos que nao devem ir para o GitHub:

futdash-config.php
config/futdash-config.php
.env
logs/
uploads/cache/
uploads/exports/
uploads/avatars/
*.sql com dados reais
*.zip
*.rar
error_log

Documentacao completa

O guia detalhado de instalacao e operacao fica em:

docs/GUIA_DE_UTILIZACAO.md

Ele explica com mais detalhes:

  • onde colocar o futdash-config.php;
  • banco de dados;
  • Mercado Pago;
  • e-mail;
  • planos e cupons;
  • cron;
  • troca de marca;
  • uploads e logs;
  • checklist antes de publicar;
  • erros comuns.

Licenca

Este projeto esta licenciado sob a licenca MIT.

Isso permite que usuarios usem, copiem, modifiquem, distribuam e adaptem o projeto, inclusive em projetos proprios, desde que mantenham o aviso de copyright e a licenca.

Veja o arquivo LICENSE para mais detalhes.

About

Codigo do meu projeto site de gerenciamento de banca de futebol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors