Em construção
- 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.
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)
-
Crie uma copia do arquivo exemple.env;
-
Modifique o nome dessa copia para .env;
-
O arquivo .env vai ter descrições de como preenchê-lo, mas para ter acesso as informações fale com o coordenador do projeto.
1 - Comando para rodar o projeto, no ambiente de desenvolvimento:
$ yarn dev
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.
- Buildar:
$ yarn build
- Rodar o projeto JavaScript como dev/http:
$ yarn start-dev
- Rodar o projeto JavaScript em produção/https:
$ yarn start-prod
- Rodar as migrations:
$ yarn migration:run
- Reverter a ultima migration:
$ yarn migration:revert
- 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"
- 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"
- Arquivos para salvar no banco, como primeiro usuário e etc...:
$ yarn dump
- Gerar schemas da request a partir do zod:
$ yarn doc:comp
A documentação pode ser acessar através do endPoint: /apiDocs
- 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.