Seja bem-vindo! Este desafio foi projetado para avaliar a sua capacidade técnica como candidato à vaga de Desenvolvedor Fullstack Sênior.
- Faça um fork deste repositório;
- Utilize alguma das tecnologias (front-end e back-end) informadas na proposta desse desafio;
- Crie um passo a passo de como rodar a sua aplicação;
- Após finalizar, submeta um pull request e aguarde nossa avaliação;
Você deverá desenvolver um aplicativo de streaming de vídeo em React Native. Este aplicativo deverá possuir um CMS desenvolvido em PHP/Laravel para gerenciamento de conteúdo do aplicativo e uma API para fornecer a comunicação necessária para o aplicativo. A API também deve ser desenvolvida em PHP e pode ser feita usando o Laravel ou Lumen.
Esta plataforma deve atender as seguintes histórias:
- Eu como usuário do aplicativo desejo criar uma conta;
- Eu como usuário do aplicativo desejo realizar login;
- Eu como usuário do aplicativo desejo recuperar minha senha;
- Eu como usuário do aplicativo desejo listar as categorias de vídeos;
- Eu como usuário do aplicativo desejo assistir um vídeo;
- Eu como usuário do aplicativo desejo avaliar o vídeo;
- Eu como usuário do aplicativo desejo visualizar os comentários do vídeo;
- Eu como usuário do aplicativo desejo postar um comentário no vídeo;
- Eu como usuário do aplicativo desejo atualizar meu perfil;
- Eu como usuário do aplicativo desejo atualizar minha foto de perfil;
- Eu como usuário do CMS desejo gerenciar as categorias;
- Eu como usuário do CMS desejo gerenciar os vídeos;
- Eu como usuário do CMS desejo moderar os comentários;
- Eu como usuário do CMS desejo gerenciar os usuários do aplicativo;
O cadastro/perfil do usuário do aplicativo deve conter as seguintes informações:
- nome
- telefone
- cpf
- senha
- confirmação de senha
Observações:
- Sua aplicação mobile DEVE se comunicar com sua API;
- Você DEVE utilizar o banco de dados MySQL para o CMS/API.
- Você DEVE colocar validação nos formulários do aplicativo e CMS;
- Você DEVE colocar mascara nos campos de CPF e Telefone no aplicativo;
Serão considerados diferenciais:
- o uso de banco de dados no aplicativo mobile
- desenvolvimento de testes unitários em qualquer uma das aplicações
- uso de styled components ou styled system no aplicativo mobile
- uso de livewire no cms