image

Accede a bootcamps ilimitados y a más de 750 cursos para siempre

70
%OFF
Renan Teixeira
Renan Teixeira18/07/2026 10:56
Compartir

Usando o Cursor para o desafio de projeto Criando um APP de Organização de Finanças Pessoais

    Desenvolver uma aplicação completa normalmente envolve muitas decisões: entender o problema, definir as funcionalidades, escolher as tecnologias, modelar o banco de dados, criar a API, desenvolver a interface e testar a integração entre todas essas partes.

    No desafio de projeto da DIO, decidi experimentar uma abordagem diferente. Em vez de utilizar a inteligência artificial apenas para gerar pequenos trechos de código, usei o Cursor como um parceiro durante todo o processo de desenvolvimento.

    O resultado foi o FinançaFácil, uma aplicação web de organização financeira que permite registrar receitas e despesas por meio de uma conversa simples.

    A ideia do projeto

    Muitas pessoas começam a controlar suas finanças, mas abandonam esse hábito depois de algum tempo. Um dos motivos é a quantidade de informações que normalmente precisam ser preenchidas para registrar uma simples despesa: valor, descrição, categoria, data, forma de pagamento e outras informações.

    Pensando nesse problema, a ideia central do FinançaFácil foi simplificar o registro financeiro.

    Em vez de preencher um formulário, o usuário pode escrever algo como:

    “Gastei 45 reais no almoço hoje.”

    A aplicação interpreta a mensagem, identifica o valor, a categoria, a descrição e a data. Em seguida, apresenta os dados encontrados e solicita uma confirmação antes de registrar a transação.

    Além do chat financeiro, a aplicação possui autenticação, dashboard, gerenciamento de transações, metas financeiras, relatórios e geração de um plano de economia.

    Começando por um prompt bem estruturado

    Antes de pedir ao Cursor que criasse o projeto, procurei transformar a ideia em uma especificação detalhada.

    O prompt utilizado descrevia:

    • o problema que a aplicação deveria resolver;
    • o público-alvo;
    • as funcionalidades obrigatórias;
    • as regras de negócio;
    • a arquitetura esperada;
    • as tecnologias que deveriam ser utilizadas;
    • os critérios de aceite;
    • os testes necessários;
    • a documentação que deveria ser produzida.

    Também determinei que o frontend fosse criado com React e TypeScript, dentro da pasta front, e que o backend fosse desenvolvido com PHP, dentro da pasta back. Para persistência dos dados, defini o uso do MySQL.

    Essa etapa foi importante porque percebi que trabalhar com inteligência artificial não significa simplesmente escrever “crie um aplicativo”. Quanto mais claro for o contexto, melhores são as decisões tomadas durante a implementação.

    O prompt funcionou como um contrato para o projeto.

    Dividindo o trabalho entre subagentes

    Como o projeto possuía várias áreas diferentes, organizei o desenvolvimento utilizando subagentes especializados.

    As responsabilidades foram divididas entre agentes de:

    • análise funcional;
    • arquitetura;
    • banco de dados;
    • backend;
    • frontend;
    • experiência do usuário e acessibilidade;
    • qualidade e segurança;
    • documentação.

    Essa divisão ajudou a transformar uma tarefa muito ampla em etapas menores e mais controláveis.

    Um dos pontos mais importantes foi definir os contratos da API e a estrutura do banco antes de avançar com a implementação das telas. Dessa forma, frontend e backend puderam seguir uma referência comum, reduzindo inconsistências entre os dados enviados pela interface e os dados esperados pela API.

    A documentação do projeto passou a funcionar como uma fonte de verdade, reunindo PRD, arquitetura, contratos da API, modelo do banco, tipos compartilhados e registros de validação.

    A arquitetura escolhida

    O FinançaFácil foi dividido em três partes principais:

    1. Uma aplicação frontend desenvolvida com React, TypeScript e Vite;
    2. Uma API REST desenvolvida com PHP e Slim Framework;
    3. Um banco de dados relacional MySQL.

    O frontend funciona como uma SPA e se comunica exclusivamente com o backend por meio de requisições HTTP em formato JSON.

    No backend, organizei o código em camadas:

    • os controllers recebem as requisições;
    • os services executam as regras de negócio;
    • os repositories realizam o acesso ao banco;
    • o PDO executa consultas preparadas no MySQL.

    A autenticação utiliza JWT, e os dados financeiros são sempre filtrados pelo usuário autenticado. Isso impede que uma pessoa consulte ou altere transações pertencentes a outra conta.

    Para valores monetários, foram utilizados campos DECIMAL, evitando os problemas de precisão que poderiam ocorrer com tipos como float.

    O chat financeiro

    A funcionalidade que considero mais interessante no projeto é o registro de transações por linguagem natural.

    O usuário pode escrever frases como:

    “Paguei 120 reais de internet ontem.”
    “Recebi 3.500 de salário hoje.”
    “Gastei 32,90 com Uber.”

    O sistema analisa a frase e procura identificar:

    • se é uma receita ou despesa;
    • o valor;
    • a descrição;
    • a categoria;
    • a data da movimentação.

    Depois dessa análise, o chat apresenta os dados encontrados e solicita a confirmação do usuário. A transação nunca é registrada automaticamente.

    Essa confirmação foi uma decisão importante, porque estamos trabalhando com informações financeiras. Mesmo que o parser interprete corretamente a maioria das frases, o usuário precisa ter a oportunidade de revisar e corrigir os dados.

    Inteligência sem depender de uma API externa

    Apesar de o projeto utilizar uma experiência semelhante à de um agente de inteligência artificial, o MVP não depende obrigatoriamente de um modelo de linguagem externo.

    O parser foi criado utilizando:

    • expressões regulares;
    • palavras-chave;
    • normalização de valores monetários;
    • reconhecimento de datas relativas;
    • regras de categorização.

    Dessa forma, a aplicação consegue interpretar padrões comuns em português, incluindo valores como R$ 1.200,50, além de expressões como “hoje”, “ontem” e “semana passada”.

    Essa abordagem trouxe duas vantagens para o MVP: o processamento não possui custo por requisição e as respostas são praticamente instantâneas.

    Ao mesmo tempo, a arquitetura possui uma interface de provedor de NLP preparada para que, futuramente, o parser local possa ser substituído ou complementado por um modelo de linguagem.

    Outras funcionalidades desenvolvidas

    Além do chat, o FinançaFácil oferece um conjunto de recursos para que o usuário tenha uma visão mais clara da própria situação financeira.

    No dashboard, é possível acompanhar saldo, receitas, despesas, evolução mensal, categorias com maiores gastos e transações recentes.

    Na área de transações, o usuário pode pesquisar, filtrar, cadastrar, editar e excluir receitas e despesas.

    Também foi criado um módulo de metas financeiras. Nele, o usuário pode definir um objetivo, o valor desejado, o prazo e registrar novos aportes. A aplicação calcula automaticamente o percentual já alcançado.

    Os relatórios apresentam a distribuição das despesas por categoria e a evolução financeira ao longo dos meses.

    Por fim, o sistema pode gerar um plano básico de economia utilizando a regra 50-30-20 como referência.

    Validação e testes

    Uma das minhas preocupações foi não considerar o projeto concluído apenas porque as telas estavam aparecendo corretamente.

    Por isso, o processo também incluiu testes automatizados, lint, build e validação do banco de dados.

    No backend, foram executados 60 testes com PHPUnit, incluindo testes relacionados ao parser, autenticação, valores monetários e integração com transações.

    No frontend, foram executados 23 testes com Vitest e Testing Library, cobrindo pontos como validação do login, proteção de rotas, formatação dos dados e confirmação de transações pelo chat.

    O build do frontend foi concluído sem erros de TypeScript, e a análise do ESLint também foi executada sem erros ou avisos. As migrations e os seeds foram validados utilizando MySQL 8.4 em um container Docker.

    O que aprendi com o processo

    O principal aprendizado deste projeto foi entender que o resultado produzido por uma inteligência artificial depende muito da qualidade das instruções fornecidas.

    Quando o pedido é genérico, a resposta também tende a ser genérica. Quando existem contexto, critérios de aceite, regras de negócio e uma ordem clara de execução, a IA consegue atuar de maneira muito mais próxima de uma equipe de desenvolvimento.

    Também percebi que Vibe Coding não significa aceitar tudo o que a IA produz.

    Foi necessário orientar, limitar o escopo, definir padrões e exigir validações. A IA ajudou a acelerar a implementação, mas as decisões sobre o produto e sobre a arquitetura ainda precisaram de intenção e direção.

    Outro aprendizado foi a importância da documentação. Ao registrar as decisões antes da implementação, ficou mais fácil manter o banco, o backend e o frontend alinhados.

    Limitações e próximos passos

    Como o projeto foi desenvolvido como um MVP, ainda existem algumas limitações.

    O parser local funciona bem para frases mais diretas, mas pode ter dificuldades com mensagens muito ambíguas. A aplicação também não possui integração real com bancos, Open Finance ou serviços de pagamento.

    Entre as possíveis evoluções estão:

    • integração com um modelo de linguagem;
    • importação automática de transações por Open Finance;
    • exportação de relatórios em PDF ou CSV;
    • criação de uma PWA com suporte offline;
    • alertas de orçamento por categoria;
    • recuperação de senha por e-mail;
    • versão mobile nativa.

    Conclusão

    Criar o FinançaFácil foi uma experiência importante para entender, na prática, como utilizar inteligência artificial durante um projeto completo.

    Mais do que gerar código, o desafio envolveu aprender a comunicar uma ideia, transformar um problema em requisitos e coordenar diferentes etapas do desenvolvimento.

    O Cursor foi utilizado como parceiro de implementação, mas o resultado só foi possível porque existia uma direção clara: qual problema resolver, quais regras seguir e como validar a entrega.

    Para mim, esse é o ponto mais interessante do Vibe Coding: a inteligência artificial pode acelerar muito o desenvolvimento, mas cabe ao desenvolvedor fornecer contexto, avaliar as decisões e garantir que o resultado realmente resolva o problema proposto.

    O código-fonte e a documentação completa do FinançaFácil estão disponíveis no repositório público do projeto.

    https://github.com/Renantx/app-financas-DIO

    Compartir
    Recomendado para ti
    AWS - Agentes de IA em Campo
    Riachuelo - Criando produtos com IA
    Michael Page - Criando Seu Primeiro Agente de IA
    Comentarios (0)