Giter VIP home page Giter VIP logo

bootcamp-gostack-desafio-03's Introduction

Gympoint

Desafio 3: Gympoint, continuando a aplicação

“Faça seu melhor, mas sempre com prazo de entrega”!

GitHub language count Made by Rocketseat License Stargazers

Sobre o desafio   |    Entrega   |    Licença

🚀 Sobre o desafio

Durante esse desafio vamos aprimorar a aplicação Gympoint que demos início no desafio anterior implementando funcionalidades que aprendemos durante as aulas até agora.

Funcionalidades do administrador

Abaixo estão descritas as funcionalidades que você deve adicionar em sua aplicação para administradores.

1. Gestão de planos

Permita que o usuário possa cadastrar planos para matrícula de alunos, o plano deve possuir os seguintes campos:

  • title (nome do plano);
  • duration (duração em número de meses);
  • price (preço mensal do plano);
  • created_at;
  • updated_at;

Crie alguns planos como por exemplo:

  • Start: Plano de 1 mês por R$129;
  • Gold: Plano de 3 meses por R$109/mês;
  • Diamond: Plano de 6 meses por R$89/mês;

Crie rotas para listagem/cadastro/atualização/remoção de planos;

Obs.: Essa funcionalidade é para administradores autenticados na aplicação.

2. Gestão de matrículas

Apesar do aluno estar cadastrado na plataforma, isso não significa que o mesmo tem uma matrícula ativa e que pode acessar a academia.

Nessa funcionalidade criaremos um cadastro de matrículas por aluno, a matrícula possui os campos:

  • student_id (referência ao aluno);
  • plan_id (referência ao plano);
  • start_date (data de início da matrícula);
  • end_date (date de término da matrícula);
  • price (preço total calculado na data da matrícula);
  • created_at;
  • updated_at;

A data de início da matrícula deve ser escolhida pelo usuário.

A data de término e preço da matrícula deve ser calculada com base no plano selecionado, por exemplo:

Data de início informada: 23/05/2019 Plano selecionado: Gold (3 meses) Data de término calculada: 23/08/2019 (3 meses depois do início) Preço calculado: R$327

Quando um aluno realiza uma matrícula ele recebe um e-mail com detalhes da sua inscrição na academia como plano, data de término, valor e uma mensagem de boas-vidas.

Crie rotas para listagem/cadastro/atualização/remocação de matrículas;

Obs.: Essa funcionalidade é para administradores autenticados na aplicação.

Funcionalidades do aluno

Abaixo estão descritas as funcionalidades que você deve adicionar em sua aplicação para alunos.

1. Checkins

Quando o aluno chega na academia o mesmo realiza um check-in apenas informando seu ID de cadastro (ID do banco de dados);

Esse check-in serve para monitorar quantas vezes o usuário frequentou a academia na semana.

A tabela de checkins possui os campos:

  • student_id (referência ao aluno);
  • created_at;
  • updated_at;

O usuário só pode fazer 5 checkins dentro de um período de 7 dias corridos.

Exemplo de requisição: POST https://gympoint.com/students/3/checkins

Crie uma rota para listagem de todos checkins realizados por um usuário com base em seu ID de cadastro;

Exemplo de requisição: GET https://gympoint.com/students/3/checkins

2. Pedidos de auxílio

O aluno pode criar pedidos de auxílio para a academia em relação a algum exercício, alimentação ou instrução qualquer;

A tabela help_orders deve conter os seguintes campos:

  • student_id (referência ao aluno);
  • question (pergunta do aluno em texto);
  • answer (resposta da academia em texto);
  • answer_at (data da resposta da academia);
  • created_at;
  • updated_at;

Crie uma rota para a academia listar todos pedidos de auxílio sem resposta;

Crie uma rota para o aluno cadastrar pedidos de auxílio apenas informando seu ID de cadastro (ID do banco de dados);

Exemplo de requisição: POST https://gympoint.com/students/3/help-orders

Crie uma rota para listar todos pedidos de auxílio de um usuário com base em seu ID de cadastro;

Exemplo de requisição: GET https://gympoint.com/students/3/help-orders

Crie uma rota para a academia responder um pedido de auxílio:

Exemplo de requisição: POST https://gympoint.com/help-orders/1/answer

Quando um pedido de auxílio for respondido, o aluno deve receber um e-mail da plataforma com a pergunta e resposta da academia;

📅 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!

bootcamp-gostack-desafio-03's People

Contributors

diego3g avatar jpedroschmitz avatar dependabot[bot] avatar burn-c avatar gobr avatar jonathanrufino 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.