An open API service indexing awesome lists of open source software.

https://github.com/willaevangelista/cyber-games_java

Repositório do Projeto CyberGames, desenvolvido durante o Bootcamp Full Stack da Generation Brasil.
https://github.com/willaevangelista/cyber-games_java

api-rest generation-brasil java spring-boot sql

Last synced: about 1 month ago
JSON representation

Repositório do Projeto CyberGames, desenvolvido durante o Bootcamp Full Stack da Generation Brasil.

Awesome Lists containing this project

README

          

# 🎮 Projeto CyberGames 🎮
## Sistema de Loja de Games

![CyberGames Banner](https://github.com/willaevangelista/cyber-games_java/blob/2730fd658172ae63e849b35775189b3b1604c94b/src/img/CyberGames_Banner.png)

O projeto **CyberGames** é uma aplicação backend desenvolvida com o **Spring Framework**. O principal objetivo deste sistema é criar uma **API CRUD** para gerenciar produtos de uma loja de games, organizados por categorias. A aplicação segue boas práticas de desenvolvimento, utilizando uma arquitetura em camadas (*Model, Repository, Controller*) e relacionamento **One to Many** entre **Produto** e **Categoria**.

******

![Java](https://a11ybadges.com/badge?logo=java)
![Spring](https://a11ybadges.com/badge?logo=spring)
![MySQL](https://a11ybadges.com/badge?logo=mysql)
![Insomnia](https://a11ybadges.com/badge?logo=insomnia)

******

## 📖 Tabela de Conteúdo
- [💡 Conhecimentos Mobilizados](#conhecimentosMobilizados)
- [🏗️ Estrutura do Projeto](#estruturaDoProjeto)
- [📂 Código Desenvolvido](#codigoDesenvolvido)
- [🛠️ Tecnologias Utilizadas](#tecnologiasUtilizadas)

---

## 💡 Conhecimentos Mobilizados

- **Spring Framework**: Utilização do **Spring Boot** para a construção de **APIs RESTful**, utilizando boas práticas de desenvolvimento e design de APIs.
- **JPA e Hibernate**: Mapeamento **objeto-relacional** para interação com o banco de dados **MySQL**.
- **Padrões de Projeto**: Implementação da **arquitetura em camadas** (*Model, Repository, Controller*) e relacionamento **One to Many** entre as classes **Categoria** e **Produto**.
- **Banco de Dados**: Criação e configuração do banco de dados **MySQL** com uso de **Spring Data JPA** para persistência dos dados.
- **RESTful API**: Desenvolvimento de endpoints para manipulação de **Produtos** e **Categorias**, permitindo operações **CRUD**.

---

## 🏗️ Estrutura do Projeto
```
cybergames/
├── controller/
│ ├── ProdutoController.java
│ └── CategoriaController.java
├── model/
│ ├── Produto.java
│ └── Categoria.java
├── repository/
│ ├── ProdutoRepository.java
│ └── CategoriaRepository.java
├── resources/
│ └── application.properties
└── CyberGamesApplication.java
```

## 📂 Código Desenvolvido

Aqui estão os detalhes principais do código:

- **`ProdutoController`**: Controlador responsável pela manipulação dos produtos. Implementa métodos como `getAll()`, `getById()`, `create()`, `update()` e `delete()`.
- **`CategoriaController`**: Controlador responsável pela manipulação das categorias. Implementa métodos como `getAll()`, `getById()`, `create()`, `update()` e `delete()`.
- **`Produto`**: Modelo que representa a entidade de um produto no banco de dados. Inclui atributos como `id`, `nome`, `descricao`, `preco`, `categoria`, entre outros.
- **`Categoria`**: Modelo que representa a categoria de um produto, incluindo atributos como `id`, `nome` e o relacionamento com os produtos.
- **`ProdutoRepository`**: Interface que estende `JpaRepository`, permitindo a comunicação com o banco de dados **MySQL** para persistir e consultar produtos.
- **`CategoriaRepository`**: Interface que estende `JpaRepository`, permitindo a comunicação com o banco de dados **MySQL** para persistir e consultar categorias.
- **`application.properties`**: Arquivo de configuração que define a conexão com o banco de dados **MySQL**, incluindo o nome do banco (`db_cybergames`) e outras propriedades do **Spring**.
- **`CyberGamesApplication`**: Classe principal que inicializa a aplicação **Spring Boot**.

---

## 🛠️ Tecnologias Utilizadas

- **Linguagem**: Java
- **Framework**: Spring Boot
- **Banco de Dados**: MySQL
- **JPA/Hibernate**: Para persistência de dados
- **IDE utilizada**: Spring Tools Suite (STS)
- **Ferramenta de Testes**: Insomnia



[Voltar ao topo ⬆️](#topo)