O desafio é implementar um webchat usando como tecnologia de backend Sinatra e websocket para atualização da conversa.
1- Criar uma banco de dados, com as seguintes tabelas User e Message
2- Permitir que o usuário faça Login no chat. O usuário e senha pode estar previamente cadastrados
3- Implementar a tela do chat que atualiza a conversa sem refresh, pode ser utilizado VueJS ou outra técnologia.
4- Permitir visualizar histórico das conversas
5- Cuidar para não ter vazamento de conversa. Exemplo: Usuário A não pode visualizar as conversas do Usuário X, somente as conversas entre Usuário A e Usuário X.
6- Permitir que o usuário faça Logout.
1- Código documentado
2- Testes automatizados para validar o funcionamento do código
3- Cada aba do navegador é uma nova instancia do chat
4- Deve suportar os navegadores Chrome e Firefox.