funifier-mcp 0.2.0 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursor/rules/funifier.mdc +91 -0
- package/.github/copilot-instructions.md +83 -0
- package/AGENTS.md +97 -0
- package/README.md +247 -78
- package/datasource-funifier-docs/knowledge/guides/aggregates.md +152 -152
- package/datasource-funifier-docs/knowledge/guides/database-access.md +132 -132
- package/datasource-funifier-docs/knowledge/guides/java-entities.md +373 -373
- package/datasource-funifier-docs/knowledge/guides/java-libraries.md +330 -330
- package/datasource-funifier-docs/knowledge/guides/java-managers.md +509 -509
- package/datasource-funifier-docs/knowledge/guides/triggers-guide.md +271 -271
- package/datasource-funifier-docs/knowledge/index.md +121 -121
- package/datasource-funifier-docs/knowledge/modules/achievement.md +46 -46
- package/datasource-funifier-docs/knowledge/modules/action-log.md +88 -88
- package/datasource-funifier-docs/knowledge/modules/action.md +80 -80
- package/datasource-funifier-docs/knowledge/modules/auth.md +104 -104
- package/datasource-funifier-docs/knowledge/modules/avatar.md +28 -28
- package/datasource-funifier-docs/knowledge/modules/backup.md +40 -40
- package/datasource-funifier-docs/knowledge/modules/challenge.md +91 -91
- package/datasource-funifier-docs/knowledge/modules/compact.md +40 -40
- package/datasource-funifier-docs/knowledge/modules/competition.md +149 -149
- package/datasource-funifier-docs/knowledge/modules/crossword.md +41 -41
- package/datasource-funifier-docs/knowledge/modules/csv-data.md +30 -30
- package/datasource-funifier-docs/knowledge/modules/custom-object.md +53 -53
- package/datasource-funifier-docs/knowledge/modules/database.md +241 -241
- package/datasource-funifier-docs/knowledge/modules/folder.md +111 -111
- package/datasource-funifier-docs/knowledge/modules/kpi-formulas.md +23 -23
- package/datasource-funifier-docs/knowledge/modules/lastmile.md +45 -45
- package/datasource-funifier-docs/knowledge/modules/leaderboard.md +98 -98
- package/datasource-funifier-docs/knowledge/modules/level.md +83 -83
- package/datasource-funifier-docs/knowledge/modules/lottery.md +112 -112
- package/datasource-funifier-docs/knowledge/modules/marketplace.md +27 -27
- package/datasource-funifier-docs/knowledge/modules/mystery.md +82 -82
- package/datasource-funifier-docs/knowledge/modules/notification.md +40 -40
- package/datasource-funifier-docs/knowledge/modules/patterns.md +1096 -1096
- package/datasource-funifier-docs/knowledge/modules/player.md +101 -101
- package/datasource-funifier-docs/knowledge/modules/point.md +67 -67
- package/datasource-funifier-docs/knowledge/modules/public.md +253 -253
- package/datasource-funifier-docs/knowledge/modules/question.md +136 -136
- package/datasource-funifier-docs/knowledge/modules/quiz.md +163 -163
- package/datasource-funifier-docs/knowledge/modules/scheduler.md +58 -58
- package/datasource-funifier-docs/knowledge/modules/security.md +169 -169
- package/datasource-funifier-docs/knowledge/modules/staging.md +28 -28
- package/datasource-funifier-docs/knowledge/modules/static-repo.md +41 -41
- package/datasource-funifier-docs/knowledge/modules/story.md +42 -42
- package/datasource-funifier-docs/knowledge/modules/studio-page.md +180 -180
- package/datasource-funifier-docs/knowledge/modules/swap.md +132 -132
- package/datasource-funifier-docs/knowledge/modules/team.md +75 -75
- package/datasource-funifier-docs/knowledge/modules/trigger.md +189 -189
- package/datasource-funifier-docs/knowledge/modules/upload.md +155 -155
- package/datasource-funifier-docs/knowledge/modules/virtual-good.md +99 -99
- package/datasource-funifier-docs/knowledge/modules/webhook.md +41 -41
- package/datasource-funifier-docs/knowledge/modules/websocket.md +41 -41
- package/datasource-funifier-docs/knowledge/modules/widget.md +42 -42
- package/datasource-funifier-docs/process-gtm-saas.md +143 -143
- package/datasource-funifier-docs/process-instagram.md +88 -88
- package/datasource-funifier-docs/process.md +1826 -1826
- package/datasource-funifier-docs/readme.md +132 -132
- package/dist/cli/config-writers.js +11 -11
- package/dist/mcp/bundle.js +55 -52
- package/package.json +70 -67
- package/skills/funifier-create-aggregate/SKILL.md +126 -126
- package/skills/funifier-create-custom-page/SKILL.md +126 -126
- package/skills/funifier-create-scheduler/SKILL.md +126 -126
- package/skills/funifier-create-trigger/SKILL.md +127 -127
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
# Funifier Knowledge Base — Index
|
|
2
|
-
|
|
3
|
-
Este ficheiro serve como **router** para localizar o módulo ou guia correto na base de conhecimento Funifier. Cada entrada indica o ficheiro, uma descrição curta e quando usar.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Recursos Fundacionais da Plataforma
|
|
8
|
-
|
|
9
|
-
A Funifier funciona como um **backend de aplicações**. Independentemente do tipo de projeto (gamificação, app, portal, integração), os módulos abaixo são os recursos base disponíveis para construir qualquer aplicação:
|
|
10
|
-
|
|
11
|
-
| Recurso | Ficheiro | Para que serve |
|
|
12
|
-
|---------|----------|----------------|
|
|
13
|
-
| **Auth** | `modules/auth.md` | Login de jogadores, geração de tokens JWT, autenticação via API |
|
|
14
|
-
| **Player** | `modules/player.md` | Cadastro e gestão de utilizadores da aplicação |
|
|
15
|
-
| **Database** | `modules/database.md` | CRUD em qualquer coleção, queries MongoDB, aggregates |
|
|
16
|
-
| **Custom Object** | `modules/custom-object.md` | Criar tabelas/coleções próprias (sufixo `__c`) para dados de negócio |
|
|
17
|
-
| **Upload** | `modules/upload.md` | Upload de imagens e ficheiros (avatar, documentos, etc.) |
|
|
18
|
-
| **Trigger** | `modules/trigger.md` | Escrever funções Java que executam no servidor quando eventos acontecem |
|
|
19
|
-
| **Scheduler** | `modules/scheduler.md` | Agendar tarefas automáticas (cron jobs, rotinas periódicas) |
|
|
20
|
-
| **Public Endpoint** | `modules/public.md` | Criar APIs REST customizadas acessíveis sem autenticação |
|
|
21
|
-
| **Webhook** | `modules/webhook.md` | Enviar dados para sistemas externos quando eventos acontecem |
|
|
22
|
-
| **Patterns** | `modules/patterns.md` | Design patterns de implementação (signup, etc.) baseados em experiência real |
|
|
23
|
-
|
|
24
|
-
> **Nota para o agente:** Estes recursos estão sempre disponíveis. Ao planear qualquer funcionalidade, considere-os como ferramentas que pode combinar livremente — não são exclusivos de gamificação.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Módulos Essenciais (Core)
|
|
29
|
-
|
|
30
|
-
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
31
|
-
|--------|----------|-----------|-------------|
|
|
32
|
-
| Player | `modules/player.md` | Cadastro e gestão de jogadores | Criar, listar, atualizar ou remover jogadores; gerir campos extra e imagens |
|
|
33
|
-
| Action | `modules/action.md` | Definição de tipos de ações | Criar ações que os jogadores podem executar (ex: vender, assistir vídeo) |
|
|
34
|
-
| Action Log | `modules/action-log.md` | Registro de ações executadas | Registrar (track) que um jogador executou uma ação; consultar histórico |
|
|
35
|
-
| Point | `modules/point.md` | Categorias de pontos | Criar moedas/pontos (XP, coins, estrelas); configurar tipos de pontuação |
|
|
36
|
-
| Achievement | `modules/achievement.md` | Conquistas e recompensas | Consultar pontos ganhos, desafios completados, itens comprados; entender a estrutura de recompensas |
|
|
37
|
-
| Challenge | `modules/challenge.md` | Desafios e missões | Criar desafios com regras de ação e recompensas automáticas |
|
|
38
|
-
| Level | `modules/level.md` | Níveis de progressão | Configurar sistema de níveis baseado em pontos acumulados |
|
|
39
|
-
| Leaderboard | `modules/leaderboard.md` | Rankings e classificações | Criar rankings por pontos, ações ou atributos; rankings por período |
|
|
40
|
-
| Team | `modules/team.md` | Equipes e grupos | Organizar jogadores em equipes; rankings por equipe |
|
|
41
|
-
| Virtual Good | `modules/virtual-good.md` | Loja virtual e catálogo | Criar itens para compra com pontos; gerir catálogo e compras |
|
|
42
|
-
|
|
43
|
-
## Módulos de Engajamento
|
|
44
|
-
|
|
45
|
-
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
46
|
-
|--------|----------|-----------|-------------|
|
|
47
|
-
| Lottery | `modules/lottery.md` | Sorteios e rifas | Criar sorteios com tickets; executar sorteios automáticos ou manuais |
|
|
48
|
-
| Competition | `modules/competition.md` | Competições entre jogadores | Criar competições temporárias com rankings e prémios para os melhores |
|
|
49
|
-
| Mystery Box | `modules/mystery.md` | Caixas surpresa | Configurar prémios aleatórios com probabilidades definidas |
|
|
50
|
-
| Swap | `modules/swap.md` | Troca entre jogadores | Permitir que jogadores troquem itens ou pontos entre si |
|
|
51
|
-
| Question | `modules/question.md` | Perguntas e respostas | Criar perguntas com alternativas; registrar respostas dos jogadores |
|
|
52
|
-
| Quiz | `modules/quiz.md` | Questionários completos | Montar questionários agrupando múltiplas perguntas; avaliar desempenho |
|
|
53
|
-
| Crossword | `modules/crossword.md` | Palavras cruzadas | Criar jogos de palavras cruzadas como mecânica de engajamento |
|
|
54
|
-
| Story | `modules/story.md` | Narrativas e storytelling | Criar histórias interativas com cenas e escolhas do jogador |
|
|
55
|
-
| Avatar | `modules/avatar.md` | Avatares personalizáveis | Permitir que jogadores personalizem avatares com itens desbloqueáveis |
|
|
56
|
-
| Last Mile | `modules/lastmile.md` | Incentivo à conclusão | Criar mecânicas que incentivam jogadores a completar tarefas pendentes |
|
|
57
|
-
|
|
58
|
-
## Módulos Técnicos e Infraestrutura
|
|
59
|
-
|
|
60
|
-
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
61
|
-
|--------|----------|-----------|-------------|
|
|
62
|
-
| Trigger | `modules/trigger.md` | Código Java em eventos | Executar lógica customizada quando eventos acontecem (before/after create, win, etc.) |
|
|
63
|
-
| Scheduler | `modules/scheduler.md` | Tarefas agendadas | Executar código Java em intervalos regulares (cron jobs) |
|
|
64
|
-
| Webhook | `modules/webhook.md` | Notificações HTTP externas | Enviar dados para sistemas externos quando eventos acontecem na gamificação |
|
|
65
|
-
| Notification | `modules/notification.md` | Notificações push e in-app | Enviar notificações para jogadores via push, email ou in-app |
|
|
66
|
-
| WebSocket | `modules/websocket.md` | Comunicação em tempo real | Receber atualizações em tempo real no frontend via WebSocket |
|
|
67
|
-
| Public Endpoint | `modules/public.md` | APIs públicas customizadas | Criar endpoints REST customizados sem autenticação (para integrações) |
|
|
68
|
-
| Widget | `modules/widget.md` | Componentes visuais embeddáveis | Incorporar leaderboards, perfis e outros componentes em páginas externas |
|
|
69
|
-
| Studio Page | `modules/studio-page.md` | Páginas customizadas no Studio | Criar páginas HTML/JS dentro do painel administrativo |
|
|
70
|
-
| KPI Formulas | `modules/kpi-formulas.md` | Fórmulas e indicadores | Criar campos calculados e KPIs derivados de dados da gamificação |
|
|
71
|
-
|
|
72
|
-
## Módulos de Dados e Armazenamento
|
|
73
|
-
|
|
74
|
-
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
75
|
-
|--------|----------|-----------|-------------|
|
|
76
|
-
| Database | `modules/database.md` | Acesso direto ao MongoDB | Operações CRUD em coleções; executar aggregates via API |
|
|
77
|
-
| Custom Object | `modules/custom-object.md` | Coleções customizadas (`__c`) | Criar coleções de dados próprias (ex: `car__c`, `email__c`) |
|
|
78
|
-
| CSV Data | `modules/csv-data.md` | Importação/exportação CSV | Importar jogadores ou dados em massa via CSV; exportar relatórios |
|
|
79
|
-
| Upload | `modules/upload.md` | Upload de ficheiros | Fazer upload de imagens e ficheiros para o repositório Funifier |
|
|
80
|
-
| Static Repo | `modules/static-repo.md` | Repositório de ficheiros estáticos | Hospedar ficheiros estáticos (HTML, CSS, JS, imagens) na plataforma |
|
|
81
|
-
|
|
82
|
-
## Módulos de Administração
|
|
83
|
-
|
|
84
|
-
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
85
|
-
|--------|----------|-----------|-------------|
|
|
86
|
-
| Auth | `modules/auth.md` | Autenticação e tokens | Gerar tokens de acesso; configurar API keys; autenticação OAuth |
|
|
87
|
-
| Folder | `modules/folder.md` | Organização em pastas | Organizar módulos (ações, desafios, etc.) em pastas no Studio |
|
|
88
|
-
| Backup | `modules/backup.md` | Backup e restauração | Criar backups da gamificação; restaurar configurações |
|
|
89
|
-
| Compact | `modules/compact.md` | Compactação de dados | Compactar dados históricos para otimizar performance |
|
|
90
|
-
| Staging | `modules/staging.md` | Ambiente de homologação | Testar configurações em ambiente separado antes de produção |
|
|
91
|
-
| Marketplace | `modules/marketplace.md` | Templates de gamificação | Importar templates prontos do marketplace Funifier |
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Guias Transversais
|
|
96
|
-
|
|
97
|
-
| Guia | Ficheiro | Descrição | Quando usar |
|
|
98
|
-
|------|----------|-----------|-------------|
|
|
99
|
-
| Aggregates | `guides/aggregates.md` | Consultas avançadas MongoDB | Criar relatórios, dashboards, rankings customizados; usar expressões de data Funifier |
|
|
100
|
-
| Triggers | `guides/triggers-guide.md` | Guia completo de triggers | Referência de eventos, entidades, managers e exemplos de código Java |
|
|
101
|
-
| Database Access | `guides/database-access.md` | Acesso ao banco de dados | Referência de acesso via API REST e via código Java (Jongo) |
|
|
102
|
-
| Java Managers | `guides/java-managers.md` | Referência de managers Java | Métodos disponíveis em cada manager (PlayerManager, ActionManager, etc.) para uso em triggers, schedulers e public endpoints |
|
|
103
|
-
| Java Entities | `guides/java-entities.md` | Referência de entidades Java | Campos e tipos dos objetos (Player, Achievement, ActionLog, etc.) e mapeamento para coleções MongoDB |
|
|
104
|
-
| Java Libraries | `guides/java-libraries.md` | Bibliotecas e utilitários Java | JsonUtil, Guid, DateUtil, Unirest, EmailBuilder, Jongo — métodos e exemplos de uso |
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## Como usar este index
|
|
109
|
-
|
|
110
|
-
1. **Identifique a necessidade** do utilizador (ex: "quero criar um ranking")
|
|
111
|
-
2. **Localize o módulo** na tabela acima (ex: Leaderboard)
|
|
112
|
-
3. **Carregue o ficheiro** correspondente (ex: `modules/leaderboard.md`)
|
|
113
|
-
4. **Siga o checklist** de configuração e use os exemplos de API
|
|
114
|
-
|
|
115
|
-
Para consultas que envolvem **múltiplos módulos**, carregue cada ficheiro individualmente conforme necessário.
|
|
116
|
-
|
|
117
|
-
Para **relatórios e queries avançadas**, consulte `guides/aggregates.md`.
|
|
118
|
-
|
|
119
|
-
Para **lógica customizada com código**, consulte `guides/triggers-guide.md` e `guides/database-access.md`.
|
|
120
|
-
|
|
121
|
-
Para **referência completa de recursos Java** (managers, entidades, bibliotecas), consulte `guides/java-managers.md`, `guides/java-entities.md` e `guides/java-libraries.md`.
|
|
1
|
+
# Funifier Knowledge Base — Index
|
|
2
|
+
|
|
3
|
+
Este ficheiro serve como **router** para localizar o módulo ou guia correto na base de conhecimento Funifier. Cada entrada indica o ficheiro, uma descrição curta e quando usar.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Recursos Fundacionais da Plataforma
|
|
8
|
+
|
|
9
|
+
A Funifier funciona como um **backend de aplicações**. Independentemente do tipo de projeto (gamificação, app, portal, integração), os módulos abaixo são os recursos base disponíveis para construir qualquer aplicação:
|
|
10
|
+
|
|
11
|
+
| Recurso | Ficheiro | Para que serve |
|
|
12
|
+
|---------|----------|----------------|
|
|
13
|
+
| **Auth** | `modules/auth.md` | Login de jogadores, geração de tokens JWT, autenticação via API |
|
|
14
|
+
| **Player** | `modules/player.md` | Cadastro e gestão de utilizadores da aplicação |
|
|
15
|
+
| **Database** | `modules/database.md` | CRUD em qualquer coleção, queries MongoDB, aggregates |
|
|
16
|
+
| **Custom Object** | `modules/custom-object.md` | Criar tabelas/coleções próprias (sufixo `__c`) para dados de negócio |
|
|
17
|
+
| **Upload** | `modules/upload.md` | Upload de imagens e ficheiros (avatar, documentos, etc.) |
|
|
18
|
+
| **Trigger** | `modules/trigger.md` | Escrever funções Java que executam no servidor quando eventos acontecem |
|
|
19
|
+
| **Scheduler** | `modules/scheduler.md` | Agendar tarefas automáticas (cron jobs, rotinas periódicas) |
|
|
20
|
+
| **Public Endpoint** | `modules/public.md` | Criar APIs REST customizadas acessíveis sem autenticação |
|
|
21
|
+
| **Webhook** | `modules/webhook.md` | Enviar dados para sistemas externos quando eventos acontecem |
|
|
22
|
+
| **Patterns** | `modules/patterns.md` | Design patterns de implementação (signup, etc.) baseados em experiência real |
|
|
23
|
+
|
|
24
|
+
> **Nota para o agente:** Estes recursos estão sempre disponíveis. Ao planear qualquer funcionalidade, considere-os como ferramentas que pode combinar livremente — não são exclusivos de gamificação.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Módulos Essenciais (Core)
|
|
29
|
+
|
|
30
|
+
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
31
|
+
|--------|----------|-----------|-------------|
|
|
32
|
+
| Player | `modules/player.md` | Cadastro e gestão de jogadores | Criar, listar, atualizar ou remover jogadores; gerir campos extra e imagens |
|
|
33
|
+
| Action | `modules/action.md` | Definição de tipos de ações | Criar ações que os jogadores podem executar (ex: vender, assistir vídeo) |
|
|
34
|
+
| Action Log | `modules/action-log.md` | Registro de ações executadas | Registrar (track) que um jogador executou uma ação; consultar histórico |
|
|
35
|
+
| Point | `modules/point.md` | Categorias de pontos | Criar moedas/pontos (XP, coins, estrelas); configurar tipos de pontuação |
|
|
36
|
+
| Achievement | `modules/achievement.md` | Conquistas e recompensas | Consultar pontos ganhos, desafios completados, itens comprados; entender a estrutura de recompensas |
|
|
37
|
+
| Challenge | `modules/challenge.md` | Desafios e missões | Criar desafios com regras de ação e recompensas automáticas |
|
|
38
|
+
| Level | `modules/level.md` | Níveis de progressão | Configurar sistema de níveis baseado em pontos acumulados |
|
|
39
|
+
| Leaderboard | `modules/leaderboard.md` | Rankings e classificações | Criar rankings por pontos, ações ou atributos; rankings por período |
|
|
40
|
+
| Team | `modules/team.md` | Equipes e grupos | Organizar jogadores em equipes; rankings por equipe |
|
|
41
|
+
| Virtual Good | `modules/virtual-good.md` | Loja virtual e catálogo | Criar itens para compra com pontos; gerir catálogo e compras |
|
|
42
|
+
|
|
43
|
+
## Módulos de Engajamento
|
|
44
|
+
|
|
45
|
+
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
46
|
+
|--------|----------|-----------|-------------|
|
|
47
|
+
| Lottery | `modules/lottery.md` | Sorteios e rifas | Criar sorteios com tickets; executar sorteios automáticos ou manuais |
|
|
48
|
+
| Competition | `modules/competition.md` | Competições entre jogadores | Criar competições temporárias com rankings e prémios para os melhores |
|
|
49
|
+
| Mystery Box | `modules/mystery.md` | Caixas surpresa | Configurar prémios aleatórios com probabilidades definidas |
|
|
50
|
+
| Swap | `modules/swap.md` | Troca entre jogadores | Permitir que jogadores troquem itens ou pontos entre si |
|
|
51
|
+
| Question | `modules/question.md` | Perguntas e respostas | Criar perguntas com alternativas; registrar respostas dos jogadores |
|
|
52
|
+
| Quiz | `modules/quiz.md` | Questionários completos | Montar questionários agrupando múltiplas perguntas; avaliar desempenho |
|
|
53
|
+
| Crossword | `modules/crossword.md` | Palavras cruzadas | Criar jogos de palavras cruzadas como mecânica de engajamento |
|
|
54
|
+
| Story | `modules/story.md` | Narrativas e storytelling | Criar histórias interativas com cenas e escolhas do jogador |
|
|
55
|
+
| Avatar | `modules/avatar.md` | Avatares personalizáveis | Permitir que jogadores personalizem avatares com itens desbloqueáveis |
|
|
56
|
+
| Last Mile | `modules/lastmile.md` | Incentivo à conclusão | Criar mecânicas que incentivam jogadores a completar tarefas pendentes |
|
|
57
|
+
|
|
58
|
+
## Módulos Técnicos e Infraestrutura
|
|
59
|
+
|
|
60
|
+
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
61
|
+
|--------|----------|-----------|-------------|
|
|
62
|
+
| Trigger | `modules/trigger.md` | Código Java em eventos | Executar lógica customizada quando eventos acontecem (before/after create, win, etc.) |
|
|
63
|
+
| Scheduler | `modules/scheduler.md` | Tarefas agendadas | Executar código Java em intervalos regulares (cron jobs) |
|
|
64
|
+
| Webhook | `modules/webhook.md` | Notificações HTTP externas | Enviar dados para sistemas externos quando eventos acontecem na gamificação |
|
|
65
|
+
| Notification | `modules/notification.md` | Notificações push e in-app | Enviar notificações para jogadores via push, email ou in-app |
|
|
66
|
+
| WebSocket | `modules/websocket.md` | Comunicação em tempo real | Receber atualizações em tempo real no frontend via WebSocket |
|
|
67
|
+
| Public Endpoint | `modules/public.md` | APIs públicas customizadas | Criar endpoints REST customizados sem autenticação (para integrações) |
|
|
68
|
+
| Widget | `modules/widget.md` | Componentes visuais embeddáveis | Incorporar leaderboards, perfis e outros componentes em páginas externas |
|
|
69
|
+
| Studio Page | `modules/studio-page.md` | Páginas customizadas no Studio | Criar páginas HTML/JS dentro do painel administrativo |
|
|
70
|
+
| KPI Formulas | `modules/kpi-formulas.md` | Fórmulas e indicadores | Criar campos calculados e KPIs derivados de dados da gamificação |
|
|
71
|
+
|
|
72
|
+
## Módulos de Dados e Armazenamento
|
|
73
|
+
|
|
74
|
+
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
75
|
+
|--------|----------|-----------|-------------|
|
|
76
|
+
| Database | `modules/database.md` | Acesso direto ao MongoDB | Operações CRUD em coleções; executar aggregates via API |
|
|
77
|
+
| Custom Object | `modules/custom-object.md` | Coleções customizadas (`__c`) | Criar coleções de dados próprias (ex: `car__c`, `email__c`) |
|
|
78
|
+
| CSV Data | `modules/csv-data.md` | Importação/exportação CSV | Importar jogadores ou dados em massa via CSV; exportar relatórios |
|
|
79
|
+
| Upload | `modules/upload.md` | Upload de ficheiros | Fazer upload de imagens e ficheiros para o repositório Funifier |
|
|
80
|
+
| Static Repo | `modules/static-repo.md` | Repositório de ficheiros estáticos | Hospedar ficheiros estáticos (HTML, CSS, JS, imagens) na plataforma |
|
|
81
|
+
|
|
82
|
+
## Módulos de Administração
|
|
83
|
+
|
|
84
|
+
| Módulo | Ficheiro | Descrição | Quando usar |
|
|
85
|
+
|--------|----------|-----------|-------------|
|
|
86
|
+
| Auth | `modules/auth.md` | Autenticação e tokens | Gerar tokens de acesso; configurar API keys; autenticação OAuth |
|
|
87
|
+
| Folder | `modules/folder.md` | Organização em pastas | Organizar módulos (ações, desafios, etc.) em pastas no Studio |
|
|
88
|
+
| Backup | `modules/backup.md` | Backup e restauração | Criar backups da gamificação; restaurar configurações |
|
|
89
|
+
| Compact | `modules/compact.md` | Compactação de dados | Compactar dados históricos para otimizar performance |
|
|
90
|
+
| Staging | `modules/staging.md` | Ambiente de homologação | Testar configurações em ambiente separado antes de produção |
|
|
91
|
+
| Marketplace | `modules/marketplace.md` | Templates de gamificação | Importar templates prontos do marketplace Funifier |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Guias Transversais
|
|
96
|
+
|
|
97
|
+
| Guia | Ficheiro | Descrição | Quando usar |
|
|
98
|
+
|------|----------|-----------|-------------|
|
|
99
|
+
| Aggregates | `guides/aggregates.md` | Consultas avançadas MongoDB | Criar relatórios, dashboards, rankings customizados; usar expressões de data Funifier |
|
|
100
|
+
| Triggers | `guides/triggers-guide.md` | Guia completo de triggers | Referência de eventos, entidades, managers e exemplos de código Java |
|
|
101
|
+
| Database Access | `guides/database-access.md` | Acesso ao banco de dados | Referência de acesso via API REST e via código Java (Jongo) |
|
|
102
|
+
| Java Managers | `guides/java-managers.md` | Referência de managers Java | Métodos disponíveis em cada manager (PlayerManager, ActionManager, etc.) para uso em triggers, schedulers e public endpoints |
|
|
103
|
+
| Java Entities | `guides/java-entities.md` | Referência de entidades Java | Campos e tipos dos objetos (Player, Achievement, ActionLog, etc.) e mapeamento para coleções MongoDB |
|
|
104
|
+
| Java Libraries | `guides/java-libraries.md` | Bibliotecas e utilitários Java | JsonUtil, Guid, DateUtil, Unirest, EmailBuilder, Jongo — métodos e exemplos de uso |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Como usar este index
|
|
109
|
+
|
|
110
|
+
1. **Identifique a necessidade** do utilizador (ex: "quero criar um ranking")
|
|
111
|
+
2. **Localize o módulo** na tabela acima (ex: Leaderboard)
|
|
112
|
+
3. **Carregue o ficheiro** correspondente (ex: `modules/leaderboard.md`)
|
|
113
|
+
4. **Siga o checklist** de configuração e use os exemplos de API
|
|
114
|
+
|
|
115
|
+
Para consultas que envolvem **múltiplos módulos**, carregue cada ficheiro individualmente conforme necessário.
|
|
116
|
+
|
|
117
|
+
Para **relatórios e queries avançadas**, consulte `guides/aggregates.md`.
|
|
118
|
+
|
|
119
|
+
Para **lógica customizada com código**, consulte `guides/triggers-guide.md` e `guides/database-access.md`.
|
|
120
|
+
|
|
121
|
+
Para **referência completa de recursos Java** (managers, entidades, bibliotecas), consulte `guides/java-managers.md`, `guides/java-entities.md` e `guides/java-libraries.md`.
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# Achievement (Conquista)
|
|
2
|
-
|
|
3
|
-
**API Endpoint:** `/v3/achievement`
|
|
4
|
-
|
|
5
|
-
## O que é
|
|
6
|
-
|
|
7
|
-
Registro das conquistas dos jogadores ao atingirem marcos relevantes. Todas as conquistas — como completar desafios, subir de nível, ganhar pontos ou adquirir itens — são registradas neste módulo. Ele automatiza o reconhecimento dos marcos alcançados, mas permite ajustes manuais.
|
|
8
|
-
|
|
9
|
-
## Quando usar
|
|
10
|
-
|
|
11
|
-
- Para consultar conquistas dos jogadores
|
|
12
|
-
- Para criar relatórios de desempenho
|
|
13
|
-
- Para usar em aggregates e dashboards
|
|
14
|
-
- Para triggers que reagem a conquistas
|
|
15
|
-
|
|
16
|
-
## Estrutura do Objeto
|
|
17
|
-
|
|
18
|
-
```json
|
|
19
|
-
{
|
|
20
|
-
"_id": "64a5d2",
|
|
21
|
-
"player": "john",
|
|
22
|
-
"total": 25.0,
|
|
23
|
-
"type": 0,
|
|
24
|
-
"item": "xp",
|
|
25
|
-
"time": {"$date": "2023-07-05T20:57:33.303Z"}
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Tipos de Achievement (campo type):**
|
|
30
|
-
- `0` = Point (ponto ganho)
|
|
31
|
-
- `1` = Challenge (desafio completado)
|
|
32
|
-
- `2` = Virtual Good (item comprado)
|
|
33
|
-
- `3` = Level (nível atingido)
|
|
34
|
-
|
|
35
|
-
## API Endpoints
|
|
36
|
-
|
|
37
|
-
### Listar Conquistas
|
|
38
|
-
**Método:** GET
|
|
39
|
-
**Endpoint:** `/v3/achievement`
|
|
40
|
-
|
|
41
|
-
## Validações e Testes
|
|
42
|
-
|
|
43
|
-
- [ ] Ao completar desafio, achievement tipo 1 é criado
|
|
44
|
-
- [ ] Ao ganhar pontos, achievement tipo 0 é criado
|
|
45
|
-
- [ ] Ao comprar item, achievement tipo 2 é criado
|
|
46
|
-
- [ ] Ao subir de nível, achievement tipo 3 é criado
|
|
1
|
+
# Achievement (Conquista)
|
|
2
|
+
|
|
3
|
+
**API Endpoint:** `/v3/achievement`
|
|
4
|
+
|
|
5
|
+
## O que é
|
|
6
|
+
|
|
7
|
+
Registro das conquistas dos jogadores ao atingirem marcos relevantes. Todas as conquistas — como completar desafios, subir de nível, ganhar pontos ou adquirir itens — são registradas neste módulo. Ele automatiza o reconhecimento dos marcos alcançados, mas permite ajustes manuais.
|
|
8
|
+
|
|
9
|
+
## Quando usar
|
|
10
|
+
|
|
11
|
+
- Para consultar conquistas dos jogadores
|
|
12
|
+
- Para criar relatórios de desempenho
|
|
13
|
+
- Para usar em aggregates e dashboards
|
|
14
|
+
- Para triggers que reagem a conquistas
|
|
15
|
+
|
|
16
|
+
## Estrutura do Objeto
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{
|
|
20
|
+
"_id": "64a5d2",
|
|
21
|
+
"player": "john",
|
|
22
|
+
"total": 25.0,
|
|
23
|
+
"type": 0,
|
|
24
|
+
"item": "xp",
|
|
25
|
+
"time": {"$date": "2023-07-05T20:57:33.303Z"}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Tipos de Achievement (campo type):**
|
|
30
|
+
- `0` = Point (ponto ganho)
|
|
31
|
+
- `1` = Challenge (desafio completado)
|
|
32
|
+
- `2` = Virtual Good (item comprado)
|
|
33
|
+
- `3` = Level (nível atingido)
|
|
34
|
+
|
|
35
|
+
## API Endpoints
|
|
36
|
+
|
|
37
|
+
### Listar Conquistas
|
|
38
|
+
**Método:** GET
|
|
39
|
+
**Endpoint:** `/v3/achievement`
|
|
40
|
+
|
|
41
|
+
## Validações e Testes
|
|
42
|
+
|
|
43
|
+
- [ ] Ao completar desafio, achievement tipo 1 é criado
|
|
44
|
+
- [ ] Ao ganhar pontos, achievement tipo 0 é criado
|
|
45
|
+
- [ ] Ao comprar item, achievement tipo 2 é criado
|
|
46
|
+
- [ ] Ao subir de nível, achievement tipo 3 é criado
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
# Action Log (Registro de Ação)
|
|
2
|
-
|
|
3
|
-
**API Endpoint:** `/v3/action/log`
|
|
4
|
-
|
|
5
|
-
## O que é
|
|
6
|
-
|
|
7
|
-
Registro detalhado de todas as ações executadas pelos jogadores. Armazena cada ação realizada, com detalhes como quem executou, qual ação foi feita e quando ocorreu. Esse registro alimenta todos os outros módulos da plataforma.
|
|
8
|
-
|
|
9
|
-
## Quando usar
|
|
10
|
-
|
|
11
|
-
- Para registrar que um jogador executou uma ação
|
|
12
|
-
- Para alimentar desafios, rankings e recompensas
|
|
13
|
-
- Para importar ações em lote de sistemas externos
|
|
14
|
-
- Para rastrear comportamento dos jogadores
|
|
15
|
-
|
|
16
|
-
## Dependências
|
|
17
|
-
|
|
18
|
-
- **Action**: a ação referenciada deve existir
|
|
19
|
-
- **Player**: o jogador referenciado deve existir
|
|
20
|
-
|
|
21
|
-
## API Endpoints
|
|
22
|
-
|
|
23
|
-
### Listar ActionLogs
|
|
24
|
-
**Método:** GET
|
|
25
|
-
**Endpoint:** `/v3/action/log`
|
|
26
|
-
|
|
27
|
-
**Exemplo de Resposta:**
|
|
28
|
-
```json
|
|
29
|
-
[
|
|
30
|
-
{
|
|
31
|
-
"_id": "6509e4e28325771ffaa4506e",
|
|
32
|
-
"actionId": "sell",
|
|
33
|
-
"userId": "jerry",
|
|
34
|
-
"time": 1695147234712,
|
|
35
|
-
"attributes": {
|
|
36
|
-
"product": "bike",
|
|
37
|
-
"price": 1200
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### Registrar ActionLog
|
|
44
|
-
**Método:** POST
|
|
45
|
-
**Endpoint:** `/v3/action/log`
|
|
46
|
-
|
|
47
|
-
**Exemplo de Body:**
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"actionId": "sell",
|
|
51
|
-
"userId": "jerry",
|
|
52
|
-
"attributes": {
|
|
53
|
-
"product": "bike",
|
|
54
|
-
"price": 1200
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Registrar Múltiplos ActionLogs
|
|
60
|
-
**Método:** POST
|
|
61
|
-
**Endpoint:** `/v3/action/log/bulk`
|
|
62
|
-
|
|
63
|
-
**Exemplo de Body:**
|
|
64
|
-
```json
|
|
65
|
-
[
|
|
66
|
-
{
|
|
67
|
-
"actionId": "sell",
|
|
68
|
-
"userId": "jerry",
|
|
69
|
-
"attributes": { "product": "bike", "price": 1200 }
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"actionId": "sell",
|
|
73
|
-
"userId": "tom",
|
|
74
|
-
"attributes": { "product": "book", "price": 25 }
|
|
75
|
-
}
|
|
76
|
-
]
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Excluir ActionLog
|
|
80
|
-
**Método:** DELETE
|
|
81
|
-
**Endpoint:** `/v3/action/log/:id`
|
|
82
|
-
|
|
83
|
-
## Validações e Testes
|
|
84
|
-
|
|
85
|
-
- [ ] ActionLog aparece na lista com dados corretos
|
|
86
|
-
- [ ] Ao registrar action log, desafios relacionados progridem
|
|
87
|
-
- [ ] Bulk insert registra múltiplas ações corretamente
|
|
88
|
-
- [ ] Atributos são armazenados conforme definido na ação
|
|
1
|
+
# Action Log (Registro de Ação)
|
|
2
|
+
|
|
3
|
+
**API Endpoint:** `/v3/action/log`
|
|
4
|
+
|
|
5
|
+
## O que é
|
|
6
|
+
|
|
7
|
+
Registro detalhado de todas as ações executadas pelos jogadores. Armazena cada ação realizada, com detalhes como quem executou, qual ação foi feita e quando ocorreu. Esse registro alimenta todos os outros módulos da plataforma.
|
|
8
|
+
|
|
9
|
+
## Quando usar
|
|
10
|
+
|
|
11
|
+
- Para registrar que um jogador executou uma ação
|
|
12
|
+
- Para alimentar desafios, rankings e recompensas
|
|
13
|
+
- Para importar ações em lote de sistemas externos
|
|
14
|
+
- Para rastrear comportamento dos jogadores
|
|
15
|
+
|
|
16
|
+
## Dependências
|
|
17
|
+
|
|
18
|
+
- **Action**: a ação referenciada deve existir
|
|
19
|
+
- **Player**: o jogador referenciado deve existir
|
|
20
|
+
|
|
21
|
+
## API Endpoints
|
|
22
|
+
|
|
23
|
+
### Listar ActionLogs
|
|
24
|
+
**Método:** GET
|
|
25
|
+
**Endpoint:** `/v3/action/log`
|
|
26
|
+
|
|
27
|
+
**Exemplo de Resposta:**
|
|
28
|
+
```json
|
|
29
|
+
[
|
|
30
|
+
{
|
|
31
|
+
"_id": "6509e4e28325771ffaa4506e",
|
|
32
|
+
"actionId": "sell",
|
|
33
|
+
"userId": "jerry",
|
|
34
|
+
"time": 1695147234712,
|
|
35
|
+
"attributes": {
|
|
36
|
+
"product": "bike",
|
|
37
|
+
"price": 1200
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Registrar ActionLog
|
|
44
|
+
**Método:** POST
|
|
45
|
+
**Endpoint:** `/v3/action/log`
|
|
46
|
+
|
|
47
|
+
**Exemplo de Body:**
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"actionId": "sell",
|
|
51
|
+
"userId": "jerry",
|
|
52
|
+
"attributes": {
|
|
53
|
+
"product": "bike",
|
|
54
|
+
"price": 1200
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Registrar Múltiplos ActionLogs
|
|
60
|
+
**Método:** POST
|
|
61
|
+
**Endpoint:** `/v3/action/log/bulk`
|
|
62
|
+
|
|
63
|
+
**Exemplo de Body:**
|
|
64
|
+
```json
|
|
65
|
+
[
|
|
66
|
+
{
|
|
67
|
+
"actionId": "sell",
|
|
68
|
+
"userId": "jerry",
|
|
69
|
+
"attributes": { "product": "bike", "price": 1200 }
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"actionId": "sell",
|
|
73
|
+
"userId": "tom",
|
|
74
|
+
"attributes": { "product": "book", "price": 25 }
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Excluir ActionLog
|
|
80
|
+
**Método:** DELETE
|
|
81
|
+
**Endpoint:** `/v3/action/log/:id`
|
|
82
|
+
|
|
83
|
+
## Validações e Testes
|
|
84
|
+
|
|
85
|
+
- [ ] ActionLog aparece na lista com dados corretos
|
|
86
|
+
- [ ] Ao registrar action log, desafios relacionados progridem
|
|
87
|
+
- [ ] Bulk insert registra múltiplas ações corretamente
|
|
88
|
+
- [ ] Atributos são armazenados conforme definido na ação
|