The current project was thought about using a function for global translation of my personal portfolio. The architecture was based on a design by a great friend Iuri Aguiar together with the behavioral and structural logic of the Serverless framework, which I learned from a great tutor Erick Wendel
The main dependencies used in this project are:
- Serverless: tool used to facilitate the use of AWS tools with a single model.
- Jest and Babel: used to perform unit tests.
- Commitizen, Commitlint and Husky: used to standardize commits.
- @hapi/joi: used to validate parameters forwarded through HTTP requests.
- Aws-sdk: for using the various AWS services including translate which serves to perform the translation
Next, the folder structure used in this project:
src
: main source code folder.config
: folder used to store environment variables and other necessary configurations.translate
: folder for principal routecontrollers
: folder used to control endpoints.services
: folder used to execute the service designated to endpoints.models
: folder with parameter validators.
handler
: file responsible for centralizing the controllers to be consumed in theserverless.yml
file and unit tests.
tests
: folder used to store the unit test files and mocks to demonstrate request parameters.utils
: folder with utility functions and classes used throughout the code.serverless.yml
: central project file containing all necessary configurations for AWS, environment settings, and routes.
The scripts available in this project are:
start
: script used to start the project locally.test
: script used to perform tests.commit
: script used to perform commits.delete
: script used to remove the project from AWS.deploy:qa
: script used to deploy the project in a test environment.deploy:prod
: script used to deploy the project in a production environment.
The main references used in this project were:
O projeto atual foi pensado a respeito do uso de uma função para tradução a nível global do meu portifolio pessoal.A arquitetura foi baseada em uma na concepção de um grande amigo Iuri Aguiar adjunto da logica comportamental e estrutural do framework Serverless cuja a qual aprendi com um grande tutor Erick Wendel
As principais dependências utilizadas neste projeto são:
- Serverless: ferramenta utilizada para facilitar o uso das ferramentas da AWS com um único modelo.
- Jest e Babel: utilizados para a realização de testes unitários.
- Commitizen, Commitlint e Husky: utilizados para padronizar os commits.
- @hapi/joi: utilizado para validar os parâmetros encaminhados através de requisições http.
- Aws-sdk:para utilização dos diversos serviços da AWS incluindo o translate o qual serve para realizar a tradução
A seguir, a estrutura de pastas utilizada neste projeto:
src
: pasta principal do código-fonte.config
: pasta utilizada para armazenar as variáveis de ambiente e outras configurações necessárias.translate
: pasta da rota principalcontrollers
: pasta utilizada para controlar os endpoints.services
: pasta utilizada para executar o serviço designado para os endpoints.models
: pasta com validadores de parâmetros.
handler
: arquivo responsável por centralizar os controllers a serem consumidos no arquivoserverless.yml
e nos testes unitários.
tests
: pasta utilizada para armazenar os arquivos de testes unitários e mocks para demonstração dos parâmetros de requisições.utils
: pasta com funções e classes utilitárias utilizadas em todo o código.serverless.yml
: arquivo central do projeto, contendo todas as configurações necessárias para a AWS, configurações de ambiente e rotas.
Os scripts disponíveis neste projeto são:
start
: script utilizado para iniciar o projeto localmente.test
: script utilizado para realizar os testes.commit
: script utilizado para realizar os commits.delete
: script utilizado para remover o projeto da AWS.deploy:qa
: script utilizado para realizar o deploy do projeto em ambiente de testes.deploy:prod
: script utilizado para realizar o deploy do projeto em ambiente de produção.
As principais referências utilizadas neste projeto foram: