Skip to content

Gympoint is a software for students and gym managers. Rocketseat Challenge developed in Node.js 🚀

License

Notifications You must be signed in to change notification settings

eduqg/GympointBack

Repository files navigation

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

About

Gympoint is a software for students and gym managers. Rocketseat Challenge developed in Node.js 🚀

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published