Skip to content

Organize sua coleção de games de um jeito prático e divertido com este sistema de gerenciamento! O projeto foi desenvolvido no Framework Spring, utilizando a arquitetura API Rest e a comunicação com o banco de dados.

Notifications You must be signed in to change notification settings

gisellesouzaa/GameCollection

Repository files navigation

GameCollection

Organize sua coleção de games de um jeito prático e divertido com este sistema de gerenciamento!

O projeto foi desenvolvido no Framework Spring, utilizando a arquitetura API Rest e a comunicação com o banco de dados.

Diferencial: Reposicionar os jogos na coleção, atualizando as informações diretamente no banco de dados.

Agora, organizar sua coleção nunca foi tão fácil e eficiente!

🛠 Tecnologias:

As seguintes tecnologias foram usadas na construção do projeto:

Java Spring Boot Postman PostgreSQL

💬 Assuntos abordados:

  • Sistemas web e recursos
  • Cliente/servidor, HTTP, JSON
  • Padrão Rest para API web
  • Estruturação de projeto Spring Rest
  • Entidades e Mapeamento Objeto-Relacional (ORM)
  • Database Seeding
  • Padrão camadas
  • Controller, Service, Repository
  • Modelo de domínio
  • Padrão DTO
  • Relacionamentos N-N
  • Classe de associação, Embedded id
  • Consultas SQL no Spring Data JPA
  • Projections

Modelo de domínio

Imagem da Modelo de domínio

Diagrama de Classes do Projeto:

classDiagram
class Game {
  - id : Long
  - title : String
  - year : Integer
  - genre : String
  - platforms : String
  - score : Double
  - imgUrl : String
  - shortDescription : String
  - longDescription : String
  + findAll()
  + findById(Long id)
  + findByList(Long listId)
}

class GameList {
  - id : Long
  - name : String
  + findAll()
  + move(Long listId, int sourceIndex, int destinationIndex)
}

class Belonging {
  - id : BelongingPK
  - position : Integer
}

class BelongingPK {
  - game : Game
  - list : GameList
}
Game -- Belonging : n-to-n
GameList -- Belonging : n-to-n
Loading

O Projeto é composto por 3 Recursos (Conjunto de Classes e Interfaces responsáveis por mapear um tipo de Objeto e persistir no Banco de dados Relacional) e uma Classe auxiliar:

Classe Descrição
Game Recurso responsável por definir o Objeto Game (jogos da nossa coleção)
GameList Recurso responsável por definir o Objeto GameList (coleção)
Belonging Classe de associação entre Game e GameList. Recurso responsável por indicar a posição do Game dentro do GameList.
Belonging PK Classe auxiliar, que será utilizada como chave primaria múltipla, composto por 2 atributos ‘game_id’ e ‘list_id’

Cada Recurso gera uma tabela no Banco de dados da aplicação, exceto a Classe auxiliar.

Modelo de Relacional

Imagem da Modelo de domínio

Padrão Camadas

Imagem do Padrão Camadas

EndPoints:

Abaixo consta os recursos da API:

Imagem do Padrão Camadas

Dependências utilizadas no projeto:

Dependência Descrição
Spring Web Essa dependência fornece todas as bibliotecas necessárias para criar um projeto WEB e trabalhar com o protocolo HTTP/HTTPS.
Spring Data JPA Java Persistence API (JPA) é uma Biblioteca que armazena e recupera Objetos, que foram persistidos (armazenados) em um Bancos de Dados.
PostgreSQL Driver Responsável pela conexão entre nossa aplicação e o Banco de Dados PostgreSQL
H2 Database Responsável pela conexão entre nossa aplicação e o Banco de Dados H2

Autor:

Giselle Souza

Feito com ❤️ por Giselle Souza. 👋

About

Organize sua coleção de games de um jeito prático e divertido com este sistema de gerenciamento! O projeto foi desenvolvido no Framework Spring, utilizando a arquitetura API Rest e a comunicação com o banco de dados.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages