DEV Community

Cover image for Meu primeiro projeto REAL
Leonardo Souza
Leonardo Souza

Posted on • Updated on

Meu primeiro projeto REAL

Como tudo começou...

Ano passado conheci a FCamara em um evento que eles organizaram junto ao GDG Santos. Descobri que às quintas-feiras o escritório fica aberto para pessoas que queiram estudar ou trabalhar. Desde então tenho frequentado o Orange Hub, onde em uma dessas idas conheci o Lucas Batista , desenvolvedor mobile sênior e coordenador do projeto que vou falar hoje.

O Lucas me apresentou a Ariane Salerno , empreendedora local com a demanda de um sistema para cadastro de vendas personalizado. Até então o cadastro do seu negócio era realizado manualmente, impossibilitando, ou pelo menos dificultando muito, a análise dos dados. De forma geral, o modo trabalho atual não possibilitava a tomada de decisões a partir de seu histórico.

Sobre o projeto

Passamos então a ter reuniões semanais, sob a orientação do Lucas, para construir uma solução baseada nas especificidades do tipo de negócio da Ariane. Inicialmente alinhamos quais funcionalidades seriam necessárias e a partir disso caminhamos para o desenvolvimento e feedbacks.

Considerando as necessidades apresentadas, alinhei com o Lucas que tecnologias seriam utilizadas, optando pelas quais eu tinha maior familiaridade:

  • Backend: Nest.JS, com Prisma.
  • Frontend: React, mais especificamente a biblioteca de componentes React Mantine, que utiliza Typescript nos componentes.

Funcionalidades

As funções básicas de um CRUD (criar, ler, editar e deletar) foram as primeiras implementadas, assim como a autenticação.

GIF do sistema demonstrando o cadastro, visualizando e deletando um registro
No momento estamos desenvolvendo o BackOffice para avançar na geração dos relatórios.

Desafios

Backend e uso de ORM

Por mais que eu estivesse familiarizado com o Nest, não foi tão natural escrever um projeto do zero. Demorei certo tempo para entender como validar as requisições do backend e como usar o Prisma, coisa que nunca havia feito.

Dados e normalização de dados

No início, pensar nas tabelas, como elas se comunicariam, porque elas se comunicariam, foi algo que demandou muita análise, alguns testes e vários migrations.

React e Typescript

No frontend as coisas ficaram mais complicadas. Fazia bastante tempo que não mexia com React e tive que recorrer à documentação. O typescript foi bem desafiador de implementar devido ao caráter verboso da linguagem, porém trouxe robustez ao sistema.

React - Passagem de dados entre componentes

Alguns problemas na comunicação entre os componentes surgiram, como por exemplo mandar os dados de um componente filho para o pai para que ele atualizasse os dados das vendas. Implementando context e providers foi possível padronizar a comunicação.

Versionamento

Apesar de estar desenvolvendo sozinho, tenho utilizado o git para entender como seria o fluxo de trabalho em um projeto colaborativo, experienciando criação de branches para funcionalidades e correção de bugs, merge das branchs, criação de pull requests.

Aprendizados

O trabalho no projeto tem desenvolvido minhas habilidades de comunicação e gestão de expectativas com a cliente, alinhando as demandas e traduzindo isso em código.
Com o tempo tenho notado minha melhoria técnica, como maior agilidade em criar e gerenciar CRUDS e ter insights nas ferramentas e plataformas utilizadas, tornando o código mais robusto em termos de segurança e qualidade.
Além disso, este projeto tem me proporcionado familiaridade com refatoração de código, hospedagem de serviços, desenvolvimento contínuo e colaborativo.

Próximos passos

Tem sido um caminho de muito aprendizado até aqui, e o plano é continuar evoluindo tecnicamente, especialmente na comunicação entre os componentes do React, na elaboração de testes e no versionamento de código. Quero ainda explorar mais ferramentas cloud, como o Vercel e, futuramente, GCP e AWS.

Agradecimentos

Algumas pessoas têm sido fundamentais para esse processo, especificamente com tecnologia, por me ajudarem de N formas a aprender algo novo, como Lucas Viana, Leonardo Santos Severino, Lucas Batista e Gabriel Sanzone .
Obrigado pela dedicação e paciência em compartilhar conhecimento.
Agradeço também à minha família e Letícia por acreditarem em mim e por todo apoio durante essa jornada

Top comments (0)