dieacetaria / margaret

attendance wherever you go
MIT License
7 stars 0 forks source link

Para uma pessoa entrar no sistema ela precisa ser convidada e possui CPF e Facebook válidos #3

Open matheuslc opened 5 years ago

matheuslc commented 5 years ago

O quê?

Precisamos de algum mecanismos para garantir que quem entra na ferramenta é uma mulher e possuí um CPF válido.

Problemas ainda não respondidos

matheuslc commented 5 years ago

No cadastro, usuário precisa tirar uma foto na hora e enviar durante o cadastro. Iremos validar estas fotos na mão

matheuslc commented 5 years ago

CPF só para registro

matheuslc commented 5 years ago

Usuários serão convidados. Cada usuário terá 5 convites para distribuir.

heitormurara commented 5 years ago

Facebook requerido para cadastro.

matheuslc commented 5 years ago

Antes de ter isso precisamos ter o cadastro do usuário, logo, precisamos pensar nessa estrutura também

richardbertozzo commented 5 years ago
matheuslc commented 5 years ago

Boa @richardbertozzo! A URL pode ser composta por um ID pequeno único que daria até para o usuário colocar sem a URL (usando o id)

matheuslc commented 5 years ago

Cadastro de usuário, sugestão: Loga somente com o Facebook e pedimos/salvamos algumas informações na base em uma tabela User. Penso em uma estrutura simples como essa: User:

matheuslc commented 5 years ago

Teremos preferências, por exemplo de que quais notificações o usuário deseja receber? Imagino que podemos fazer no futuro e para esse MVP ta de boas.

matheuslc commented 5 years ago

@richardbertozzo O caso do link não ia ser ruim para abrir no app direto? A gente pode mandar um código e o usuário na hora de se cadastrar coloca esse código. A gente valida o código e continua.

matheuslc commented 5 years ago

Para a tabela de código eu imagino algo assim:

InvitationCode

matheuslc commented 5 years ago

Automaticamente um usuário novo ganha 10 convites. Então, quando um usuário novo entrar a gente cria 10 entidiades novas de InvitationCode vinculando com o usuário novo criado.

matheuslc commented 5 years ago

@dieacetaria/backend uma dúvida galera, eu acho que valores vazios em uma tabela podem ser um insigth pra gente melhorar o design disso. Na tabela InvitationCode, o usedBy ficaria vazio até que um usuário de fato use ele. Você tem alguma sugestão pra gente lidar com isso?

Não tem problema ficar assim agora, é só uma provocação pra gente dar uma pensada.

matheuslc commented 5 years ago

Não precisamos de nenhum tipo de e-mail transacional para validar o usuário já que vamos usar o Facebook, certo?

matheuslc commented 5 years ago

Breaking Cards:

O que acham galera?

richardbertozzo commented 5 years ago

@richardbertozzo O caso do link não ia ser ruim para abrir no app direto? A gente pode mandar um código e o usuário na hora de se cadastrar coloca esse código. A gente valida o código e continua.

Sim, da pra fazer assim. Só que seria mais maneiro, acredito que pode ser algo pro futuro. Esse código de convite colocamos um tempo de expiração?

richardbertozzo commented 5 years ago

@dieacetaria/backend uma dúvida galera, eu acho que valores vazios em uma tabela podem ser um insigth pra gente melhorar o design disso. Na tabela InvitationCode, o usedBy ficaria vazio até que um usuário de fato use ele. Você tem alguma sugestão pra gente lidar com isso?

Não tem problema ficar assim agora, é só uma provocação pra gente dar uma pensada.

Talvez ter o atributo de invitations_available, a se o usuário ainda tem convites. A sistema deixa ele gerar mais um convite e gera esse registro da invitationCode, mas deixando em branco o usedBy até o usuário ter cadastrado msm.

heitormurara commented 5 years ago

@richardbertozzo O caso do link não ia ser ruim para abrir no app direto? A gente pode mandar um código e o usuário na hora de se cadastrar coloca esse código. A gente valida o código e continua.

Concordo com isso.

heitormurara commented 5 years ago

Teremos preferências, por exemplo de que quais notificações o usuário deseja receber? Imagino que podemos fazer no futuro e para esse MVP ta de boas.

Acredito que pro MVP podemos seguir sem priorizar isso.

heitormurara commented 5 years ago

Não precisamos de nenhum tipo de e-mail transacional para validar o usuário já que vamos usar o Facebook, certo?

Acho que não precisamos.

heitormurara commented 5 years ago

Breaking Cards:

  • Cria app no Facebook, inclusive o modo desenvolvedor
  • Criar tabela User e InvitationCode
  • Criar persistência no banco para os códigos. Nesse caso não precisa ser um CRUD, só criar ta show, não vamos editar, nem excluir.
  • Criar gerador de códigos de convite
  • Desenhar tela de cadastro
  • Desenhar tela de login
  • Criar tela de cadastro (que inclui um input para o código) / Android + iOS
  • Criar persistência (CRUD) no banco para os usuários criados

O que acham galera?

Boa! Creio que seja por aí mesmo.

heitormurara commented 5 years ago

@dieacetaria/backend uma dúvida galera, eu acho que valores vazios em uma tabela podem ser um insigth pra gente melhorar o design disso. Na tabela InvitationCode, o usedBy ficaria vazio até que um usuário de fato use ele. Você tem alguma sugestão pra gente lidar com isso? Não tem problema ficar assim agora, é só uma provocação pra gente dar uma pensada.

Talvez ter o atributo de invitations_available, a se o usuário ainda tem convites. A sistema deixa ele gerar mais um convite e gera esse registro da invitationCode, mas deixando em branco o usedBy até o usuário ter cadastrado msm.

A ideia do atributo invitations_available é que esteja dentro da entidade de usuário? Isso não quebra a ideia de a entidade ser somente uma entidade?

Sobre a abordagem para gerar convites, achei interessante. Caso adotada, podemos trabalhar com tempo de expiração para os convites – como tu comentou antes.

pikonha commented 5 years ago

@richardbertozzo O caso do link não ia ser ruim para abrir no app direto? A gente pode mandar um código e o usuário na hora de se cadastrar coloca esse código. A gente valida o código e continua.

Eu acredito que como primeira impressão o convite podia abrir em uma página web (pwa talvez) pra mostrar a nossa cara, pra pessoa já se sentir confiante com a gente. Validaria nesse site e encaminharia pro download do app ou pra página de responsáveis.

heitormurara commented 5 years ago

@richardbertozzo O caso do link não ia ser ruim para abrir no app direto? A gente pode mandar um código e o usuário na hora de se cadastrar coloca esse código. A gente valida o código e continua.

Eu acredito que como primeira impressão o convite podia abrir em uma página web (pwa talvez) pra mostrar a nossa cara, pra pessoa já se sentir confiante com a gente. Validaria nesse site e encaminharia pro download do app ou pra página de responsáveis.

Acho que pode ser no app mesmo, fazer tipo como é feito em onboarding, saca? Quando a pessoa abrir o aplicativo, mostra alguns estágios antes de mostrar a tela de inserção de código – em um desses estágios pode ter uma tela com um link pra uma página web que fala mais sobre o projeto, também.

matheuslc commented 5 years ago

@picolloo @heitor-murara massa, curti, bom ponto. Importante a gente dar contexto e dar interesse para a pessoa querer usar.

@richardbertozzo não colocaria tempo de expiração, faria igual ao nubank, tu tem 10 convies teu é isso, primeiro que usar invalida ele

heitormurara commented 5 years ago

@matheuslc no cadastro a pessoa poderia cadastrar uma senha também para casos de desinstalação do aplicativo, restauração do celular, etc. ela poder relogar na aplicação informando CPF/senha, não?

heitormurara commented 5 years ago

Telas:

richardbertozzo commented 5 years ago

@picolloo @heitor-murara massa, curti, bom ponto. Importante a gente dar contexto e dar interesse para a pessoa querer usar.

@richardbertozzo não colocaria tempo de expiração, faria igual ao nubank, tu tem 10 convies teu é isso, primeiro que usar invalida ele

Show, pode ser. Mas no NuBank se tu manda um convite e o cara não aceitar o convite já foi usado, então acho q podemos levar essa ideia em consideração.

richardbertozzo commented 5 years ago

@richardbertozzo O caso do link não ia ser ruim para abrir no app direto? A gente pode mandar um código e o usuário na hora de se cadastrar coloca esse código. A gente valida o código e continua.

Eu acredito que como primeira impressão o convite podia abrir em uma página web (pwa talvez) pra mostrar a nossa cara, pra pessoa já se sentir confiante com a gente. Validaria nesse site e encaminharia pro download do app ou pra página de responsáveis.

Acho que pode ser no app mesmo, fazer tipo como é feito em onboarding, saca? Quando a pessoa abrir o aplicativo, mostra alguns estágios antes de mostrar a tela de inserção de código – em um desses estágios pode ter uma tela com um link pra uma página web que fala mais sobre o projeto, também.

Entendi, então primeiro a pessoa se cadastraria pelo facebook e depois inseria o codigo de convite? Ou adicionaria o codigo antes do cadastro do Facebook?

heitormurara commented 5 years ago

Primeiro valida o código, depois cadastra. @richardbertozzo

heitormurara commented 5 years ago

No cadastro, usuário precisa tirar uma foto na hora e enviar durante o cadastro. Iremos validar estas fotos na mão

Mantemos isso no cadastro, certo?