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]
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
Diagrama do freelancer
Protótipo
Tela de Login
Tela de Projetos Abertos
Requisitos Funcionais
-
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.
-
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.
-
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).
-
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.
-
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.
-
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.
-
Comunicação
- Chat interno entre empresas e desenvolvedores.
- Notificações por e-mail e no app (novas propostas, mensagens, prazos).
-
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.
-
Gestão de Projetos
- Acompanhamento de prazos e entregas (com milestones, se aplicável).
- Upload de arquivos/documentos relacionados ao projeto.
-
Segurança e Privacidade
- Criptografia de dados sensíveis (senhas, pagamentos).
- Opção de perfis públicos/privados.
-
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
-
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.
-
Escalabilidade
- Arquitetura escalável (micro-serviços, contêineres ou serverless).
-
Segurança
- Dados sensíveis criptografados.
- Proteção contra ataques (SQL Injection, XSS, CSRF, DDoS).
- Autenticação de dois fatores (2FA).
-
Disponibilidade e Confiabilidade
- Uptime mínimo de 99,9 %.
- Backup automático diário dos dados importantes.
-
Usabilidade
- Interface responsiva.
- Tempo de carregamento inicial < 2 s.
- Suporte a navegadores modernos (Chrome, Firefox, Safari, Edge).
-
Compatibilidade
- Funcionamento em dispositivos móveis (Android e iOS) via navegador e app nativo.
- Integração com APIs de terceiros (GitHub, LinkedIn, PayPal).
-
Manutenibilidade
- Logs detalhados para monitoramento de erros e auditoria.
- Código limpo e documentado, seguindo boas práticas.
-
Legal e Compliance
- Geração automática de contratos digitais entre empresas e freelancers.
- Registro de logs para disputas jurídicas.