adailtonasp / adahack-2024-backend

Repositório de materiais de apoio para a produção dos cases da trilha de backend da Ada Hack 2024
1 stars 2 forks source link

Estabelecer MVP #27

Closed Sownatta closed 7 months ago

Sownatta commented 7 months ago

Estabelecer os requisitos essenciais e definir as funcionalidades mínimas necessárias para lançar o MVP do projeto.

Sownatta commented 7 months ago

Uma vez que empresa está comprometida em aumentar a diversidade em seu quadro de colaboradores e enfrenta desafios na identificação e promoção da diversidade, sendo com principal, a falta de ferramentas e sistemas para avaliar e monitorar efetivamente a diversidade dentro da empresa. Esta solução dará uma maneira sistemática de acompanhar métricas de diversidade. Como resultado, as capacidades de identificar lacunas na diversidade, implementar iniciativas de inclusão e avaliar seu impacto serão grandemente incrementadas.

Funcionalidades definidas:

1. Cadastro e Login de Usuários

Requisitos definidos para o projeto:

Funcionais

  1. Cadastro de Usuários:

    • RF1: Permitir que o usuário acesse a rota de cadastro.
    • RF2: Oferecer um formulário de cadastro para o usuário preencher com suas informações pessoais.
    • RF3: Permitir que o usuário selecione o tipo de usuário (funcionário, RH, candidato).
    • RF4: Validar os dados fornecidos pelo usuário durante o processo de cadastro.
    • RF5: Confirmar o cadastro e redirecionar o usuário para a rota de login após a validação bem-sucedida.
  2. Login de Usuários:

    • RF6: Permitir que o usuário acesse a rota de login.
    • RF7: Fornecer campos de login para o usuário preencher (e-mail/username, senha).
    • RF8: Validar as credenciais fornecidas pelo usuário durante o processo de login.
    • RF9: Redirecionar o usuário para a área correta do sistema com base no perfil do usuário (funcionário, RH, candidato) após a validação bem-sucedida.
  3. Divisão de Perfis de Usuários:

    • RF10: Para os administradores (RH), fornecer acesso total ao sistema, incluindo gerenciamento de funcionários, recrutamento, listagem de funcionários, listagem de candidatos, análise de dados demográficos dos funcionários e análise de dados demográficos dos candidatos.
    • RF11: Para os funcionários, permitir acesso apenas às informações pessoais.
    • RF12: Para os candidatos, permitir acesso ao formulário de candidatura de emprego e acompanhamento do status de candidatura.
  4. Cadastro de Vagas:

    • RF13: Permitir que o time de RH cadastre vagas fornecendo as informações pertinentes sobre a nova vaga de emprego, incluindo título da vaga, descrição da vaga, requisitos necessários, localização da vaga, tipo de contrato e data de encerramento da candidatura.
    • RF14: Validar os dados fornecidos pelo RH para garantir que estão completos e corretos.
    • RF15: Permitir o cadastro da vaga no sistema após a validação bem-sucedida.
    • RF16: Exibir uma mensagem de confirmação após o cadastro da vaga.
  5. Listagem de Vagas:

    • RF17: Permitir que os candidatos acessem a página de listagem de vagas.
    • RF18: Exibir uma lista das vagas de emprego atualmente disponíveis.
    • RF19: Oferecer opções de filtros para que os candidatos possam refinar a lista de vagas exibidas, como por título, localização, tipo de contrato, etc.
    • RF20: Permitir que o usuário clique em uma vaga para visualizar mais detalhes, como descrição completa, requisitos, data de encerramento da candidatura, etc.
  6. Coleta de Dados Demográficos:

    • RF21: Os dados demográficos dos funcionários e candidatos devem ser coletados durante o processo de cadastro.
    • RF22: Garantir que os dados demográficos sejam armazenados em uma estrutura adequada no banco de dados.
  7. Processamento de Dados:

    • RF23: O sistema deve processar os dados demográficos para calcular a representação percentual de cada classe demográfica, como gênero, etnia e idade.
    • RF24: Os cálculos de representação percentual devem ser precisos e atualizados regularmente.
  8. Apresentação de Resultados:

    • RF25: Disponibilizar dados dos resultados da análise ao RH.
    • RF26: Os resultados devem mostrar a distribuição percentual de diferentes classes demográficas no quadro de colaboradores e candidatos.
    • RF27: Permitir que o time de RH filtre e visualize os dados demográficos por diferentes categorias, como funcionário, candidato, etc.

Não Funcionais

  1. Desempenho:

    • RNF1: O sistema deve ter um tempo de resposta rápido, especialmente durante operações críticas como cadastro e pesquisa de candidatos.
    • RNF2: Deve ser escalável para lidar com um grande volume de cadastros e consultas.
  2. Manutenibilidade:

    • RNF3: O sistema deve ser desenvolvido utilizando conceitos de Programação Orientada a Objetos (POO), com injeção de dependências para facilitar a manutenção do código.
    • RNF4: Deve ter validações para evitar o recebimento de informações nulas, garantindo a integridade dos dados no banco de dados SQL.
  3. Documentação técnica detalhada:

    • RNF5: Deve haver uma documentação técnica que descreva a arquitetura, tecnologias, modelos de dados e outras decisões de design da API.
  4. Segurança:

    • RNF6: Garantir a segurança dos dados dos usuários, incluindo medidas para proteger informações sensíveis e garantir conformidade com regulamentações de privacidade de dados, controle de acesso, autenticação e autorização.
  5. Escalabilidade:

    • RNF7: O sistema deve ser projetado para escalar facilmente, permitindo a adição de novos usuários e funcionalidades sem comprometer o desempenho.
  6. Seguir modelo Git Flow e Conventional Commits:

    • RNF8: Separação de branches, com feature/nome-da-branch para o desenvolvimento de novas funcionalidades e, uma vez que uma etapa de desenvolvimento esteja concluída e as alterações estejam mescladas na branch develop, deve ser criada uma branch release/nome-da-branch para mergear na main branch.
    • RNF9: Usar commits padronizados para ajudar a manter um histórico de commit limpo, organizado e fácil de entender.