Skip to content

SouJunior/vagas-api

Repository files navigation

Badge em Desenvolvimento

Visitantes:


Menu

Rodando localmente

Documentação

Stack Utilizada

Como contribuir

Equipe Back-end

Pré-requisitos:

  • Git
  • Docker instalado
  • Banco de dados (ex: PostgreSQL) em execução
  • Insomnia ou outro que você prefira para fazer as requisições

🛠️ Rodando localmente

Clone o projeto ou o fork do projeto com o seguinte comando:

git clone https://github.com/SouJunior/vagas-api

Em seguida, instale as dependências:

npm install

Suba os containers docker na sua máquina via docker compose:

docker compose up -d

⚠️ Caso o comando acima não funcione, use com hífen:

docker-compose up -d

Para remover os containers:

docker compose down

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


Configure o arquivo .env

🔐 Crie um arquivo .env na raiz do projeto com as seguintes variáveis de ambiente:

PORT=3000
DATABASE_URL=postgres://usuario:senha@localhost:5432/seu_banco
JWT_SECRET=sua_chave_secreta

💡 Dica: nunca suba o arquivo .env no GitHub! Use sempre o .gitignore para evitar vazamentos de credenciais.

Aplique as migrations do TypeORM no seu banco de dados local:

npm run migration:run

Por fim, inicie o servidor:

npm run dev # ou npm run start:dev

Acesso à Aplicação

Após subir a aplicação, acesse:

http://localhost:3000

🖥️ Instruções por sistema operacional

Tanto 🐧 Linux quanto 🪟 Windows são o mesmo processo

# Instale as dependências
npm install

# Rode o projeto
npm run start:dev

❗ Erro de autenticação no banco?

Se ao rodar o projeto aparecer um erro relacionado ao banco de dados, siga os passos abaixo:

🔐 Alterar a senha do usuário postgres:

psql -h localhost -p 5432 -U postgres -d postgres

E então, dentro do terminal do psql:

ALTER USER postgres WITH PASSWORD 'admin';

❗ Erro: banco de dados "vagas-api" não existe? Ainda no psql, crie o banco:

CREATE DATABASE "vagas-api";

✅ Agora sim, tudo certo? Siga com as migrations!

npm run migration:run

📜 Documentação

Quando você iniciar o seu servidor local, a documentação Swagger vai estar rodando em

http://localhost:{PORT}/api

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.


Stack utilizada ⚙

Linguagens: TypeScript

Frameworks: node js Nestjs

Ferramentas: Run in Insomnia Visual Studio docker

DevOps

Warning

Vagas Web App utiliza API disponível em https://motor-vagas.onrender.com/docs/ O que, pela URL, indica possibilidade do repo "vagas-api" não estar sendo utilizado

Tip

Caso não esteja sendo utilizado, atualizar README apontando para o novo repositório e arquivar repositório vagas-api

Caution

Pull Requests para main atualizam a imagem docker de produção

Tip

Atualizar "Deploy to Production", removendo "on: pull_request: branches: [main]"

Important

Repositório possui github workflow para deploy de homologação, mas commit mais recente foi um PR direto para main

Warning

AWS ECR e Railway configurados para o mesmo repo

sequenceDiagram
    actor Dev as Desenvolvedores
    participant Git as GitHub
    participant Rail as Railway
    participant Actions as GitHub Actions
    participant ECR as AWS ECR

    Note over Dev,ECR: Fluxo de Deploy com Preview

    Dev->>Git: Abre Pull Request (PR) para main
    Git->>Actions: Novo Evento: PR criada
    Actions->>Actions: Cria imagem Docker
    Actions->>ECR: Atualiza imagem Docker "$REGISTRY/vagas:latest"
    ECR->>Actions: Imagem "$REGISTRY/vagas:latest" atualizada
    Actions-->>Git: Deploy de Produção atualizado

    Note over Dev,ECR: Loop de desenvolvimento
    
    Dev->>Git: Aprova e mergeia PR para main
    par
        Git->>Rail: Novo Evento: Branch main atualizada
        Rail-->>Git: Deploy de Produção "*.up.railway.app" atualizado
    and
        Git->>Actions: Novo Evento: Branch main atualizada
        Actions->>Actions: Cria imagem Docker
        Actions->>ECR: Atualiza imagem Docker "$REGISTRY/vagas:latest"
        ECR-->>Actions: Imagem "$REGISTRY/vagas:latest" atualizada
        Actions-->>Git: Deploy de Produção atualizado
    end
Loading

👨‍💻 Como contribuir

Ficaremos felizes com contribuições! Veja como participar:

Crie uma issue com sugestões, dúvidas ou relatos de erro

Faça um fork deste repositório

Crie uma branch com sua funcionalidade ou correção

Envie um Pull Request (PR) explicando suas alterações

🔎 Siga boas práticas de versionamento e mantenha seus commits claros e objetivos!


👨‍💻 Equipe Back-end

👑 Headers

Lucas Rigon
Lucas Rigon
Ricardo Machado
Ricardo Machado

🚀 Devs

Larissa Sarapio
Larissa Sarapio
José Lázaro
José Lázaro
Lázaro Bodevan
Lázaro Bodevan
Leidejane da Rosa
Leidejane da Rosa
Tiago Souza Dias
Tiago Souza Dias
João Matos
João Matos

🧠 Mentores

Mikael Melo
Mikael Melo

💼 Ex-contribuidores

Leonardo Monteiro
Leonardo Monteiro
Daniel Vinhas
Daniel Vinhas
Joana D'arc
Joana D'arc
Audinéia Carmo
Audinéia Carmo
Bruno
Bruno
Leonardo Reis
Leonardo Reis

💡 Idealizador do projeto

Wouerner Brandão
Wouerner Brandão


Feedback

Se você tiver algum feedback, por favor nos deixe saber por meio do nosso fazendo uma contribuição.

Contribuição

Contribuições são sempre bem-vindas!

Usado por

Esse projeto é usado pela SouJunior.


About

Backend do Projeto de Vagas do @SouJunior

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 30