Para que os proximos passos da mudança sejam realizados primeiro precisamos remover a camada stages do app. Remover os stages significa passar as activities para dentro do Module e mudar mudar todas as entidades e regras de negócio para se adequar a esse novo meio.
É importante ressaltar que a deleção do modelo stages vai fazer com que as atividades que antes eram segmentadas em estágios serem juntas em um grande estágio só (módulo). Por conta disso, embora a lógica de CAIXA -> CAIXA ALTERNATIVA -> CAIXA RANDOMICA, todas as caixas devem ser limitadas a um número K de atividades dentro de uma caixa. Isso também se deve ao fato de que as atividades serão uma amostragem de cada caixa, pois isso permitirá ter um embaralhamento das perguntas.
Exemplos de mudanças na prática
Novo usuário
Ao cadastrar um novo usuário atribuimos uma caixa dentro dele que está relacionada a uma stage. Seu registro ficará algo como isso
{
"email": ...
"progress": {
"stage": x
...
}
}
Agora essa collection deve mudar para:
{
"email": ...
"progress": {
"module": x
...
}
}
Aprovação
Considerando a lógica antiga do app, quando acontece uma aprovação, verificamos se há um proximo stage, se houver mudamos para ele. Caso contrário, vemos se tem um novo módulo, e então atribuimos ao primeiro stage desse modulo.
Ainda considerando a logica antiga, a remoção do stage representa apenas verificar se há um proximo modulo, e caso contrário chega-se ao fim do app.
Descrição
Para que os proximos passos da mudança sejam realizados primeiro precisamos remover a camada stages do app. Remover os stages significa passar as activities para dentro do
Module
e mudar mudar todas as entidades e regras de negócio para se adequar a esse novo meio.É importante ressaltar que a deleção do modelo stages vai fazer com que as atividades que antes eram segmentadas em estágios serem juntas em um grande estágio só (módulo). Por conta disso, embora a lógica de
CAIXA -> CAIXA ALTERNATIVA -> CAIXA RANDOMICA
, todas as caixas devem ser limitadas a um númeroK
de atividades dentro de uma caixa. Isso também se deve ao fato de que as atividades serão uma amostragem de cada caixa, pois isso permitirá ter um embaralhamento das perguntas.Exemplos de mudanças na prática
Novo usuário
Ao cadastrar um novo usuário atribuimos uma caixa dentro dele que está relacionada a uma stage. Seu registro ficará algo como isso
Agora essa collection deve mudar para:
Aprovação
Considerando a lógica antiga do app, quando acontece uma aprovação, verificamos se há um proximo stage, se houver mudamos para ele. Caso contrário, vemos se tem um novo módulo, e então atribuimos ao primeiro stage desse modulo.
Ainda considerando a logica antiga, a remoção do stage representa apenas verificar se há um proximo modulo, e caso contrário chega-se ao fim do app.
Critério de sucesso