|
|
|
# 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:
|
|
|
|
|
|
|
|
1. Execução de testes automatizados
|
|
|
|
2. Envio de migrations ao banco
|
|
|
|
3. Construção da nova imagem Docker
|
|
|
|
4. Parada dos containers antigos
|
|
|
|
5. 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. |