Git Product home page Git Product logo

gympointback's Introduction

Backend da aplicação Gympoint em Node.js

Parte do desafio final do curso Gostack 9 - Bootcamp Rocketseat.

Para executar o projeto

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

Comandos Utilizados

Inicialização do projeto

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';

Sucrase + Nodemon

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.

Docker CE

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.

Postbird

Para visualizar dados do postgres. Instalar e usar por exemplo:

Host
localhost

Port
5433

Username
postgres

Password
docker

Eslint

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

Prettier

yarn add prettier eslint-config-prettier eslint-plugin-prettier -D

Integrado ao ESLint Tamanho de linhas

Extensao editorconfig

Instalar pelo VSCode. Para diferentes editores de texto entre desenvolvedores. Configurar para padronizar.

Postgres

Para usar postgres

yarn add pg pg-hstore

Sequelize

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

Jsonwebtoken

Para autenticação utilizando jwt.

 yarn add jsonwebtoken

Bcrypt

Para senha com hash

yarn add bcryptjs

Yup

Para validação de campos utilizando schemas.

yarn add yup

Biblioteca de datas

Usar versão mais atual.

yarn add date-fns@next

Para testes

  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

gympointback's People

Contributors

eduqg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.