Tecnologias Utilizadas
Esta página documenta as principais tecnologias empregadas no desenvolvimento da plataforma, detalhando o papel de cada uma dentro da arquitetura do sistema. O objetivo é fornecer uma visão clara e centralizada sobre as escolhas técnicas que sustentam o projeto, facilitando o entendimento da equipe atual e futura.
Frontend
O frontend da aplicação foi desenvolvido utilizando uma combinação moderna de tecnologias amplamente adotadas na indústria.
React + Next.js
A interface foi construída com a biblioteca React, conhecida por sua abordagem declarativa, componentização e ecossistema rico. Para potencializar essas capacidades, foi adotado o framework Next.js, que oferece:
- Estruturação automática de rotas
- Renderização híbrida (SSR, SSG, ISR)
- Otimizações de performance
- Integração simplificada com TypeScript
- Ferramentas robustas de desenvolvimento e build
Essa combinação permitiu criar uma interface responsiva, escalável e com alta organização estrutural.
TypeScript
O código do frontend foi escrito majoritariamente em TypeScript, garantindo:
- Maior segurança de tipos
- Redução de erros comuns
- Melhor experiência de desenvolvimento
- Documentação implícita do código
Essa escolha trouxe estabilidade ao projeto e facilitou a colaboração entre os membros da equipe.
Backend
O backend foi construído sobre tecnologias versáteis e focadas em modularidade e organização arquitetural.
Node.js
A API utiliza Node.js, ambiente de execução baseado no motor V8 do Google. Ele oferece:
- Alta produtividade
- Excelente suporte à concorrência
- Ecossistema rico de bibliotecas e ferramentas
NestJS
O framework principal utilizado foi o NestJS, escolhido por fornecer:
- Arquitetura modular baseada em modules, controllers e providers
- Forte integração com TypeScript
- Suporte nativo a Dependency Injection
- Estrutura clara, estável e escalável
- Abstrações para middlewares, guards, interceptors e pipes
A combinação de Node.js + NestJS proporcionou uma API organizada, extensível e alinhada às melhores práticas de projetos modernos.
Banco de Dados
PostgreSQL
Para armazenamento das informações, foi utilizado o sistema gerenciador de banco de dados PostgreSQL, reconhecido por sua robustez e conjunto avançado de funcionalidades, como:
- Suporte a JSON/JSONB
- Transações seguras
- Alta performance
- Extensões avançadas, como PostGIS
- Forte compatibilidade com ORMs e ferramentas de integração
Ele serviu como base para persistência dos dados e comunicação segura e eficiente com o backend.
Infraestrutura e Deploy
AWS Amplify
O frontend é hospedado no AWS Amplify, que fornece:
- CI/CD integrado
- Hosting otimizado
- Automação de build
- Integração facilitada com repositórios Git
AWS EC2
A API é executada em uma instância EC2, onde roda em ambiente Dockerizado. Isso trouxe:
- Controle granular do ambiente
- Possibilidade de escalabilidade
- Isolamento das dependências via containers
Docker
Toda a API roda em containers Docker, garantindo:
- Reprodutibilidade dos ambientes
- Isolamento adequado
- Facilidade de deploy e manutenção
GitLab CI/CD
O pipeline de deploy foi configurado no GitLab, permitindo:
- Execução de testes automatizados
- Envio de migrations ao banco
- Construção da nova imagem Docker
- Parada dos containers antigos
- Inicialização da API atualizada
Esse fluxo garantiu consistência e segurança em cada publicação.
Resumo
A arquitetura tecnológica do sistema foi projetada para equilibrar:
- Produtividade no desenvolvimento
- Robustez arquitetural
- Facilidade de manutenção
- Baixo custo e simplicidade operacional
- Adoção de práticas modernas de engenharia
O uso combinado de Next.js, NestJS, TypeScript, PostgreSQL e infraestrutura Dockerizada na AWS possibilitou a construção de uma solução sólida, escalável e alinhada aos padrões contemporâneos de mercado.