Download the PHP package sierratecnologia/gamer without Composer
On this page you can find all versions of the php package sierratecnologia/gamer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sierratecnologia/gamer
More information about sierratecnologia/gamer
Files in sierratecnologia/gamer
Package gamer
Short Description Game
License MIT
Homepage https://sierratecnologia.com/packages/gamer/
Informations about the package gamer
SierraTecnologia Gamer
SierraTecnologia Gamer Various functionality, and basic controller included out-of-the-box.
[x] Point Transaction system for laravel X
📚 Índice
- Introdução
- Instalação
- Arquitetura e Estrutura Interna
- Principais Funcionalidades
- Uso Prático
- Integração com o Ecossistema SierraTecnologia
- Extensão e Customização
- Exemplos Reais
- Configuração de Ferramentas de Qualidade
- Guia de Contribuição
🎮 Introdução
O que é o Gamer?
Gamer é um módulo de gamificação completo e extensível para aplicações Laravel, desenvolvido pela SierraTecnologia / Rica Soluções. O pacote oferece um sistema robusto de pontuação, conquistas, competições, badges e progressão de usuários, permitindo aumentar o engajamento e a retenção de usuários em plataformas web e APIs.
Objetivo e Motivação
O projeto nasceu da necessidade de criar experiências interativas e engajadoras em plataformas corporativas, educacionais e de e-commerce. Com o Gamer, é possível:
- Incentivar comportamentos desejados através de sistemas de recompensa
- Aumentar a retenção e engajamento de usuários
- Criar competições saudáveis entre usuários ou equipes
- Medir e rastrear progressão através de métricas de gamificação
- Personalizar experiências baseadas em conquistas e níveis
Contexto no Ecossistema SierraTecnologia
O Gamer faz parte do ecossistema modular da SierraTecnologia / Rica Soluções, integrando-se nativamente com outros módulos como:
- Informate - Sistema de notificações e comunicação
- Market - Plataforma de e-commerce
- CMS - Sistema de gerenciamento de conteúdo
- Tracking - Rastreamento e analytics
- Finder - Sistema de busca e descoberta
Benefícios para Plataformas de Engajamento
- ✅ Sistema de pontuação flexível com suporte a múltiplos tipos de pontos
- ✅ Histórico completo de transações com rastreabilidade total
- ✅ Event-driven architecture utilizando Spatie Event Sourcing
- ✅ Observers automáticos para eventos de Eloquent e autenticação
- ✅ Dashboard administrativo completo com interface AdminLTE
- ✅ APIs RESTful para integração com aplicações frontend
- ✅ Sistema de competições com times e jogadores
- ✅ Extensível e customizável através de traits, contratos e eventos
📦 Instalação
Requisitos Mínimos
- PHP:
>= 7.4(recomendado>= 8.2) - Laravel:
^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 - Composer:
^2.0 - Banco de Dados: MySQL
>= 5.7, PostgreSQL>= 9.6ou SQLite>= 3.8
Dependências Principais
sierratecnologia/audit- Sistema de auditoriasierratecnologia/pedreiro- Componentes basesierratecnologia/muleta- Utilitários e helpersspatie/laravel-event-sourcing- Event Sourcinglorisleiva/laravel-actions- Actions pattern
Instalação via Composer
Publicação de Configurações e Migrations
Após a instalação, publique os arquivos de configuração e execute as migrations:
Publicação de Assets e Views (Opcional)
Registro de Service Provider
O Service Provider é registrado automaticamente através do Laravel Auto-Discovery. Caso necessário, adicione manualmente em config/app.php:
Configuração do Arquivo .env
Para integração com serviços externos, adicione ao .env:
🏗️ Arquitetura e Estrutura Interna
Estrutura de Diretórios
Componentes Centrais
1. Sistema de Pontos e Transações
Transaction(Model): Representa uma transação de pontos, armazenando quantidade, mensagem, saldo atual e relacionamento polimórfico com a entidade pontuável.Point(Model): Representa tipos de pontos (ex: XP, moedas, estrelas).PointType(Model): Define categorias de pontos com regras específicas.
2. Trait Pointable
Funcionalidades:
- Relacionamento polimórfico com
TransactionePoint - Cálculo automático de saldo atual
- Histórico completo de transações
- Suporte a metadados customizados
3. Sistema de Competições
Competition(Model): Gerencia competições/desafiosTeam(Model): Gerencia equipesPlayer(Model): Gerencia jogadoresCompetitionPlayer(Model): Relacionamento entre competições e jogadores
4. Sistema de Scores e Séries
ScoreSerie(Model): Gerencia séries de pontuaçãoScoreSeriePointType(Model): Relacionamento entre séries e tipos de pontos
5. Sistema de Eventos
GamerEvent(Model): Gerencia eventos de gamificaçãoEventPointable(Processing): Processa eventos e atribui pontos
6. Observers
ModelCallbacks: Observa todos os eventos Eloquent (created,updated,deleted)LoginObserver: Observa eventos de login para atribuir pontos automaticamente
Padrões Arquiteturais
Event-Driven Architecture
O Gamer utiliza Spatie Event Sourcing para rastreamento completo de eventos:
Repository Pattern
Exemplo de Repository:
Service Layer
Comunicação entre Camadas
Integração com Eloquent
O sistema utiliza relacionamentos polimórficos para máxima flexibilidade:
🚀 Principais Funcionalidades
1. Sistema de Pontuação e Níveis
Adicionar Pontos
Consultar Saldo Atual
Histórico de Transações
2. Sistema de Conquistas e Badges
(Em desenvolvimento - estrutura preparada em migrations)
3. Eventos Automáticos de Gamificação
O sistema observa automaticamente eventos do Laravel:
Eventos de Autenticação
Eventos de Eloquent
4. Sistema de Competições
5. Dashboard e APIs de Ranking
Controllers Disponíveis
-
User Controllers (
src/Http/Controllers/User/):HomeController- Dashboard do usuário
-
Painel Controllers (
src/Http/Controllers/Painel/):ObjectiveController- Gerenciar objetivosMetaController- Gerenciar metas
- RiCa Controllers (
src/Http/Controllers/RiCa/):PointController- CRUD de pontosPointTypeController- CRUD de tipos de pontosTransactionController- Histórico de transaçõesCompetitionController- Gerenciar competiçõesPlayerController- Gerenciar jogadoresTeamController- Gerenciar timesScoreSerieController- Gerenciar séries de scoreGamerEventController- Gerenciar eventos
Rotas Disponíveis
6. Exemplo Prático de Fluxo Completo
💻 Uso Prático
Como Implementar o Sistema de Pontos em um Projeto Laravel
Passo 1: Implementar o Contrato e Trait
Passo 2: Criar Eventos de Gamificação
Passo 3: Registrar Listeners
Como Criar Badges e Conquistas Personalizadas
Estrutura de Badge (em desenvolvimento)
Como Conectar o Gamer a Eventos e Listeners Existentes
Usando Observers
Usando Event Subscribers
Boas Práticas de Integração
-
Separe a lógica de pontuação
- Use Listeners/Subscribers para manter controllers limpos
- Centralize regras de negócio em Services
-
Documente regras de pontuação
-
Use transações de banco de dados
- Valide dados antes de atribuir pontos
🔗 Integração com o Ecossistema SierraTecnologia
Módulos do Ecossistema
O Gamer integra-se nativamente com:
1. Tracking (sierratecnologia/tracking)
- Rastreamento de ações do usuário
- Analytics de progressão
- Métricas de engajamento
2. Finder (sierratecnologia/finder)
- Busca avançada de pontos e transações
- Indexação Elasticsearch para rankings
- Pesquisa full-text de conquistas
3. Informate (Notificações)
- Notificações de novas conquistas
- Alertas de mudança de nível
- Resumos de progresso
4. Market (E-commerce)
- Pontos por compras
- Sistema de cashback em pontos
- Loja de recompensas
5. Audit (Auditoria)
- Rastreamento completo de mudanças em pontos
- Logs de transações suspeitas
- Histórico de correções
Padrões Compartilhados
Event Sourcing com Spatie
Base Models (Pedreiro)
Padrões de CI/CD
Todos os módulos SierraTecnologia seguem:
- PSR-12 para estilo de código
- PHPUnit para testes
- PHPStan nível 8 para análise estática
- Psalm para verificação de tipos
- GitHub Actions para CI/CD
Versionamento Semântico
O Gamer segue Semantic Versioning 2.0.0:
- MAJOR (0.x.0): Breaking changes
- MINOR (0.4.x): Novas funcionalidades (compatível)
- PATCH (0.4.4): Correções de bugs
Versão atual: 0.4.4 (stable)
🛠️ Extensão e Customização
Como Criar Novos Tipos de Conquistas
Passo 1: Criar Model de Conquista
Passo 2: Criar Service de Verificação
Como Personalizar a Lógica de Progressão
Sistema de Níveis
Recomendações para Manter Compatibilidade
-
Não modifique tabelas core do Gamer
- Use migrations separadas para extensões
- Prefira relacionamentos polimórficos
-
Estenda em vez de modificar
-
Use eventos para customizações
- Namespace suas extensões
📊 Exemplos Reais
Caso de Uso 1: Plataforma Educacional
Contexto: Plataforma de cursos online da SierraTecnologia
Implementação:
Resultados:
- ⬆️ +45% de conclusão de cursos após implementação
- ⬆️ +60% de tempo médio na plataforma
- ⬆️ +30% de cursos iniciados por usuário
Caso de Uso 2: Marketplace Gamificado
Contexto: E-commerce B2C integrado com Market
Resultados:
- ⬆️ +25% de repeat purchase rate
- ⬆️ +40% de valor médio do carrinho
- ⬆️ +80% de engajamento de vendedores
🧪 Configuração de Ferramentas de Qualidade
PHPUnit - Testes Automatizados
Executar testes:
PHPCS - Padrão PSR-12
Executar verificação:
PHPStan - Análise Estática (Nível 8)
Executar análise:
PHPMD - Boas Práticas
Executar PHPMD:
Psalm - Verificação de Tipos
👥 Guia de Contribuição
Como Contribuir
Contribuições são muito bem-vindas! Para contribuir com o Gamer:
- Fork o repositório
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade) - Commit suas mudanças seguindo os padrões
- Push para a branch (
git push origin feature/nova-funcionalidade) - Abra um Pull Request
Padrões de Commits
Seguimos Conventional Commits:
Tipos:
feat: Nova funcionalidadefix: Correção de bugdocs: Documentaçãostyle: Formatação (não afeta código)refactor: Refatoraçãotest: Testeschore: Manutenção
Exemplos:
Padrões de Branches
main- Branch principal (protegida)develop- Branch de desenvolvimentofeature/<nome>- Novas funcionalidadesfix/<nome>- Correções de bugshotfix/<nome>- Correções urgentesrelease/<versão>- Preparação de releases
Versionamento Semântico
Seguimos SemVer 2.0.0:
- MAJOR (1.0.0): Breaking changes
- MINOR (0.1.0): Novas funcionalidades (compatível)
- PATCH (0.0.1): Correções de bugs
Execução Local das Ferramentas
Checklist de Pull Request
Antes de submeter um PR, verifique:
- [ ] Código segue PSR-12
- [ ] Testes passam (
composer test) - [ ] PHPStan nível 8 sem erros
- [ ] PHPCS sem violações
- [ ] Documentação atualizada
- [ ] CHANGELOG.md atualizado
- [ ] Commits seguem padrão Conventional Commits
- [ ] Branch atualizada com
develop
Changelog
Refer to the Changelog for a full history of the project.
Support
The following support channels are available at your fingertips:
- Chat on Slack
- Help on Email
- Follow on Twitter
Contributing & Protocols
Thank you for considering contributing to this project! The contribution guide can be found in CONTRIBUTING.md.
Bug reports, feature requests, and pull requests are very welcome.
- Versioning
- Pull Requests
- Coding Standards
- Feature Requests
- Git Flow
Security Vulnerabilities
If you discover a security vulnerability within this project, please send an e-mail to [email protected]. All security vulnerabilities will be promptly addressed.
About SierraTecnologia
SierraTecnologia is a software solutions startup, specialized in integrated enterprise solutions for SMEs established in Rio de Janeiro, Brazil since June 2008. We believe that our drive The Value, The Reach, and The Impact is what differentiates us and unleash the endless possibilities of our philosophy through the power of software. We like to call it Innovation At The Speed Of Life. That's how we do our share of advancing humanity.
License
This software is released under The MIT License (MIT).
(c) 2008-2020 SierraTecnologia, Some rights reserved.
All versions of gamer with dependencies
sierratecnologia/pedreiro Version ^0.4.0
sierratecnologia/muleta Version ^0.4.0
markrogoyski/math-php Version *
php-ai/php-ml Version >=0.8
spatie/laravel-event-sourcing Version ^4.3
jordanbrauer/unit-converter Version ^0.8.4
lorisleiva/laravel-actions Version ^1.1