Container com postgres
sudo docker run --name database -e POSTGRES_PASSWORD=docker -p 5432:5432 -d postgres:11
Desafio 2: Gympoint, o início
“Não espere para plantar, apenas tenha paciência para colher”!
Sobre o desafio | Entrega | Licença
🚀 Sobre o desafio
A aplicação que iremos dar início ao desenvolvimento a partir de agora é um app gerenciador de academia, o Gympoint.
Nesse primeiro desafio vamos criar algumas funcionalidades básicas que aprendemos ao longo das aulas até aqui. Esse projeto será desenvolvido aos poucos até o fim da sua jornada onde você terá uma aplicação completa envolvendo back-end, front-end e mobile, que será utilizada para a certificação do bootcamp, então, bora pro código!
Um pouco sobre as ferramentas
Você deverá criar a aplicação do zero utilizando o Express, 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, essa funcionalidade serve para criarmos registros na base de dados de forma automatizada.
Para criar um seed utilize o comando:
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:
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: () => {}
};
Agora execute:
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 administradores autenticados na aplicação.
O aluno não pode se autenticar no sistema, ou seja, não possui senha.
📅 Entrega
Esse desafio não precisa ser entregue e não receberá correção. Além disso, o código fonte não está disponível por fazer parte do desafio final, que será corrigido para certificação do bootcamp. Após concluir o desafio, adicionar esse código ao seu Github é uma boa forma de demonstrar seus conhecimentos para oportunidades futuras.
📝 Licença
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Feito com ♥ by Rocketseat 👋 Entre na nossa comunidade!