Parte do desafio final do curso Gostack 9 - Bootcamp Rocketseat.
Instale as dependências do projeto.
yarn
Faça a configuração do banco de dados PostgreSQL.
Com o docker, crie um container do banco de dados e execute-o na porta de sua preferencia.
docker run --name database -e POSTGRES_PASSWORD=docker -p 5433:5432 -d postgres:11
docker start database
Crie no seu banco de dados um database chamado gympoint. Pode ser usado um programa como o Postbird ou o DBeaver para esta finalidade.
Copie o arquivo .env-example para .env e adicione as variáveis necessárias.
cp .env-example .env
Crie dados ficctícios no banco de dados com as seeds pré-definidas.
yarn sequelize db:seed:all
Execute a aplicação.
yarn dev
Com o backend configurado é possível acessar dados no frontend em ReactJS e no app mobile em React Native disponíveis no github.
Para testes, copiar o seguinte arquivo e setar variáveis.
cp .env.test-example .env.test
Executar testes com jest.
yarn test
yarn init -y
yarn add nodemon -D
Em package.json adicionar
"scripts": {
"dev":"nodemon src/server.js"
}
yarn add sucrase -D
yarn sucrase-node src/server.js
Trocar modo de importação de:
const express = require('express');
Para:
import express from 'express';
Criar na pasta raiz nodemon.json. Quero que rode o node para cada arquivo js mas reqistre o sucrase. Antes de iniciar vai executar sucrase/register.
Iniciar configurações de debug clicando no 'inseto', add configuration e fazer alterações no arquivo launch.json
Iniciar aplicação com yarn dev:debug e colocar breackpoints desejados.
Fazer a instalação
docker run --name database -e POSTGRES_PASSWORD=docker -p 5433:5432 -d postgres:11
docker ps = para ver containers.
docker ps -a = para ver todos.
docker stop database (ou o id).
docker start database
docker logs database
Outros comandos:
docker stop $(docker ps -a -q) = para containers
docker rm $(docker ps -a -q) = remove containers
sudo service postgresql stop = para postgres do pc
sudo service postgresql start = inicia postgres do pc
Portanto:
Por ter postgres para outro projeto, deixar porta 5432 para ele. Usar a porta 5433 para o GoBarber.
Para visualizar dados do postgres. Instalar e usar por exemplo:
Host
localhost
Port
5433
Username
postgres
Password
docker
yarn add eslint -D
yarn eslint --init
? How would you like to use ESLint? To check syntax, find problems, and enforce code style
? What type of modules does your project use? JavaScript modules (import/export)
? Which framework does your project use? None of these
? Does your project use TypeScript? No
? Where does your code run? Node
? How would you like to define a style for your project? Use a popular style guide
? Which style guide do you want to follow? Airbnb (https://github.com/airbnb/javascript)
? What format do you want your config file to be in? JavaScript
Checking peerDependencies of eslint-config-airbnb-base@latest
The config that you ve selected requires the following dependencies:
eslint-config-airbnb-base@latest eslint@^5.16.0 || ^6.1.0 eslint-plugin-import@^2.18.2
? Would you like to install them now with npm? Yes
Excluir package.lock.json
Instalar dependencias
yarn install
Para arrumar tudo em uma pasta, executar:
yarn eslint --fix src --ext .js = para arrumar tudo em uma pasta
yarn add prettier eslint-config-prettier eslint-plugin-prettier -D
Integrado ao ESLint Tamanho de linhas
Instalar pelo VSCode. Para diferentes editores de texto entre desenvolvedores. Configurar para padronizar.
Para usar postgres
yarn add pg pg-hstore
Para integração com postgres
yarn add sequelize
Para ter comandos do sequelize
yarn add sequelize-cli -D
Para criar migração inicial
yarn sequelize migration:create --name=create-users
Para realizar migrações
yarn sequelize db:migrate
Rollback
yarn sequelize db:migrate:undo
yarn sequelize db:migrate:undo:all
Seeds
Gerar Seed
yarn sequelize seed:generate --name admin-user
Executar seed.
yarn sequelize db:seed --seed admin-user
yarn sequelize db:seed:all
yarn sequelize db:seed
Para autenticação utilizando jwt.
yarn add jsonwebtoken
Para senha com hash
yarn add bcryptjs
Para validação de campos utilizando schemas.
yarn add yup
Usar versão mais atual.
yarn add date-fns@next
yarn add jest @sucrase/jest-plugin @types/jest sqlite3 -D
yarn jest --init
Para fazer requests nos testes.
yarn add supertest -D
Para dados fake.
yarn add factory-girl faker -D