https://github.com/orodrigogo/backend-gympoint
Segundo Desafio do primeiro módulo do Bootcamp GoStack.
https://github.com/orodrigogo/backend-gympoint
Last synced: 8 months ago
JSON representation
Segundo Desafio do primeiro módulo do Bootcamp GoStack.
- Host: GitHub
- URL: https://github.com/orodrigogo/backend-gympoint
- Owner: orodrigogo
- Created: 2019-10-15T23:59:43.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-22T12:43:28.000Z (almost 3 years ago)
- Last Synced: 2025-01-01T13:08:56.270Z (9 months ago)
- Language: JavaScript
- Homepage:
- Size: 10.6 MB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Desafio 2: Projeto Gympoint“Desafio realizado no treinamento imersivo GoStack - Rodrigo Gonçalves Santana”!## :rocket: Requisitos do desafio
A aplicação que iremos dar início ao desenvolvimento a partir de agora é um app gerenciador de academia, o **Gympoint**.
### Um pouco sobre as ferramentas
Você deverá criar a aplicação do zero utilizando o [Express](https://expressjs.com/), além de precisar configurar as seguintes ferramentas:
- Sucrase + Nodemon;
- ESLint + Prettier + EditorConfig;
- Sequelize (Utilize PostgreSQL ou MySQL);### Funcionalidades
Abaixo estão descritas as funcionalidades que você deve adicionar em sua aplicação.
#### 1. Autenticação
Permita que um usuário se autentique em sua aplicação utilizando e-mail e uma senha.
Crie um usuário administrador utilizando a funcionalidade de [seeds do sequelize](https://sequelize.org/master/manual/migrations.html#creating-first-seed), essa funcionalidade serve para criarmos registros na base de dados de forma automatizada.
Para criar um seed utilize o comando:
```js
yarn sequelize seed:generate --name admin-user
```No arquivo gerado na pasta `src/database/seeds` adicione o código referente à criação de um usuário administrador:
```js
const bcrypt = require("bcryptjs");module.exports = {
up: QueryInterface => {
return QueryInterface.bulkInsert(
"users",
[
{
name: "Administrador",
email: "admin@gympoint.com",
password_hash: bcrypt.hashSync("123456", 8),
created_at: new Date(),
updated_at: new Date()
}
],
{}
);
},down: () => {}
};
```Executar:
```js
yarn sequelize db:seed:all
```Agora você tem um usuário na sua base de dados, utilize esse usuário para todos logins daqui pra frente.
- A autenticação deve ser feita utilizando JWT.
- Realize a validação dos dados de entrada;#### 2. Cadastro de alunos
Permita que alunos sejam mantidos (cadastrados/atualizados) na aplicação utilizando nome, email, idade, peso e altura.
Utilize uma nova tabela no banco de dados chamada `students`.
O cadastro de alunos só pode ser feito por usuários autenticados na aplicação.