Curso Literalura

Descrição do Projeto

O projeto Curso Literalura é uma aplicação desenvolvida em Java utilizando o framework Spring Boot 3. O objetivo deste projeto é consumir dados da API do Gutendex, que fornece informações sobre livros e autores, e armazenar essas informações em um banco de dados PostgreSQL. A aplicação permite realizar diversas operações, como busca de livros por título, listagem de livros e autores registrados, listagem de autores vivos em determinado ano, listagem de livros por idioma, exibição dos top 10 livros mais baixados, busca de autores por nome e cálculo da média de downloads por autor.

Funcionalidades

  • Buscar Livro pelo Título: Permite buscar um novo livro pelo título na API do Gutendex e salvá-lo no banco de dados.
  • Listar Livros Registrados: Exibe todos os livros que estão registrados no banco de dados.
  • Listar Autores Registrados: Exibe todos os autores que estão registrados no banco de dados.
  • Listar Autores Vivos em Determinado Ano: Permite buscar e listar autores que estavam vivos em um determinado ano.
  • Listar Livros em Determinado Idioma: Exibe todos os livros cadastrados em um idioma específico.
  • Top 10 Livros: Mostra os 10 livros mais baixados registrados no banco de dados.
  • Buscar Autores por Nome: Permite buscar autores por nome no banco de dados.
  • Média de Downloads por Autor: Calcula e exibe a média de downloads dos livros de um autor específico.

Estrutura do Projeto

Modelos

  • Autor: Representa a entidade de Autor, com atributos como nome, data de nascimento, data de falecimento e lista de livros.
  • Livro: Representa a entidade de Livro, com atributos como nome, idioma, quantidade de downloads e autor.
  • DadosAutor: Record que mapeia os dados do autor recebidos da API do Gutendex.
  • DadosLivro: Record que mapeia os dados do livro recebidos da API do Gutendex.

Repositórios

  • AutorRepository: Interface que estende JpaRepository para realizar operações de CRUD e consultas personalizadas na entidade Autor.
  • LivroRepository: Interface que estende JpaRepository para realizar operações de CRUD e consultas personalizadas na entidade Livro.

Serviços

  • ConsumoApi: Classe responsável por consumir a API do Gutendex.
  • DadosConverter: Classe responsável por converter os dados recebidos da API para os modelos utilizados na aplicação.

Principal

  • Principal: Classe principal que contém o menu de opções e as funcionalidades da aplicação.

Configuração do Ambiente

Pré-requisitos

  • Java 17
  • Maven
  • PostgreSQL

Configuração do Banco de Dados

Configure o arquivo application.properties com as seguintes informações:

spring.datasource.url=jdbc:postgresql://${DB_HOST}/${DB_NAME}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
hibernate.dialect=org.hibernate.dialect.HSQLDialect

spring.jpa.show-sql=false spring.jpa.format-sql=true spring.jpa.hibernate.ddl-auto=update

Substitua ${DB_HOST}, ${DB_NAME}, ${DB_USER} e ${DB_PASSWORD} pelos valores apropriados para o seu ambiente.

Dependências do Maven

As principais dependências do projeto são:

  • Spring Boot Starter Data JPA
  • Spring Boot Starter Web
  • PostgreSQL Driver
  • Lombok
  • Jackson Databind

Executando a Aplicação

Para executar a aplicação, siga os passos abaixo:

  1. Clone o repositório:
    git clone https://github.com/madogap/alura-literalura2024.git
  2. Navegue até o diretório do projeto:
    cd projeto-literalura
  3. Compile e execute a aplicação utilizando o Maven:
    mvn spring-boot:run

A aplicação estará disponível e pronta para uso. Use o menu de opções para interagir com as funcionalidades disponíveis.

Contribuições

Sinta-se à vontade para contribuir com este projeto. Para contribuir, faça um fork do repositório, crie um branch para suas alterações e envie um pull request.

Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

Criando o Projeto com Spring Initializr

Siga os passos abaixo para criar o projeto usando o Spring Initializr:

  1. Acesse o site Spring Initializr.
  2. Configure as opções do projeto:
    • Project: Maven Project
    • Language: Java
    • Spring Boot: 3.0.0
    • Project Metadata:
      • Group: com.exemplo
      • Artifact: curso-literalura
      • Name: Curso Literalura
      • Description: Projeto para consumir a API do Gutendex e armazenar dados no PostgreSQL
      • Package Name: com.exemplo.cursoliteralura
      • Packaging: Jar
      • Java: 17
    • Adicione as dependências necessárias:
      • Spring Web
      • Spring Data JPA
      • PostgreSQL Driver
      • Lombok
  3. Clique em Generate para baixar o projeto.
  4. Extraia o projeto baixado em um diretório de sua escolha.

Fazendo o Clone do Projeto

Siga os passos abaixo para fazer o clone do projeto:

  1. Abra um terminal.
  2. Navegue até o diretório onde deseja clonar o projeto.
  3. Execute o comando:
    git clone https://github.com/usuario/projeto-literalura.git
  4. Navegue até o diretório do projeto clonado:
    cd projeto-literalura

Executando a Aplicação

Para executar a aplicação, siga os passos abaixo:

  1. Compile e execute a aplicação utilizando o Maven:
    mvn spring-boot:run

A aplicação estará disponível e pronta para uso. Use o menu de opções para interagir com as funcionalidades disponíveis.

Contribuições

Sinta-se à vontade para contribuir com este projeto. Para contribuir, faça um fork do repositório, crie um branch para suas alterações e envie um pull request.

Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.