Finoo
Engenheiro de Software (Frontend - Vue)
Out 2024 → Fev 2025
Finoo Partner - Dashboard e Gestão de Estudantes em Vue 3
Assumi a evolução de um portal de parceiros (SPA em Vue 3), melhorando o Dashboard de KPIs e o fluxo de gestão de estudantes (convites, tabelas e detalhes), enquanto fortalecia composables de API e a consistência de UI.
Stack
Vue 3 (Composition API)
TypeScript
Vite
Tailwind CSS
@tanstack/vue-query
Axios
Radix Vue
Unovis
Métricas
42 commits (~57% do repo)
4+ áreas tocadas (Auth, Dashboard, Students, Settings)
Entrega contínua até Fev/2025 (merges/PRs)
Resumo
- Entrega: evolução do Dashboard (KPIs/gráficos/atalhos) e do módulo de Gestão de Estudantes (listagens, convites e detalhes).
- Como eu destravei: consolidação de composables de API (partner + invites) e reforço de padrões de UI compartilhados para manter telas previsíveis.
- Efeito prático: telas mais consistentes, fluxo de convites mais completo (incl. CSV) e melhorias de UX em auth/settings.
Ao longo de ~5 meses, eu assumi uma fatia do portal com foco em UX/DX e previsibilidade, sob a restrição de baixa cobertura de testes automatizados e necessidade de entregar mudanças incrementais com segurança.
Contexto
- Produto e usuários: SPA para parceiros/administradores acompanharem KPIs e executarem operações de gestão de estudantes (convites, listagens e detalhes).
- Por que era crítico: dashboard + operações diárias (convites/gestão) são fluxos de alta frequência - regressões geram atrito operacional imediatamente.
- Restrições reais: com pouca automação de testes, eu precisei reduzir risco via padrões, tipagem e mudanças incrementais.
Principais desafios
- Manter consistência visual e previsibilidade entre áreas diferentes (KPIs, tabelas e formulários).
- Evoluir integrações de API sem espalhar regras por componentes (evitando acoplamento e retrabalho).
- Melhorar UX em fluxos sensíveis (auth/settings) com mudanças pequenas e frequentes sem quebrar caminhos críticos.
O que eu fiz
- Dashboard (Home): evoluí cards/KPIs, gráficos e detalhes de layout para melhorar leitura e ação rápida.
- Gestão de Estudantes: melhorei UI e funcionalidade de convites e listas, incluindo upload por CSV para operações em lote e refinamentos nas tabelas.
- Base para escalar (camada de dados): criei/estruturei composables de API (partner + invites) para reduzir duplicação e manter integrações mais fáceis de evoluir.
- Polimento operacional (micro-UX): melhorias de feedback e usabilidade (toasts de sucesso, UX de formulários, toggle/autocomplete de senha) e ajustes no header para exibir contexto do partner.
Decisões & trade-offs
- Composables de API > lógica espalhada em componentes: centralizar chamadas e tipos reduziu regressões e acelerou novas telas.
Trade-off: adiciona uma camada de abstração que exige convenções e onboarding. - Evolução incremental > refactor “big bang”: commits menores e revisáveis ajudaram a controlar risco em produção.
Trade-off: parte da dívida legada permanece até existir uma janela de estabilização. - Exemplo específico: entreguei upload de CSV no fluxo de convite para destravar operações em lote.
Trade-off: demanda validação/tratamento de erros e feedback claro na UI.
Resultados
- Medido (engenharia): 42 commits (~57% do repositório no recorte analisado).
- Proxy técnico (concreto):
- Evolução do Dashboard (KPIs/cards/gráficos) e melhorias na Gestão de Estudantes (listas/convites/detalhes).
- Fluxo de convites em lote via CSV entregue, com refactors relevantes em tabelas e handling de convites.
- Melhorias de UX em auth/settings (autocomplete, toggle de senha, toasts) e ajustes no header com contexto do partner.
- Operacional: aumentei a previsibilidade para evolução contínua ao apoiar o produto em composables + padrões de UI compartilhados, reduzindo retrabalho e tornando mudanças mais seguras.
Nota: métricas sensíveis podem estar em dashboards internos; evidências redigidas podem ser organizadas sob solicitação.
O que eu faria diferente
- Adicionar uma base mínima de testes automatizados (componentes críticos + smoke flows) para reduzir risco de regressão.
- Definir um Definition of Done leve (lint/build + checagens-chave de UX) para estabilizar qualidade.
- Formalizar um padrão único para forms/tables (validação, estados de loading/error, empty states) para reduzir variação entre telas.