3. Casos de Uso e Requisitos - Moutt/ENGENHARIA-DE-SOFTWARE GitHub Wiki

Casos de Uso e Requisitos

Diagrama de Casos de Uso

![Diagrama de Casos de Uso] image


Especificação de Casos de Uso

Caso de Uso: Publicar Projeto

Campo Descrição
Nome Publicar Projeto
Atores Empresa
Descrição Permite que a empresa publique um novo projeto na plataforma.
Pré-condições A empresa deve estar autenticada.
Pós-condições Projeto é exibido na listagem pública para fornecedores.
Fluxo Principal 1. Empresa acessa a opção “Publicar Projeto”.2. Preenche informações como título, descrição, prazo e requisitos.3. Sistema salva e publica o projeto.

Caso de Uso: Explorar Projetos

Campo Descrição
Nome Explorar Projetos
Atores Prestador de Serviço
Descrição Permite que prestadores de serviço naveguem pelos projetos disponíveis.
Pré-condições O prestador de serviço deve estar autenticado.
Pós-condições O sistema exibe uma lista de projetos compatíveis com o perfil do usuário.
Fluxo Principal 1. Prestador acessa a seção “Projetos”.2. Filtra projetos por área, prazo ou valor.3. Sistema exibe lista de projetos com informações básicas.

Caso de Uso: Realizar Projeto

Campo Descrição
Nome Realizar Projeto
Atores Prestador de Serviço
Descrição Permite que o prestador execute as tarefas do projeto conforme acordado.
Pré-condições Projeto deve estar previamente aceito pela empresa.
Pós-condições Projeto é entregue na plataforma.
Fluxo Principal 1. Prestador e empresa entram em acordo para realização do projeto.2. Acessa briefing, documentos e requisitos.3. Realiza entregas parciais ou finais no sistema.

Caso de Uso: Avaliar Empresa

Campo Descrição
Nome Avaliar Empresa
Atores Prestador de Serviço
Descrição Permite que o prestador de serviço avalie a empresa após a finalização do projeto.
Pré-condições Projeto deve ter sido concluído.
Pós-condições Avaliação é registrada e exibida no perfil da empresa.
Fluxo Principal 1. Após concluir projeto, prestador acessa a opção “Avaliar Empresa”.2. Dá nota e insere comentário.3. Sistema salva avaliação.

Caso de Uso: Avaliar Prestador de Serviço

Campo Descrição
Nome Avaliar Prestador de Serviço
Atores Empresa
Descrição Permite que a empresa avalie a atuação do prestador após o término do projeto.
Pré-condições Projeto deve estar finalizado.
Pós-condições Avaliação é registrada e exibida no perfil do prestador.
Fluxo Principal 1. Após entrega, empresa acessa “Avaliar Prestador”.2. Preenche nota e feedback.3. Sistema armazena avaliação.

Caso de Uso: Retirar Projetos

Campo Descrição
Nome Retirar Projetos
Atores Empresa
Descrição Permite que a empresa remova um projeto publicado antes da contratação.
Pré-condições Projeto não pode ter sido aceito ainda por nenhum prestador.
Pós-condições Projeto é removido da listagem pública.
Fluxo Principal 1. Empresa acessa “Meus Projetos”.2. Escolhe projeto e clica em “Remover”.3. Sistema solicita confirmação e retira projeto.

Caso de Uso: Concluir Projeto

Campo Descrição
Nome Concluir Projeto
Atores Empresa, Prestador de Serviço, Instituição Financeira
Descrição Encaminha o projeto para encerramento e ativa o processo de pagamento.
Pré-condições Projeto deve estar entregue.
Pós-condições Projeto é marcado como concluído e pagamento é iniciado.
Fluxo Principal 1. Ambas as partes sinalizam término do projeto.2. Sistema registra o encerramento.3. Notifica instituição financeira para realizar o pagamento.

Diagrama de Estados

Diagrama da empresa image

Diagrama do freelancer image


Protótipo

Tela de Login

Protótipo – Login

Tela de Projetos Abertos

Protótipo – Projetos Abertos (lista)

Protótipo – Projetos Abertos (detalhes)


Requisitos Funcionais

  1. Cadastro e Autenticação

    • Permitir que empresas e desenvolvedores se cadastrem (nome, e-mail, senha, tipo de usuário).
    • Possibilitar login (e-mail/senha ou autenticação social, como Google/GitHub).
    • Permitir recuperação de senha via e-mail.
    • Exigir verificação de e-mail para ativar a conta.
  2. Perfis de Usuários

    • Desenvolvedores podem criar perfis detalhados (habilidades, experiência, portfólio, LinkedIn/GitHub).
    • Empresas podem cadastrar informações (nome, CNPJ, área de atuação, site).
    • Permitir upload de currículo (PDF) e foto de perfil.
  3. Publicação de Projetos/Demandas

    • Empresas criam projetos (título, descrição, habilidades necessárias, prazo, orçamento).
    • Classificar projetos por tipo (front-end, back-end, full-stack, mobile, etc.).
    • Definir nível de experiência exigido (Júnior, Pleno, Sênior).
  4. Busca e Filtros

    • Empresas buscam desenvolvedores por habilidades, experiência, localização (remoto/presencial) e avaliações.
    • Desenvolvedores buscam projetos por tecnologias, remuneração e prazo.
    • Sistema de recomendação baseado em correspondência de habilidades.
  5. Propostas e Contratação

    • Desenvolvedores enviam propostas para projetos (valor, prazo, mensagem).
    • Empresas revisam propostas e selecionam desenvolvedores.
    • Notificar ambas as partes quando uma proposta for aceita/rejeitada.
  6. Pagamentos e Financeiro

    • Integração com gateways de pagamento (Stripe, PayPal, PIX).
    • Sistema de pagamento seguro (escrow), liberando valores após aprovação do trabalho.
    • Emitir recibos e notas fiscais automaticamente.
  7. Comunicação

    • Chat interno entre empresas e desenvolvedores.
    • Notificações por e-mail e no app (novas propostas, mensagens, prazos).
  8. Avaliações e Reputação

    • Empresas avaliam desenvolvedores (estrelas, feedback).
    • Desenvolvedores avaliam empresas.
    • Exibir histórico de projetos concluídos e avaliações no perfil.
  9. Gestão de Projetos

    • Acompanhamento de prazos e entregas (com milestones, se aplicável).
    • Upload de arquivos/documentos relacionados ao projeto.
  10. Segurança e Privacidade

    • Criptografia de dados sensíveis (senhas, pagamentos).
    • Opção de perfis públicos/privados.
  11. Administração e Moderação

    • Painel admin para gerenciar usuários, projetos e denúncias.
    • Sistema de denúncia para comportamentos inadequados.

Requisitos Não Funcionais

  1. Desempenho

    • Tempo de resposta < 3 s (busca, carregamento de perfis, envio de mensagens).
    • Suporte a 10 000 usuários simultâneos sem perda de desempenho.
    • Otimização de consultas ao banco de dados.
  2. Escalabilidade

    • Arquitetura escalável (micro-serviços, contêineres ou serverless).
  3. Segurança

    • Dados sensíveis criptografados.
    • Proteção contra ataques (SQL Injection, XSS, CSRF, DDoS).
    • Autenticação de dois fatores (2FA).
  4. Disponibilidade e Confiabilidade

    • Uptime mínimo de 99,9 %.
    • Backup automático diário dos dados importantes.
  5. Usabilidade

    • Interface responsiva.
    • Tempo de carregamento inicial < 2 s.
    • Suporte a navegadores modernos (Chrome, Firefox, Safari, Edge).
  6. Compatibilidade

    • Funcionamento em dispositivos móveis (Android e iOS) via navegador e app nativo.
    • Integração com APIs de terceiros (GitHub, LinkedIn, PayPal).
  7. Manutenibilidade

    • Logs detalhados para monitoramento de erros e auditoria.
    • Código limpo e documentado, seguindo boas práticas.
  8. Legal e Compliance

    • Geração automática de contratos digitais entre empresas e freelancers.
    • Registro de logs para disputas jurídicas.