araujo21x / chat_back-

chat_back

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🚧 Software em construção 🚧

Sumario



Sobre


Em construção



Pré-Requisito


  • NojeJS (Versão usada na construção -> 18.14.2): Runtime de JS no servidor;
  • MySQL: Banco de dados do projeto;
  • Yarn: Gerenciador de pacote.


Executando o projeto

Baixando e configurando o código


1 - Clone este repositório:

HTTPS:

$ git clone

SSH:

$ git clone

2 - Acesse a pasta do projeto no terminal/cmd:

$ cd

3 - Instale as dependências do projeto:

$ yarn install

4 - Configurando as variáveis de ambiente (ambiente produção = .env)

  1. Crie uma copia do arquivo exemple.env;

  2. Modifique o nome dessa copia para .env;

  3. O arquivo .env vai ter descrições de como preenchê-lo, mas para ter acesso as informações fale com o coordenador do projeto.

Executando
---- Ambiente de desenvolvimento ----


1 - Comando para rodar o projeto, no ambiente de desenvolvimento:

$ yarn dev


Build


O código está em TypeScript, mas somente para o desenvolvimento. Dessa maneira será necessário fazer o build em alguns momento, por exemplo, quando for fazer deploy. Build é o processo de transforma o código de TypeScript para JavaScript e nesse projeto utilizamos o Babel.


  1. Buildar:
$ yarn build
  1. Rodar o projeto JavaScript como dev/http:
$ yarn start-dev
  1. Rodar o projeto JavaScript em produção/https:
$ yarn start-prod

Migrations

O comando para rodar as migrations atualmente esta pegando os dados do arquivo.


  1. Rodar as migrations:
$ yarn migration:run
  1. Reverter a ultima migration:
$ yarn migration:revert
  1. Criar uma nova migration. Em "nome da migration" coloque o nome da sua nova migration sem as aspas:
$ yarn typeorm migration:create ./src/database/migrations/"name_migration"
  1. Criar migration no código baseado nos models/entity's do sistema. Em "nome da migration" coloque o nome da sua nova migration sem as aspas. Recomendo usar enquanto estiver em desenvolvimento, depois que já tiver em uso pelo cliente criar manualmente as migrations:
$ yarn migration:generate ./src/database/migrations/"name_migration"
$ yarn migration:generate ./src/database/migrations/"name_migration"
  1. Arquivos para salvar no banco, como primeiro usuário e etc...:
$ yarn dump


Documentação

  1. Gerar schemas da request a partir do zod:
$ yarn doc:comp

A documentação pode ser acessar através do endPoint: /apiDocs



Tecnologias


  • express: Framework para NodeJS;
  • nodemon(dev): Uma maneira da API atualizar sozinha sem precisar reiniciar no ambiente de desenvolvimento;
  • babel(dev): Ferramenta para transpilar o código de typeScript para javaScript;
  • zod: Ferramenta de validação do código;
  • zod-to-openapi: Ferramenta que pega os schemas do zod e converte para OpenAPI;
  • typeScript(dev): Superset para JS;
  • MySQL: Banco de dados do projeto;
  • TypeORM: ORM do projeto;
  • compression: Serve para comprimir as resposta da API;
  • typeorm: ORM para NodeJS;
  • dotenv: Variável ambiente;
  • bcryptjs: Serviço para encriptação de senha;
  • jsonwebtoken: JWT, autenticação;
  • multer: Serviço trabalhar com imagem enviado para o servidor;
  • helmet: Ajuda na segurança da aplicação configurando o cabeçalho http da resposta da API;
  • cors: Habilitar o cors;
  • swagger-ui-express: Utilizar a documentação do swagger no express;
  • aws-sdk: Funcionalidades para AWS;
  • @sendgrid/mail: Funcionalidades de envio de e-mail.

Veja o arquivo package.json

About

chat_back


Languages

Language:TypeScript 98.2%Language:JavaScript 1.0%Language:Handlebars 0.6%Language:Dockerfile 0.1%