{"id":29458356,"url":"https://github.com/eduqg/gympointback","last_synced_at":"2026-05-05T19:33:01.874Z","repository":{"id":44184939,"uuid":"216832069","full_name":"eduqg/GympointBack","owner":"eduqg","description":"Gympoint is a software for students and gym managers. Rocketseat Challenge developed in Node.js :rocket:","archived":false,"fork":false,"pushed_at":"2023-01-24T01:03:58.000Z","size":910,"stargazers_count":0,"open_issues_count":22,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-10T23:17:26.560Z","etag":null,"topics":["gympoint","jest","nodejs","postgresql","sequelize"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eduqg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-22T14:18:30.000Z","updated_at":"2020-01-03T20:59:09.000Z","dependencies_parsed_at":"2023-02-13T07:31:13.036Z","dependency_job_id":null,"html_url":"https://github.com/eduqg/GympointBack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eduqg/GympointBack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eduqg%2FGympointBack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eduqg%2FGympointBack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eduqg%2FGympointBack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eduqg%2FGympointBack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eduqg","download_url":"https://codeload.github.com/eduqg/GympointBack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eduqg%2FGympointBack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32664967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gympoint","jest","nodejs","postgresql","sequelize"],"created_at":"2025-07-13T23:37:17.661Z","updated_at":"2026-05-05T19:33:01.856Z","avatar_url":"https://github.com/eduqg.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\n# Backend da aplicação Gympoint em Node.js\n\nParte do desafio final do curso Gostack 9 - Bootcamp Rocketseat.\n\n## Para executar o projeto\n\nInstale as dependências do projeto.\n\n```console\nyarn\n```\n\nFaça a configuração do banco de dados PostgreSQL.\n\nCom o docker, crie um container do banco de dados e execute-o na porta de sua preferencia.\n\n```console\ndocker run --name database -e POSTGRES_PASSWORD=docker -p 5433:5432 -d postgres:11\n\ndocker start database\n```\n\nCrie no seu banco de dados um database chamado gympoint. Pode ser usado um programa como o Postbird ou o DBeaver para esta finalidade.\n\nCopie o arquivo .env-example para .env e adicione as variáveis necessárias.\n\n```console\ncp .env-example .env\n```\n\nCrie dados ficctícios no banco de dados com as seeds pré-definidas.\n\n```console\nyarn sequelize db:seed:all\n```\n\nExecute a aplicação.\n\n```console\nyarn dev\n```\n\nCom o backend configurado é possível acessar dados no [frontend em ReactJS](https://github.com/eduqg/GympointFront) e no [app mobile em React Native](https://github.com/eduqg/GympointReactNative) disponíveis no github.\n\nPara testes, copiar o seguinte arquivo e setar variáveis.\n\n```console\ncp .env.test-example .env.test\n```\n\nExecutar testes com jest.\n\n```console\nyarn test\n```\n\n## Comandos Utilizados\n\n\n### Inicialização do projeto\n```console\nyarn init -y\n```\n\n```console\nyarn add nodemon -D\n```\n\nEm package.json adicionar\n\n```console\n\"scripts\": {\n  \"dev\":\"nodemon src/server.js\"\n}\n```\n\n```console\nyarn add sucrase -D\n```\n\n```console\nyarn sucrase-node src/server.js\n```\n\nTrocar modo de importação de:\n\n```console\nconst express = require('express');\n```\n\nPara:\n\n```console\nimport express from 'express';\n```\n\n### Sucrase + Nodemon\n\nCriar 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.\n\nIniciar configurações de debug clicando no 'inseto', add configuration e fazer alterações no arquivo launch.json\n\nIniciar aplicação com yarn dev:debug e colocar breackpoints desejados.\n\n### Docker CE\n\nFazer a instalação\n```console\ndocker run --name database -e POSTGRES_PASSWORD=docker -p 5433:5432 -d postgres:11\n```\n\n```console\ndocker ps = para ver containers.\n\ndocker ps -a = para ver todos.\n\ndocker stop database (ou o id).\n\ndocker start database\n\ndocker logs database\n```\n\nOutros comandos:\n\n```console\ndocker stop $(docker ps -a -q) = para containers\ndocker rm $(docker ps -a -q) = remove containers\nsudo service postgresql stop = para postgres do pc\nsudo service postgresql start = inicia postgres do pc\n```\n\nPortanto:\n\nPor ter postgres para outro projeto, deixar porta 5432 para ele.\nUsar a porta 5433 para o GoBarber.\n\n### Postbird\nPara visualizar dados do postgres. Instalar e usar por exemplo:\n\n```console\nHost\nlocalhost\n\nPort\n5433\n\nUsername\npostgres\n\nPassword\ndocker\n```\n\n### Eslint\n\n```console\nyarn add eslint -D\n\nyarn eslint --init\n```\n\n```console\n? How would you like to use ESLint? To check syntax, find problems, and enforce code style\n\n? What type of modules does your project use? JavaScript modules (import/export)\n\n? Which framework does your project use? None of these\n? Does your project use TypeScript? No\n\n? Where does your code run? Node\n\n? How would you like to define a style for your project? Use a popular style guide\n\n? Which style guide do you want to follow? Airbnb (https://github.com/airbnb/javascript)\n\n? What format do you want your config file to be in? JavaScript\n\nChecking peerDependencies of eslint-config-airbnb-base@latest\n\nThe config that you ve selected requires the following dependencies:\n\neslint-config-airbnb-base@latest eslint@^5.16.0 || ^6.1.0 eslint-plugin-import@^2.18.2\n\n? Would you like to install them now with npm? Yes\n```\n\nExcluir package.lock.json\n\nInstalar dependencias\n\n```console\nyarn install\n```\n\nPara arrumar tudo em uma pasta, executar:\n```console\nyarn eslint --fix src --ext .js = para arrumar tudo em uma pasta\n```\n\n### Prettier\n```console\nyarn add prettier eslint-config-prettier eslint-plugin-prettier -D\n```\n\nIntegrado ao ESLint\nTamanho de linhas\n\n### Extensao editorconfig\n\nInstalar pelo VSCode. Para diferentes editores de texto entre desenvolvedores. Configurar para padronizar.\n\n\n### Postgres\nPara usar postgres\n```console\nyarn add pg pg-hstore\n```\n\n### Sequelize\n\nPara integração com postgres\n\n```console\nyarn add sequelize\n```\nPara ter comandos do sequelize\n\n```console\nyarn add sequelize-cli -D\n```\n\nPara criar migração inicial\n\n```console\nyarn sequelize migration:create --name=create-users\n```\n\nPara realizar migrações\n\n```console\nyarn sequelize db:migrate\n```\n\nRollback\n\n```console\nyarn sequelize db:migrate:undo\n```\n\n```console\nyarn sequelize db:migrate:undo:all\n```\n\nSeeds\n\nGerar Seed\n\n```console\nyarn sequelize seed:generate --name admin-user\n```\n\nExecutar seed.\n\n```console\nyarn sequelize db:seed --seed admin-user\n```\n\n```console\nyarn sequelize db:seed:all\nyarn sequelize db:seed\n```\n\n### Jsonwebtoken\n\nPara autenticação utilizando jwt.\n\n```console\n yarn add jsonwebtoken\n```\n### Bcrypt\nPara senha com hash\n```console\nyarn add bcryptjs\n```\n\n### Yup\nPara validação de campos utilizando schemas.\n```console\nyarn add yup\n```\n\n### Biblioteca de datas\n\nUsar versão mais atual.\n\n```console\nyarn add date-fns@next\n```\n\n### Para testes\n\n```console\n  yarn add jest @sucrase/jest-plugin @types/jest sqlite3 -D\n  yarn jest --init\n```\n\nPara fazer requests nos testes.\n\n```console\nyarn add supertest -D\n```\n\nPara dados fake.\n\n```console\nyarn add factory-girl faker -D\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feduqg%2Fgympointback","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feduqg%2Fgympointback","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feduqg%2Fgympointback/lists"}