A rede social Parrot é um sistema white label (ou seja, um sistema modelo criado por uma empresa que pode ser reutilizado por outras, apenas modificando informações como logo e marca) do qual condomínios podem contratar para incentivar a interação entre os moradores. A plataforma permite que os usuários façam publicações que ficam visíveis para toda comunidade.
O desafio será desenvolvido por times de 3-4 pessoas, incluindo front-end e back-end. Lembre-se que comunicação é tudo em um projeto, estejam sempre alinhados sobre as demandas e prazos.
Os desenvolvedores do front-end serão responsáveis por criar as páginas com base no layout utilizando Bootstrap, Styled-components, React e Redux.
- Login
- Dados: email e senha
- Cadastro do Usuário
- Dados: Nome, email, senha, unidade/apartamento
- Feed (criar post, listas todos os posts)
- Página do usuario (posts do usuário)
É muito importante que vocês mantenham a comunicação com os devs do back-end para garantir que vão receber as informações necessárias para tornar as páginas dinâmicas e funcionais.
Os desenvolvedores do back-end serão responsáveis por construir a API utilizando Node.js, Express, Jest, Sequelize, MySQL e Arquitetura Limpa.
- Criação de banco de dados com base no DER (vide última página)via migrations
- utilizar seeders para popular o banco caso necessário
- API Rest com CRUD para usuários e publicações
- Autenticação de usuário
- Implementar Princípios SOLID na arquitetura
- Testes automatizados (unitários e integração), cobrir ao menos:
- controllers
- endpoint (casos de erro também)
Garanta que a API está de acordo com os dados esperados na aplicação front-end.
- Cadastro e autenticação do usuário
- Autenticação do administrador
- Perfil do usuário com lista de posts
- Criar Post
- Listar posts (Feed)
- Edição do Usuário
- Like
- Comentário em um post
- Utilização de Loading e Página de erros.
- Responsividade da aplicação
- Validação dos dados de response da API (retorno)
- Validação dos dados de request da API (enviados para a API)
- Feedback de erro na API (uso de código http condizente com o tipo de erro)
- Uso de testes automatizados
- Uso de migrations
- Migrations devem refletir as configurações propostas no documento DER
- Estrutura do código.
- Validação de formulário.
- Validação de erros na requisição.
- Feedback de erros para os usuários
- Divisão de tarefas entre os membros da equipe seguindo os princípios da Metodologia Ágil Scrum
- Utilizar boas práticas de versionamento de código com Git
Deverá ser enviado o link do Github pela plataforma da Gama Academy até à data informada no slack no envio deste documento.