Skip to content

Commit

Permalink
Merge pull request #187 from raiane-oliveira/refactor/cleanup-and-rea…
Browse files Browse the repository at this point in the history
…dme-improvements

Refactor/cleanup and readme improvements
  • Loading branch information
sonnesen authored Nov 29, 2024
2 parents 7d3a21d + c2e3e26 commit c651cce
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 96 deletions.
26 changes: 26 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Configuração do ambiente
NODE_ENV="development"
PORT= # Porta onde o projeto vai rodar na sua máquina

# JWT
SECRET_KEY="" # Uma string qualquer, chave para gerar o JWT

# Conexão com o banco de dados
TYPEORM_HOST="localhost" # Host name do seu banco (geralmente quando está na sua maquina fica localhost)
TYPEORM_PORT=5432 # A porta geralmente é 5432, se no seu caso for outra porta basta alterar
TYPEORM_USERNAME="docker" # Usuário do servidor Postgres via docker compose
TYPEORM_PASSWORD="ignite" # Senha do servidor Postgres via docker compose
TYPEORM_DATABASE="linkedin_backend" # Banco de dados a ser conectado via docker compose

CA_CERT="" # Apenas para o db em produção

# AWS S3
AWS_ACCESS_KEY_ID=""
AWS_SECRET_ACCESS_KEY=""
AWS_S3_BUCKET_NAME=""

# Website
FRONTEND_URL="http://localhost:3000"

# Web Scaper
VACANCIES_URL="http://localhost:3333"
10 changes: 1 addition & 9 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,4 @@ dist
# Optional stylelint cache

# SvelteKit build / generate output
.svelte-kit

# Config files
# src/database/data-source.ts
.env
.env.example
mail.module.ts

# End of https://www.toptal.com/developers/gitignore/api/node
.svelte-kit
91 changes: 26 additions & 65 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,109 +12,70 @@

## Menu

### [Abrir e rodar o projeto](#abrir_e_rodar_o_projeto)
<a href="#rodando-localmente">Rodando localmente</a>

### [Acesso ao projeto](#acesso_ao_projeto)
<a href="#documentação">Documentação</a>

### [Rodando Localmente](#rodando_localmente)
<a href="#stack_utilizada">Stack Utilizada</a>

### [Rodando com Docker](#instalando_o_docker)
<a href="#equipe_do_backend">Equipe Back-end</a>

### [Stack Utilizada](#stack_utilizada)

### [Equipe Back-end](#equipe_do_backend)

### Pre requisitos:
### Pré-requisitos:
* git
* docker
* insomnia

---

<a id="abrir_e_rodar_o_projeto"></a>
<a id="rodando-localmente"></a>

## 🛠️ Abrir e rodar o projeto
## 🛠️ Rodando localmente


Clone o projeto na janela que abriu com o seguinte comando:
Clone o projeto ou o fork do projeto com o seguinte comando:

```bash
git clone https://github.com/SouJunior/linkedin-backend.git
git clone https://github.com/SouJunior/linkedin-backend.git
```


---

`docker-compose up -d`


O projeto vai estar rodando em:

`localhost:3000`

agora basta seguir para [Instalando o Insomnia](#instalando_o_insomnia)

---

<a id="acesso_ao_projeto"></a>

## 📁 Acesso ao projeto

Entre na pasta do projeto pelo Visual Studio, Abra o terminal do visual Studio e
vá para o diretório do projeto com o comando:
Em seguida, instale as dependências:

```bash
cd vagas-api

Instale as dependências
npm install
```

Suba os containers docker na sua máquina via `docker compose`:
```bash
npm i
docker compose up -d
```

Feito a instalação dos pacotes basta renomear o arquivo `.env.example` para `.env` e preencher com as suas informações do banco de dados, no caso estamos usando o PostgreSQL

Arquivo .env
Crie o arquivo `.env` seguindo o exemplo contido em `.env.example`.

Aplique as **migrations** do TypeORM no seu banco de dados local:
```bash
PORT=3000 #Porta que seu projeto vai rodar na sua maquina
# JWT
SECRET_KEY= qualquerStringAqui #Uma string qualquer, chave para gerar o JWT
# TYPEORM_CONNECTION
TYPEORM_CONNECTION=postgres
TYPEORM_HOST= #Host name do seu banco (geralmente quando esta na sua maquina fica localhost)
TYPEORM_PORT=5432 #A porta geralmente é 5432, se no seu caso for outra porta basta alterar
TYPEORM_USERNAME= # Seu usuario do banco postgress
TYPEORM_PASSWORD= # Sua senha do banco postgress
TYPEORM_DATABASE= # Sua database do banco de dados.
npm run migration:run
```

---

<a id="rodando_localmente"></a>

## 🌐 Rodando localmente

Inicie o servidor

Por fim, inicie o servidor:
```bash
npm run start:dev
npm run dev # ou npm run start:dev
```

---

<a id="documentação"></a>

Após a instalação do Wsl, vamos até a pasta do projeto e rodar o comando
## 📜 Documentação

`docker-compose up -d`
Quando você iniciar o seu servidor local, a documentação Swagger vai estar rodando em

```bash
http://localhost:{PORT}/api
```

O projeto vai estar rodando em:
Se você quiser testar as rotas no Insomnia ou Postman, importe o arquivo `Documentação_Sou_Junior.json` e as rotas serão configuradas automaticamente.

`localhost:3000`

---

<a id="stack_utilizada"></a>
Expand Down
17 changes: 10 additions & 7 deletions src/database/data-source.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { config } from 'dotenv';
config();
import 'dotenv/config'
import { DataSource, DataSourceOptions } from 'typeorm';
import 'reflect-metadata';

const {
NODE_ENV,
TYPEORM_HOST,
TYPEORM_PORT,
TYPEORM_PASSWORD,
Expand All @@ -15,7 +15,7 @@ const {
export const typeormConfig: DataSourceOptions = {
type: 'postgres',
host: TYPEORM_HOST,
port: +TYPEORM_PORT,
port: parseInt(TYPEORM_PORT),
username: TYPEORM_USERNAME,
password: TYPEORM_PASSWORD,
database: TYPEORM_DATABASE,
Expand All @@ -24,10 +24,13 @@ export const typeormConfig: DataSourceOptions = {
'dist/database/migrations/*.js',
'dist/database/migrations/seeds/*.js',
],
ssl: {
ca: CA_CERT,
rejectUnauthorized: false,
},
ssl:
NODE_ENV == 'production'
? {
ca: CA_CERT,
rejectUnauthorized: false,
}
: undefined,
};

export const AppDataSource = new DataSource({
Expand Down
29 changes: 14 additions & 15 deletions src/main.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import { config } from "dotenv";
config()
import { ValidationPipe } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { NestExpressApplication } from '@nestjs/platform-express';
Expand All @@ -11,10 +9,12 @@ async function bootstrap() {
cors: true,
});

app.useGlobalPipes(new ValidationPipe({
whitelist: true,
transform: true
}));
app.useGlobalPipes(
new ValidationPipe({
whitelist: true,
transform: true,
}),
);

const config = new DocumentBuilder()
.setTitle('Vagas-Backend')
Expand All @@ -29,17 +29,16 @@ async function bootstrap() {
.build();

const document = SwaggerModule.createDocument(app, config);

if (process.env.NODE_ENV == 'development') {
SwaggerModule.setup('api', app, document);
}
console.info(
`Documentation running on http://localhost:${process.env.PORT || 3000}/api 🚀🚀`,
);
}

await app.listen(process.env.PORT || 3000);
console.info(`🚀🚀 App listening on port ${process.env.PORT || 3000} 🚀🚀`);
console.info(
`Documentation running on http://localhost:${process.env.PORT || 3000}/api 🚀🚀`,
);
const databse = process.env.ISLOCAL == 'true' ? 'do DOCKER' : 'da NUVEM';
console.info(`Você esta usando o banco de dados ${databse}`);
await app.listen(process.env.PORT || 3000, () => {
console.info(`🚀🚀 App listening on port ${process.env.PORT || 3000} 🚀🚀`);
});
}
bootstrap();

0 comments on commit c651cce

Please sign in to comment.