Giter VIP home page Giter VIP logo

fmt-tutor-mate's Introduction

Tutor-Mate Restful API

Este projeto é uma API RESTful desenvolvida em Java e Spring Boot para gerenciar agendamentos entre alunos e tutores. Utiliza JDK 17 e banco de dados PostgreSQL com o esquema de banco de dados especificado.

Autor

Sou a Barbara Calderon, desenvolvedora de software.

Endpoints da API

/alunos

Método Endpoint Descrição
GET /alunos Retorna todos os alunos cadastrados.
GET /alunos/{id} Retorna o aluno com o ID especificado.
POST /alunos Cria um novo aluno.
PUT /alunos/{id} Atualiza os dados do aluno com o ID especificado.
DELETE /alunos/{id} Remove o aluno com o ID especificado.

/tutores

Método Endpoint Descrição
GET /tutores Retorna todos os tutores cadastrados.
GET /tutores/{id} Retorna o tutor com o ID especificado.
POST /tutores Cria um novo tutor.
PUT /tutores/{id} Atualiza os dados do tutor com o ID especificado.
DELETE /tutores/{id} Remove o tutor com o ID especificado.

/agendas

Método Endpoint Descrição
GET /agendas Retorna todas as agendas.
GET /agendas/{id} Retorna uma agenda pelo ID especificado.
POST /agendas Cria uma nova agenda.
PUT /agendas/{id} Atualiza uma agenda pelo ID especificado.
DELETE /agendas/{id} Deleta uma agenda pelo ID especificado.

/materiais

Método Endpoint Descrição
GET /materiais Lista todos os materiais disponíveis
GET /materiais/{id} Busca um material pelo ID
POST /materiais Cria um novo material
PUT /materiais/{id} Atualiza um material existente pelo ID
DELETE /materiais/{id} Deleta um material pelo ID

/agendamentos

Método Endpoint Descrição
GET /agendamentos/alunos/{alunoId} Retorna os agendamentos pertencentes ao aluno com o ID especificado.
GET /agendamentos/tutores/{tutorId} Retorna os agendamentos pertencentes ao tutor com o ID especificado.
GET /agendamentos/proximo/aluno/{alunoId} Retorna os próximos agendamentos pertencentes ao aluno com o ID especificado.
GET /agendamentos/proximo/tutor/{tutorId} Retorna os próximos agendamentos pertencentes ao tutor com o ID especificado.

Tecnologias Utilizadas

  • Java 17
  • Spring Boot: framework para desenvolvimento de aplicações Java
  • Spring Boot Starter Data JPA: para persistência de dados
  • Spring Boot Starter Web: para desenvolvimento de aplicativos da web
  • Spring Boot DevTools: ferramenta para desenvolvimento mais produtivo
  • PostgreSQL: banco de dados relacional
  • Project Lombok: para reduzir a verbosidade do código Java
  • Maven: gerenciador de dependências e construção de projetos

Executando o Projeto

Antes de executar o projeto, certifique-se de ter o JDK 17 e o PostgreSQL instalados em sua máquina.

  1. Clone o repositório do projeto:

    git clone [email protected]:barbaracalderon/fmt-tutor-mate.git
  2. Acesse o diretório do projeto:

    cd fmt-tutor-agenda-api
  3. Configure o banco de dados PostgreSQL:

    • Crie um banco de dados com o nome fmt_tutor_agenda_db (sugestão)
    • Insira suas configurações no arquivo application.properties:
# arquivo application.properties
spring.application.name=tutor
server.port=8080
spring.datasource.url=jdbc:postgresql://localhost:5432/fmt_tutor_agenda_db
spring.datasource.username=postgres
spring.datasource.password=[digite sua senha]
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
  1. Execute o projeto:
    ./mvnw spring-boot:run

O servidor será iniciado em http://localhost:8080.

Testando os Endpoints

Você pode testar os endpoints utilizando ferramentas como Postman ou Insomnia. Por exemplo:

  • Para listar todos os alunos:

    GET http://localhost:8080/alunos
  • Para criar um novo aluno:

    POST http://localhost:8080/tutores
    
    Body:
    {
      "nome": "Nome do Tutor",
      "especialidade": "Descrição da sua especialidade"
    }

Certifique-se de substituir os valores de exemplo pelos valores reais.

Atividade

Esta foi uma atividade da semana 10, execução própria de uma proposta de projeto.

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.