mairess / project-blogs-api

Aplicação em Node com Express e Javascript para fazer um CRUD de posts. Usa o ORM Sequelize e o bando de dados MySQL e conta com a segurança do JWT e do bcrypt. Orquestrada com docker compose.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Projeto Blogs API

Contexto

Este projeto consiste em uma API REST feita em Node.js com Express e javascript que simula um blog. Sendo possível fazer CRUD dos posts, mas para isso, é necessário fazer login pois a api conta rotas protegidas com jwt para autenticação do usuário, além de contar com o bcrypt para fazer o hash da senha deixando a aplicação mais segura. Para a manipulação do banco de dados o ORM utilizado foi o sequelize e o banco de dados é o MySQL.

Rode o projeto localmente

⚠️ É preciso ter o Node instalado em sua máquina.

⚠️ É preciso criar um arquivo .env na raiz do projeto, siga o exemplo do arquivo env.example.

  1. Clone o repositório:
git clone git@github.com:mairess/project-blogs-api.git
  1. Instale as dependências:
npm install
  1. Inicie o container do banco de dados:
docker compose up -d db
  1. Crie o banco e rode as migrations:
env $(cat .env) npm run predev
  1. Rode os seeders:
env $(cat .env) npm run seed
  1. Inicie o servidor:
env $(cat .env) npm run dev
  1. O servidor estará disponível na porta 3001
Rode o projeto com o docker

⚠️ É preciso ter o Docker instalado em sua máquina.

  1. Clone o repositório:
git clone git@github.com:mairess/project-blogs-api.git
  1. Suba os containers:
docker compose up -d
  1. Acesse o terminal iterativo do container blogs_api:
docker exec -it blogs_api sh 
  1. Crie o banco e rode as migrations:
npm run predev 
  1. Rode os seeders:
npm run seed
  1. Inicie o servidor:
npm run dev
  1. O servidor estará disponível na porta 3001

Documentação da API

A documentação desta api está disponível na rota /api-docs

Tecnologias utilizadas

  • Javascript
  • Node
  • Express
  • Sequelize
  • MySQL
  • JWT
  • Bcrypt
  • Joi
  • Docker
  • Swagger-ui

About

Aplicação em Node com Express e Javascript para fazer um CRUD de posts. Usa o ORM Sequelize e o bando de dados MySQL e conta com a segurança do JWT e do bcrypt. Orquestrada com docker compose.


Languages

Language:JavaScript 99.3%Language:Dockerfile 0.7%