🤔[Dúvida] Requisitos mínimos para descrição de projeto em site de freelancers
Olá todos! Gostaria da avaliação de qual seria o nível de detalhe mínimo na descrição de um projeto para contratação de freelancers.
Publiquei pela primeira vez um projeto na plataforma Workana e me surpreendi com a quantidade de problemas simples que o desenvolvedor contratado não tratou.
Então, além de comentar sobre a descrição mínima necessária, peço que também avaliem se a descrição que ofereci foi suficiente ou não. Segue o texto:
Descrição do Projeto
Aplicação contendo as seguintes características:
- Tela de autenticação (frontend) em Next.js com captcha e 2FA com Google Authenticator e token JWT
- Autenticação da api com jwt
- middleware graphql em node.js (PostGraphile)
- Backend com functions no PostgreSQL expostas pelo PostGraphile
- Tela CRUD para cadastro de usuários, grupos e permissões.
Para fins de desenvolvimento poderá ser criada uma estrutura de banco de dados qualquer. Para autenticação, devem ser utilizados colunas de nome de usuário e senha, sendo a senha criptografada com hash + salt aleatório.
O ambiente de desenvolvimento / produção utilizará containers Docker.
- Um container servindo de proxy reverso (NGINX)
- Um container para o banco de dados PostgreSQL
- Um container para servir o frontend (Next.js)
- Um container Redis para cache e gerenciamento de sessão.
- Um container para o middleware (Node.js + PostGraphile + Socket.io + REST etc)
Problemas encontrados
Entre as falhas na entrega destaco as seguintes:
- Ao cadastrar um usuário não é feita a validação dos campos do formulário, permitindo inserir um registro com todos os campos em branco.
- Ao salvar as permissões de um grupo, as permissões (rotas) existentes no formulário são inseridas novamente todas as vezes, crescendo exponencialmente o número de permissões.
- Não eram exibidas mensagens de feedback para o usuário, informando que o registro foi salvo, excluído ou inserido.
- Ao clicar no botão "Search", a busca funciona apenas com a correspondência exata da palavra. Exemplo: ao buscar pelo usuário teste, se digitar apenas
tes
nenhum resultado será exibido. Se houver 02 ou mais usuários iniciando comteste
, exemplo,teste1
eteste2
, somente será exibida a correspondência exata da pesquisa. Outro problema é que após clicar no botão "Search" não há uma forma de limpar a busca. Então se a pesquisa não encontrar nenhum resultado a tela fica sem registros não há uma forma de exibir novamente todos os usuários. - Ao clicar em "Add user" ou "Add group", as informações preenchidas no cadastro anterior permanecem no formulário.
- A verificação de permissão de acesso a uma rota ocorre por meio da verificação da última palavra. Neste caso, se houver duas rotas como /recursoX/editar e /outroRecurso/editar e houver uma permissão para rota chamada "editar", o usuário teria permissão nas duas rotas mesmo sendo para recursos diferentes.
Bem, esses foram alguns dos erros que ocorreram durante o desenvolvimento do projeto. Então... esses erros se devem mais a falhas na descrição do projeto ou devido a experiência / comprometimento do desenvolvedor (que se identifica como sênior)?