Supplier Portal

📋 Tasks Detalhadas para Linear - Portal do Fornecedor

📋 Tasks Detalhadas para Linear - Portal do Fornecedor

🎯 Epic: Sistema de Licitações e Propostas

Objetivo: Implementar sistema completo de visualização de licitações e envio de propostas para fornecedores.

Estimativa Total: 80 story points (~2 semanas)


🏃 Sprint 1: Foundation (40 points)

🔧 Task Group 1: Infraestrutura Base (8 points)

FORN-001: Configurar Pinia Stores

  • Pontos: 3
  • Prioridade: Alta
  • Descrição: Implementar stores Pinia para gerenciamento de estado global
  • Critérios de Aceite:
    • Store de licitações criada com actions e getters
    • Store de propostas configurada
    • Store de usuário/autenticação funcional
    • Persistência de estado implementada
  • Detalhes Técnicos:
    // stores/orders.ts
    - Estado: orders[], filters, pagination, loading
    - Actions: fetchOrders, updateFilters, toggleFavorite
    - Getters: filteredOrders, urgentOrders, stats
    

FORN-002: Implementar Sistema de Notificações Toast

  • Pontos: 2
  • Prioridade: Alta
  • Descrição: Sistema de feedback visual para ações do usuário
  • Critérios de Aceite:
    • Componente Toast criado
    • Suporte a tipos: success, error, warning, info
    • Auto-dismiss configurável
    • Queue de múltiplas notificações
    • Animações de entrada/saída
  • Dependências: Nenhuma

FORN-003: Setup Error Boundaries e Handlers Globais

  • Pontos: 3
  • Prioridade: Alta
  • Descrição: Tratamento robusto de erros em toda aplicação
  • Critérios de Aceite:
    • Error boundary component implementado
    • Global error handler configurado
    • Logging de erros estruturado
    • Fallback UI para erros
    • Integração com Sentry (opcional)

📊 Task Group 2: Dashboard Funcional (12 points)

FORN-004: Integrar API Dashboard com Backend

  • Pontos: 5
  • Prioridade: Alta
  • Descrição: Conectar dashboard com endpoint /api/v1/fornecedor/dashboard
  • Critérios de Aceite:
    • Composable useDashboardMetrics funcional
    • Loading states implementados
    • Error handling configurado
    • Cache de 5 minutos
    • Refresh manual disponível
  • API Endpoint: GET /api/v1/fornecedor/dashboard

FORN-005: Implementar Cards de Métricas Animados

  • Pontos: 3
  • Prioridade: Média
  • Descrição: Cards visuais para métricas do dashboard
  • Critérios de Aceite:
    • 4 cards principais: Licitações Ativas, Propostas Enviadas, Taxa Conversão, Valor Total
    • Animação count-up nos números
    • Indicadores de variação (↑↓)
    • Skeleton loading
    • Responsivo mobile/desktop

FORN-006: Adicionar Gráficos ao Dashboard

  • Pontos: 4
  • Prioridade: Média
  • Descrição: Visualizações de dados com Chart.js
  • Critérios de Aceite:
    • Gráfico de propostas por mês (linha)
    • Gráfico de status de propostas (pizza)
    • Interatividade (hover, tooltips)
    • Responsivo
    • Export PNG/PDF

📋 Task Group 3: Listagem de Licitações (20 points)

FORN-007: Implementar Virtual Scrolling

  • Pontos: 5
  • Prioridade: Alta
  • Descrição: Performance para listas grandes com @tanstack/vue-virtual
  • Critérios de Aceite:
    • Virtual scroller implementado
    • Suporte a 10.000+ items
    • Smooth scrolling
    • Dynamic height calculation
    • Mobile optimized

FORN-008: Criar OrderCard Component

  • Pontos: 4
  • Prioridade: Alta
  • Descrição: Card individual para exibição de licitação
  • Critérios de Aceite:
    • Design conforme mockup
    • Badges de urgência/novo
    • Progress bar de tempo restante
    • Botões Ver Detalhes e Enviar Proposta
    • Animações hover/click
    • Favoritos funcional

FORN-009: Implementar Filtros Server-side

  • Pontos: 5
  • Prioridade: Alta
  • Descrição: Sistema de filtros conectado ao backend
  • Critérios de Aceite:
    • Filtro por categoria de produto
    • Filtro por estado/região
    • Filtro por prazo
    • Filtro por valor (range)
    • Search por texto
    • URL params sincronizados

FORN-010: Adicionar Paginação Infinita

  • Pontos: 3
  • Prioridade: Média
  • Descrição: Scroll infinito com intersection observer
  • Critérios de Aceite:
    • Auto-load ao chegar no fim
    • Loading indicator
    • "Fim dos resultados" message
    • Error retry
    • Performance optimized

FORN-011: Sistema de Favoritos Local

  • Pontos: 3
  • Prioridade: Baixa
  • Descrição: Marcar licitações como favoritas
  • Critérios de Aceite:
    • Toggle favorito no card
    • Persistência localStorage
    • Filtro "Apenas favoritos"
    • Badge count no filtro
    • Sync entre abas

🏃 Sprint 2: Sistema de Propostas (40 points)

📝 Task Group 4: Formulário de Proposta (25 points)

FORN-012: Estrutura Multi-step Form

  • Pontos: 5
  • Prioridade: Alta
  • Descrição: Wizard para criação de proposta
  • Critérios de Aceite:
    • 3 steps: Produtos/Preços, Condições, Revisão
    • Progress indicator
    • Navigation prev/next
    • Step validation
    • Mobile responsive

FORN-013: Implementar Tabela de Itens/Preços

  • Pontos: 6
  • Prioridade: Alta
  • Descrição: Interface para inserir preços unitários
  • Critérios de Aceite:
    • Lista todos os itens da licitação
    • Input de preço unitário por item
    • Cálculo automático de subtotal
    • Total geral em tempo real
    • Formatação monetária
    • Validação de valores

FORN-014: Sistema de Auto-save

  • Pontos: 4
  • Prioridade: Alta
  • Descrição: Salvamento automático de rascunhos
  • Critérios de Aceite:
    • Save a cada 30 segundos
    • Save on change (debounced 2s)
    • Indicador visual de saving
    • Recuperação de draft
    • Limpeza após envio

FORN-015: Validação com Yup/Zod

  • Pontos: 3
  • Prioridade: Alta
  • Descrição: Validação robusta de formulários
  • Critérios de Aceite:
    • Schema de validação completo
    • Mensagens de erro em português
    • Validação em tempo real
    • Highlight campos com erro
    • Summary de erros

FORN-016: Calculadora de Competitividade

  • Pontos: 4
  • Prioridade: Média
  • Descrição: Indicador visual de competitividade do preço
  • Critérios de Aceite:
    • Barra de competitividade
    • Labels: Muito Competitivo, Na Média, Caro
    • Baseado em histórico
    • Cores indicativas
    • Tooltip com detalhes

FORN-017: Sidebar de Resumo Fixa

  • Pontos: 3
  • Prioridade: Média
  • Descrição: Resumo em tempo real da proposta
  • Critérios de Aceite:
    • Sticky sidebar desktop
    • Bottom sheet mobile
    • Lista de itens com subtotais
    • Total geral destacado
    • Botões de ação

📤 Task Group 5: Upload e Integração (15 points)

FORN-018: Sistema de Upload de Documentos

  • Pontos: 5
  • Prioridade: Alta
  • Descrição: Upload drag-and-drop de arquivos
  • Critérios de Aceite:
    • Drag and drop area
    • Click to browse
    • Multiple files support
    • Progress bar
    • File preview
    • Delete uploaded files

FORN-019: Validação e Compressão de Arquivos

  • Pontos: 3
  • Prioridade: Alta
  • Descrição: Validação client-side de uploads
  • Critérios de Aceite:
    • Validação de tipo (PDF, JPG, PNG)
    • Validação de tamanho (max 10MB)
    • Compressão de imagens
    • Erro messages claros
    • Retry failed uploads

FORN-020: Integração POST Proposta com API

  • Pontos: 5
  • Prioridade: Alta
  • Descrição: Envio completo da proposta ao backend
  • Critérios de Aceite:
    • Endpoint POST /api/v1/fornecedor/propostas
    • Payload completo formatado
    • Loading state durante envio
    • Success feedback
    • Error handling
    • Redirect após sucesso

FORN-021: Modal de Confirmação de Envio

  • Pontos: 2
  • Prioridade: Média
  • Descrição: Confirmação antes de enviar proposta
  • Critérios de Aceite:
    • Modal com resumo completo
    • Valor total destacado
    • Lista de documentos
    • Botões Cancelar/Confirmar
    • Loading durante envio

🚀 Sprint 3: Polish & Excellence (Opcional)

✨ Task Group 6: Melhorias UX (20 points)

FORN-022: Sugestão de Preços com IA

  • Pontos: 8
  • Prioridade: Baixa
  • Descrição: Sistema inteligente de sugestão de preços
  • Critérios de Aceite:
    • Botão "Sugerir Preço"
    • Baseado em histórico
    • Considerações de volume
    • Insights contextuais
    • Aplicar com 1 clique

FORN-023: Real-time Updates (WebSocket)

  • Pontos: 6
  • Prioridade: Baixa
  • Descrição: Atualizações em tempo real
  • Critérios de Aceite:
    • Pusher/Socket.io setup
    • Novas licitações notificadas
    • Updates de status
    • Counter de novas
    • Sound notification (opcional)

FORN-024: PWA Features

  • Pontos: 4
  • Prioridade: Baixa
  • Descrição: Progressive Web App capabilities
  • Critérios de Aceite:
    • Service Worker
    • Offline support
    • Install prompt
    • Push notifications
    • App manifest

FORN-025: Dark Mode

  • Pontos: 2
  • Prioridade: Baixa
  • Descrição: Tema escuro opcional
  • Critérios de Aceite:
    • Toggle switch
    • Persistência preferência
    • Smooth transition
    • All components support
    • System preference detection

📊 Estimativas Consolidadas

Por Sprint:

  • Sprint 1: 40 points (~1 semana)
  • Sprint 2: 40 points (~1 semana)
  • Sprint 3: 20 points (~3 dias) - Opcional

Por Desenvolvedor:

  • Frontend Senior: 60 points
  • Frontend Pleno: 20 points
  • Backend: 10 points (ajustes API)
  • QA: 10 points (testes)

Dependências Críticas:

  1. API endpoints funcionais (backend)
  2. Dados de teste realistas
  3. Credenciais de produção (APIs externas)
  4. Assets visuais (ícones, imagens)

🎯 Definition of Done

Para cada task ser considerada completa:

Code:

  • Código implementado conforme especificação
  • Code review aprovado
  • Sem warnings no console
  • Lint passa sem erros

Testing:

  • Unit tests escritos (quando aplicável)
  • Testado manualmente em Chrome, Safari, Firefox
  • Testado em mobile (iPhone/Android)
  • Edge cases testados

Documentation:

  • Comentários em código complexo
  • README atualizado se necessário
  • Storybook atualizado (componentes)

Performance:

  • Lighthouse score > 90
  • Bundle size otimizado
  • Sem memory leaks

Accessibility:

  • ARIA labels apropriados
  • Navegação por teclado funcional
  • Screen reader testado

🚦 Fluxo no Linear

Labels Sugeridas:

  • frontend - Tasks de frontend
  • backend - Tasks de backend
  • urgent - Prioridade máxima
  • blocked - Dependência não resolvida
  • ready - Pronto para desenvolvimento
  • in-review - Em code review
  • qa - Em testes

Workflow:

  1. Backlog → Task criada
  2. Ready → Dependências resolvidas
  3. In Progress → Em desenvolvimento
  4. In Review → Code review
  5. QA → Testes
  6. Done → Completa

Templates de Task:

Bug:

**Descrição:**
[Descreva o bug]

**Passos para Reproduzir:**
1.
2.
3.

**Comportamento Esperado:**
[O que deveria acontecer]

**Comportamento Atual:**
[O que está acontecendo]

**Screenshots:**
[Se aplicável]

**Ambiente:**
- Browser:
- Device:
- OS:

Feature:

**User Story:**
Como [tipo de usuário]
Eu quero [funcionalidade]
Para que [benefício]

**Critérios de Aceite:**
- [ ] Critério 1
- [ ] Critério 2

**Detalhes Técnicos:**
[Especificações técnicas]

**Mockups/Design:**
[Links ou imagens]

📈 Métricas de Acompanhamento

Velocity:

  • Sprint 1: 40 points (target)
  • Sprint 2: 40 points (target)
  • Sprint 3: 20 points (target)

Burndown:

Acompanhar diariamente no Linear

Quality Metrics:

  • Bug rate: < 2 por sprint
  • Test coverage: > 80%
  • Code review turnaround: < 4h

Tasks preparadas para importação no LinearData: Janeiro/2025Total: 25 tasks principais

Copyright © 2026