- Todos os interessados que fizerem Pull Request (a partir de um fork deste repositório) receberão um feedback da Tania Bulhões.
- Essa prova consiste em testar seus conhecimentos em desenvolvimento de fullstack web applications
- Estamos priorizando desenvolvedores com experiência na stack NodeJS + React, portanto no momento não avaliaremos PRs em que o Dev entregue uma solução que utiliza uma stack diferente para desenvolvê-la.
- React
- NodeJS
- SQL Database (Postgres, Mysql, MariaDB)
- Utilizar Typescript
- Arquitetura MVC para a API
- Repositório Github
- Instruções no README.md do repositório para rodar a aplicação de forma local
- Faça um fork deste repositório (https://docs.github.com/en/get-started/quickstart/fork-a-repo)
- Após finalizar a prova, crie um Pull Request do fork para a
main
deste repositório, para ser analisado por nós. :D (https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) - Na descrição do PR, deixe qualquer diretiva necessária para rodar o projeto (Comandos para rodar a aplicação, testes, etc), bem como dependências (banco de dados, etc) localmente.
- Caso tenha dificuldades com qualquer etapa deste processo, nos acione que ficaremos felizes em lhe ajudar (contatos descritos no final deste página)
A prova consiste em criar uma aplicação web simples de To Do List (Lista de tarefas).
Sinta-se à vontade para utilizar quaisquer libs que desejar (Axios, Dio, TypeORM, Sequelize, etc).
O software deve ser dividido em 3 camadas isoladas:
- Banco de dados:
- Deve ser relacional e só pode ser acessado a partir do backend, nunca diretamente da camada de frontend
- Backend:
- Deve se comunicar com o banco de dados e expor os recursos necessários para a camada de frontend através de endpoints de uma REST API.
- Frontend:
- Deve se comunicar com o backend através da API desenvolvida e entregar a experiência do software ao usuário.
A aplicação deve conter no mínimo 4 telas, sendo 3 delas privadas e 1 pública. Sendo elas:
- Tela de Login (Pública)
- Tela de Listagem de Tarefas (Privada)
- Nesta tela devemos ser capazes de excluir uma tarefa
- Tela de Cadastro de uma Nova Tarefa (Privada)
- Tela de Edição de uma Nova Tarefa (Privada)
- Nesta tela devemos ser capazes de excluir uma tarefa
Deve conter no app as seguintes funcionalidades:
- Listagem de tarefas
- Criação de nova tarefa
- Edição e exclusão de tarefa
- Exibir alerta de confirmação de exclusão
- Exibir Toaster feedbacks para erros que acontecerem na aplicação
- Utilizar alguma estrutura para gerenciamento de estado global da aplicação (Context API, Redux, Hooks, etc)
- OAuth via JWT token no fluxo de login do usuário
- Autenticação JWT token em todos os endpoints privados da API
Obs.: Sinta-se livre para implementar o estilo visual que preferir, utilizando qualquer framework css de sua preferência (styles-components, ant, material, bootstrap, etc). Avaliaremos apenas se a experiência de navegação do usuário está simples, objetiva e fluida
- Utilizar NextJS para o desenvolvimeto do frontend da aplicação
- Tela de cadastro de usuário com os seguintes campos:
- Nome
- Senha
- Campo de busca de tarefas (por título) na tela de listagem
- Testes unitários
- Link hospedado para homologação (Pode ser um preview da Vercel, caso utilize o NextJS como framework para desenvolvimento)
- Todos os dados devem ser salvos em um banco de dados relacional de sua escolha.
- As telas privadas só podem ser acessadas na aplicação após login.
caua.rezende@taniabulhoes.com.br
Company Presentation: https://tbi.taniabulhoes.com.br/
Ecommerce: https://www.taniabulhoes.com.br/