Realizado

Desenvolvimento Flutter com o uso de Mobx

Publicado em 18 de Maio de 2020 dias na TI e Programação

Sobre este projeto

Aberto

Estou desenvolvendo um app semelhante ao Duolingo, tenho toda a ideia de como vai funcionar, tenho a maioria das telas prontas, tenho parte do BackEnd em funcionamento feito com FireBase.

- Preciso de melhorias no sistema de autenticação de usuário por email, Facebook e Google no FireBase.
- Preciso implantar um sistema de score  de forma que fique registrado as pontuações e conquistas no FireBase.
- Preciso de um sistema de requisição das questões que estarão cadastradas no Firebase.


- Preciso do app estruturado em MOBX.

Detalhamento:

- Haverá uma Splash Screen ao iniciar o app que deverá verificar se o usuário esta logado ou não, caso estiver logado, vai para tela inicial, caso não esteja logado, vai para tela de efetuar o login onde ele poderá fazer o login por email, pelo Facebook ou pelo Google, ainda nessa tela poderá criar usuário ou resetar senha (Telas prontas e regra de negócio 90% concluído conforme imagens).

- Na tela de cadastro o usuário deverá colocar o nome o e-mail e uma senha (obrigatório) e poderá colocar tirar uma foto ou selecionar uma imagem(opcional para o usuário), ao se cadastrar, deve se criar um usuário no Firebase e salvar as informações no database como "users" e a imagem(se houver) no storage.

- Na tela principal, o usuário poderá selecionar uma categoria(conforme tela de exemplo pronta) onde será direcionado para um sequencia de questões com 4 alternativas ou questões de verdadeiro ou falso (aleatório) ( requisitado do Firebase aleatoriamente) (10 em sequência).

OBS - Requisição de uma por vez dentre uma lista de varias, ou seja não é para pegar todas as questões (getDocument).


- Ao terminar as 10 questões, uma tela com os pontos deverá ser apresentada, esses pontos devem ser atualizados no FireBase.

- O aplicativo terá um sistema de pontos e conquistas que deve ser acionado quando um dos objetivos forem atingidos.

Pontuações:
        overall = jsonScoreUser['overall'],
        fire = jsonScoreUser['incêndio'],
        firtsAid = jsonScoreUser['primeiro Socorros'],
        prevention = jsonScoreUser['prevênção'],
        homeCare = jsonScoreUser['cuidados domésticos'],
        numberHits = jsonScoreUser['número acertos'],
        numberErrors = jsonScoreUser['número erros'],
        numberAnswered = jsonScoreUser['número respondidos'],
        sequenceHits = jsonScoreUser['sequência acertos'],
        numberLikeQuestions = jsonScoreUser['número de questões que gostou'],
        numberCommentPost = jsonScoreUser['número postagens que comentou'],
        weekendXP = Jsonscoreuser['xp em final de semana'];

obs - esses pontos deve ser codificado com gerenciamento de estado tipo mobx.

Conquistas:
const textChallengeGoalProfile0 = "Ganhe 100 XP";
const textChallengeGoalProfile1 = "Ganhe 300 XP";
const textChallengeGoalProfile2 = "Ganhe 500 XP";
const textChallengeGoalProfile3 = "Ganhe 800 XP";
const textChallengeGoalProfile4 = "Ganhe 1000 XP";
const textChallengeGoalProfile5 = "Ganhe 1000 XP em $textIncendio";
const textChallengeGoalProfile6 = "Ganhe 1000 XP em $textPrimeiroSocorros";
const textChallengeGoalProfile7 = "Ganhe 1000 XP em $textPrevencao";
const textChallengeGoalProfile8 = "Ganhe 1000 XP em $textCuidadosDomesticos";
const textChallengeGoalProfile9 = "Acerte 10 em sequência";
const textChallengeGoalProfile10 = "Consiga 100 XP em cada categoria";
const textChallengeGoalProfile11 = "Complete todas Histórias";
const textChallengeGoalProfile12 = "Comente um pergunta";
const textChallengeGoalProfile13 = "Comente ao menos 10 perguntas";
const textChallengeGoalProfile14 = "Ganhe 100 XP no final de semana";
const textChallengeGoalProfile15 = "Coloque foto no perfil";
const textChallengeGoalProfile16 = "Curta ao menos 5 questoes";
const textChallengeGoalProfile17 = "Complete uma categoria";
const textChallengeGoalProfile18 = "Complete todas categorias";
const textChallengeGoalProfile19 = "Complete tudo de tudo";

OBS - quando a qualquer momento qualquer dessas conquistas forem atingidas, deverá aparecer um ShowDialog ou algo parecido alertando o usuário.

OBS - Boa parte desses códigos já estão implementados (conforme imagens anexas)

OBS -  Leia com atenção!!! Entenda o que deve ser feito, pergunte se preciso. Será negativado se desistir do projeto depois de aceito.

Categoria TI e Programação
Subcategoria Programação de Apps para Android, iOS e outros
Qual é o alcance do projeto? Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Não se aplica
Disponibilidade requerida Conforme necessário
Plataformas exigidas Android

Prazo de Entrega: Não estabelecido

Habilidades necessárias