Repositório criado para desenvolvimento do Hands On 3 do Gama Experience 42.

Overview

handson3

Repositório criado para desenvolvimento do Hands On 3 do Gama Experience 42.

Neste projeto devemos criar uma API que permita criar registros de psicólogos, pacientes e prontuários.

BANCO DE DADOS

Nossa equipe também ficará responsável por criar o banco de dados que inclui: Criação do DER e do script SQL que gera o banco. Deve ser analisado os endpoints para seja montado de acordo com a necessidade, observando os dados que constituem a 3 entidades do sistema:

  • Pacientes
  • Psicólogos
  • Atendimentos

FUNCIONALIDADES OBRIGATÓRIAS

  1. Login O sistema deve permitir autenticação dos psicólogos para acessar a plataforma. Os dados de autenticação devem ser um e-mail válido e uma senha (mínimo 6 caracteres). As informações de autenticação devem ser criadas no mesmo momento que é feito o cadastro do psicólogo. E para formar esse sistema deve existir os seguintes endpoints:

POST /login Esse endpoint irá receber no body dois parâmetros que devem ser obrigatórios: email e senha. E devem ser validados de acordo com as informações do banco de dados. Caso o email não exista, ou a senha não esteja correta para esse e-mail deverá ser exibida como resposta a seguinte mensagem com o status 401: “E-mail ou senha inválido, verifique e tente novamente” Caso as informações estejam corretas, deve ser gerado um token JWT que contenha o id, email e nome do psicólogo que fez o login dentro do seu conteúdo. Esse token deve ser enviado como resposta com o status 200.

  1. CRUD Psicólogos

GET /psicologos Deve ser listado todos os psicólogos cadastrados no banco de dados, exibindo todos os atributos da entidade. Caso não exista nenhum psicólogo, basta enviar um array vazio como resposta. Em todos os casos deve ser retornado o status 200

GET /psicologos/:id Deve devolver um objeto com todas as informações do psicólogo do id informado na url, com exceção da senha. O status deve ser 200 para resposta. Caso não exista um psicólogo com o id informado deve retornar a seguinte menssagem de erro acompanhada do status 404: “Id não encontrado”

POST /psicologos Deve receber no body da requisição um objeto com as seguintes propriedades:

  • nome ( Campo string ) Ex: Fabricio Oliveira

  • email (Campo string) Ex: [email protected]

  • senha (Campo string) Ex: 123456

  • apresentacao (Campo String) Ex: Sou um psicólogo incrível e muito bom!Todas essas informações são obrigatórias e caso não sejam enviadas devem exibir um status 400 indicando que há um erro na requisição. Se o cadastro ocorrer corretamente deve devolver a resposta com o status 201 e com as informações que foram criadas no banco.

    PUT /psicologos/:id Você irá receber pelo params, o id do psicólogo que será atualizado. Deve receber no body da requisição um objeto com as seguintes propriedades:

  • nome ( Campo String ) Ex: Fabricio Oliveira

  • email (Campo String) Ex: [email protected]

  • senha (Campo String) Ex: 123456

  • apresentacao (Campo String) Ex: Sou um psicólogo incrível e muito bom! Todas essas informações são obrigatórias e caso não sejam enviadas devem exibir um status 400 indicando que há um erro na requisição. Se a atualização ocorrer corretamente deve devolver a resposta com o status 200 e com as informações que foram atualizadas no banco.

    DELETE /psicologos/:id Você irá receber pelo params, o id do psicólogo que será deletado. Se o id existir deve ser deletado do banco de dados o psicólogo informado e devolve como resposta o status 204 Caso não exista um psicólogo com o id informado deve retornar a seguinte menssagem de erro acompanhada do status 404: “Id não encontrado”

  1. CRUD Pacientes

GET /pacientes Deve ser listado todos os pacientes cadastrados no banco de dados, exibindo todos os atributos da entidade. Caso não exista nenhum psicólogo, basta enviar um array vazio como resposta. Em todos os casos deve ser retornado o status 200

GET /pacientes/:id Deve devolver um objeto com todas as informações do paciente do id informado na url. O status deve ser 200 para resposta. Caso não exista um psicólogo com o id informado deve retornar a seguinte menssagem de erro acompanhada do status 404: “Id não encontrado”

POST /pacientes Deve receber no body da requisição um objeto com as seguintes propriedades:

  • nome (Campo string) Ex: Fabricio Oliveira

  • email (Campo string) Ex: [email protected]

  • idade (Campo Date) Ex: 06/12/1997 Todas essas informações são obrigatórias e caso não sejam enviadas devem exibir um status 400 indicando que há um erro na requisição. Se o cadastro ocorrer corretamente deve devolver a resposta com o status 201 e com as informações que foram criadas no banco.

    PUT /pacientes/:id Você irá receber pelo params, o id do paciente que será atualizado. Deve receber no body da requisição um objeto com as seguintes propriedades:

  • nome ( Campo string ) Ex: Fabricio Oliveira- email (Campo string) Ex: [email protected]

  • idade (Campo Date) Ex: 06/12/1997 Todas essas informações são obrigatórias e caso não sejam enviadas devem exibir um status 400 indicando que há um erro na requisição. Se a atualização ocorrer corretamente deve devolver a resposta com o status 200 e com as informações que foram atualizadas no banco.

    DELETE /pacientes/:id Você irá receber pelo params, o id do paciente que será deletado. Se o id existir deve ser deletado do banco de dados o paciente informado e devolve como resposta o status 204 Caso não exista um paciente com o id informado deve retornar a seguinte menssagem de erro acompanhada do status 404: “Id não encontrado”

  1. CRUD Atendimentos

GET /atendimentos Deve ser listado todos os atendimentos realizados por todos os psicólogos cadastrados no banco de dados, exibindo todos os atributos da entidade. Caso não exista nenhum atendimento, basta enviar um array vazio como resposta. Em todos os casos deve ser retornado o status 200

GET /atendimentos/:id Deve devolver um objeto com todas as informações do atendimento do id informado na url. O status deve ser 200 para resposta.Caso não exista o atendimento com o id informado deve retornar a seguinte menssagem de erro acompanhada do status 404: “Id não encontrado”

POST /atendimentos Deve receber no body da requisição um objeto com as seguintes propriedades:

  • paciente_id (Campo inteiro) Ex:: 1
  • data_atendimento (Campo Data) Ex: 2020-01-01T10:10:00z
  • observação (Campo String) - Ex: Descrição do atendimento, pode ser um campo longo. Além das informações recebidas no body, é preciso pegar o id do psicólogo que está logado para associá-lo a esse atendimento. Lembre-se que essas informações ficam presentes dentro do Token JWT. Todas essas informações são obrigatórias e caso não sejam enviadas devem exibir um status 400 indicando que há um erro na requisição. Se o cadastro ocorrer corretamente deve devolver a resposta com o status 201 e com as informações que foram criadas no banco.
  1. Documentação da API Deve ser gerado uma documentação da api, colocando os endpoints existentes assim como os dados que devem ser passados na requisição e o que será devolvido pelo servidor como resposta. Para isso pode ser usado o Insomnia junto com o plugin Export HTML Documentation (Ensinado do material assíncrono), ou o postman.

FUNCIONALIDADE OPCIONAL Dashboard Deverá ser criados um grupo de endpoints a partir da rota /dashboard para cada tipo de informação presente nesta lista:

  • Número de pacientes
  • Número de atendimentos
  • Número de psicólogos
  • Média de atendimentos por psicólogos Ficando por exemplo: /dashboard/numero-paciente. Os dados a serem retornando podem ser apenas os números dos resultados em si!
You might also like...

Repositório contendo o desafio para seleção do StartDB 2022.

Repositório contendo o desafio para seleção do StartDB 2022.

O desafio da forca Olá! Você está prestes a iniciar o nosso desafio para a seleção do StartDB. Se você chegou aqui sem conhecer o StartDB, você pode e

Dec 13, 2022

Repositório do desafio técnico da para o processo seletivo da turma XP na Trybe

Repositório do desafio técnico da para o processo seletivo da turma XP na Trybe

Desafio Backend de Yuri Carvalho Desafio técnico para o processo seletivo da XP Inc. realizado por Yuri Carvalho utilizando: Link da API: https://yuri

Jul 25, 2022

El repositorio de cheatsheets de TIC. Pensado para que los alumnos puedan utilizar a la hora de programar como "ayudamemorias".

El repositorio de cheatsheets de TIC. Pensado para que los alumnos puedan utilizar a la hora de programar como

Cheatsheets de TIC Este es el repositorio de la web de cheatsheets de TIC. Para acceder a la web hacer click acá. ¿Cómo hago un cambio? ¿Mi cambio tie

Nov 10, 2022

Este repositorio é para o primeiro projeto da quarta semana do WCC

Primeiro_projeto_node Instruções para a criação e execução: Crie uma pasta para armazenar os arquivos do projeto Abra a pasta criada no VSCode Após ab

Sep 8, 2022

Este projeto acelara o desenvolvimento com express, gerando uma estrutura completa e opções de gerar controller mode e view pelo cmd.

fast-developer-express Este projeto acelara o desenvolvimento com express, gerando uma estrutura completa e opções de gerar controller mode e view pel

Dec 21, 2021

Repository for hands on practice in Git and GitHub workshop

Git and Github Workshop Jan 2022 Successful contributors ✨ of this project will be featured on the GDSC website so as to bring attraction and learn vi

Feb 10, 2022

Hands Off Ukraine Web Component

 Hands Off Ukraine Web Component

A banner web component that enables companies/individuals to quickly show their support for Ukraine regarding the recent Russian invasion. It hopes to raise awareness to the incident and allow users to quickly access support websites & donate.

Mar 15, 2022

Hands-on lab for Power Platform Tools for Visual Studio Code

Power Platform Tools for Visual Studio Code Lab This repository contains the lab instructions and content on how to experience the Power Platform Tool

Dec 1, 2022

Hands-on real world projects that will help you exercise your knowledge of TypeScript.

Learning TypeScript Projects Hands-on real world projects that will help you exercise your knowledge of TypeScript. Welcome to the repository housing

Dec 26, 2022
Owner
Délio Costa
Cientista da Computação💻 e Dev Full Stack em formação pela Gama Academy.
Délio Costa
Repositório do HandsOn 4 - Gama Academy [XP41]

parrot Repositório do HandsOn 4 - Gama Academy [XP41]. Nesse projeto o desafio proposto foi desenvolver uma rede social chamada Parrot para condomínio

Helenilson Holamek 3 Oct 18, 2022
AWS Lambda & Serverless - Developer Guide with Hands-on Labs. Develop thousands line of aws lambda functions interact to aws serverless services with real-world hands-on labs

AWS Lambda & Serverless - Developer Guide with Hands-on Labs UDEMY COURSE WITH DISCOUNTED - Step by Step Development of this Repository -> https://www

awsrun 35 Dec 17, 2022
Back-end desenvolvido com NodeJS, TypeScript, Prisma e Express para prover dados para as aplicações em desenvolvimento.plicações do evento NLW eSports.

NLW eSports Back-End Aplicação back-end para surprir as necessidades de dados das demais plataformas desenvolvidas que são citadas mais abaixo. Este s

Felippe Rian 2 Sep 17, 2022
Meu repositório com os exercícios realizados durante o curso de Desenvolvimento Web na Trybe.

Desenvolvimento Web Fullstack na Trybe Esse repositório contém todas as atividades de aprendizagem desenvolvidas por mim enquanto estudante da Trybe ?

Marlon Couto 6 Oct 29, 2022
Grupo de Trabalho para o projeto do Desafio Chefão do XP 41 do Curso de FullStck da Gama Academy

Bem Vindos a Tech Dental ?? A Tech Dental é uma plataforma para gestão de prontuários de pacientes em clínicas odontológicas. Secretárias ou até mesmo

Helenilson Holamek 6 Jul 27, 2022
Olá, este repositório, é um mini-relatório do que eu aprendi através de cursos de JavaScript. Este repositório, muito provável que fique familiar com o que os professores ensinam .

About Project Olá pessoal, este repositório tem o objetivo de relatar meus aprendizados dos cursos que fiz sobre a linguagem JavaScript. Não só com o

Nior 6 Jul 10, 2022
Projeto desenvolvido para o curso de desenvolvimento fullstack da escola de programação Driven.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Caio Lemos 3 Nov 11, 2022
Projeto desenvolvido para o curso de desenvolvimento fullstack da escola de programação Driven.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Caio Lemos 4 Nov 11, 2022
Desenvolvimento do projeto Proffy para Web e mobile, na segunda Next Level Week

Tecnologias | Projeto | Layout | Licença ?? Tecnologias Esse projeto foi desenvolvido com as seguintes tecnologias: Node.js React React Native Expo ??

Laciene Alves Melo 2 Jun 12, 2022
Repositório para os arquivos do curso de Angular do Hora de Codar no YouTube.

Teoria This project was generated with Angular CLI version 13.1.2. Development server Run ng serve for a dev server. Navigate to http://localhost:4200

Matheus 99 Dec 29, 2022