Skip to content

Gilberto-Mascena/dslist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

114 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

English | Portuguรชs Brasileiro

Status de Manutenรงรฃo GitHub Actions Status Licenรงa Estrelas no GitHub Problemas no GitHub Versรฃo do Repositรณrio Data de Lanรงamento Tamanho do Repositรณrio

About the Project

This project is part of the Java and Spring Boot Intensive Course, focusing on Java back-end development. The goal is to build a back-end application with a database to manage a list of games, using Java and the Spring Boot framework.

Features

  • CRUD operations to manage game data
  • H2 and PostgreSQL database support
  • Environment-based configuration
  • API testing with Postman or Insomnia
  • Docker integration

Class Diagram

UML

Estructure of the Project

โ”œโ”€โ”€ assets
โ”‚ย ย  โ”œโ”€โ”€ DSList API.postman_collection.json
โ”‚ย ย  โ”œโ”€โ”€ dslist-home.png
โ”‚ย ย  โ”œโ”€โ”€ dslist-page-1.png
โ”‚ย ย  โ”œโ”€โ”€ dslist-page-2.png
โ”‚ย ย  โ””โ”€โ”€ uml.png
โ”œโ”€โ”€ changelog.md
โ”œโ”€โ”€ LICENSE.md
โ”œโ”€โ”€ mvnw
โ”œโ”€โ”€ mvnw.cmd
โ”œโ”€โ”€ pom.xml
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ README-pt_br.md
โ”œโ”€โ”€ sample.env
โ”œโ”€โ”€ src
โ”‚ย ย  โ”œโ”€โ”€ main
โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ br
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ com
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย          โ””โ”€โ”€ gilbertodev
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย              โ””โ”€โ”€ dslist
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ config
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ SwaggerConfig.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ WebConfig.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ controllers
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ exceptions
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ GlobalExceptionHandler.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ StandardError.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ GameController.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ GameListController.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ DslistApplication.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ dto
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ GameDTO.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ GameListDTO.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ GameMinDTO.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ ReplacementDTO.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ entities
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ Belonging.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ BelongingPK.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ Game.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ GameList.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ exceptions
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ GameNotFoundException.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ InvalidMoveException.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ projections
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ GameMinProjection.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”œโ”€โ”€ repositories
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ”œโ”€โ”€ GameListRepository.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ”‚ย ย  โ””โ”€โ”€ GameRepository.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                  โ””โ”€โ”€ services
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                      โ”œโ”€โ”€ GameListService.java
โ”‚ย ย  โ”‚ย ย  โ”‚ย ย                      โ””โ”€โ”€ GameService.java
โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ resources
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ application-dev.yml
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ application-prod.yml
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ application-test.yml
โ”‚ย ย  โ”‚ย ย      โ”œโ”€โ”€ application.yml
โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€ import.sql
โ”‚ย ย  โ””โ”€โ”€ test
โ”‚ย ย      โ””โ”€โ”€ java
โ”‚ย ย          โ””โ”€โ”€ br
โ”‚ย ย              โ””โ”€โ”€ com
โ”‚ย ย                  โ””โ”€โ”€ gilbertodev
โ”‚ย ย                      โ””โ”€โ”€ dslist
โ”‚ย ย                          โ”œโ”€โ”€ common
โ”‚ย ย                          โ”‚ย ย  โ””โ”€โ”€ GameConstants.java
โ”‚ย ย                          โ””โ”€โ”€ service
โ”‚ย ย                              โ””โ”€โ”€ GameServiceTest.java

Front-end Images

home

page-1

page-2

Functionalities

  • List all games
  • Search game by ID
  • Move game in list
  • List games in category
  • List by category

Technologies used

Prerequisites

Running the Project

  • Cloning the Repository
    git clone git@github.com:Gilberto-Mascena/dslist.git
    cd dslist
    mvn clean install
    mvn spring-boot:run
INSERT INTO tb_game_list (name) VALUES ('Aventura e RPG');
INSERT INTO tb_game_list (name) VALUES ('Jogos de plataforma');

INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Mass Effect Trilogy', 4.8, 2012, 'Role-playing (RPG), Shooter', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/1.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Red Dead Redemption 2', 4.7, 2018, 'Role-playing (RPG), Adventure', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/2.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('The Witcher 3: Wild Hunt', 4.7, 2014, 'Role-playing (RPG), Adventure', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/3.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Sekiro: Shadows Die Twice', 3.8, 2019, 'Role-playing (RPG), Adventure', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/4.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Ghost of Tsushima', 4.6, 2012, 'Role-playing (RPG), Adventure', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/5.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Super Mario World', 4.7, 1990, 'Platform', 'Super Ness, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/6.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Hollow Knight', 4.6, 2017, 'Platform', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/7.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Ori and the Blind Forest', 4, 2015, 'Platform', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/8.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Cuphead', 4.6, 2017, 'Platform', 'XBox, Playstation, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/9.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');
INSERT INTO tb_game (title, score, game_year, genre, platforms, img_url, short_description, long_description) VALUES ('Sonic CD', 4, 1993, 'Platform', 'Sega CD, PC', 'https://raw.githubusercontent.com/devsuperior/java-spring-dslist/main/resources/10.png', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit esse officiis corrupti unde repellat non quibusdam! Id nihil itaque ipsum!', 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus dolorum illum placeat eligendi, quis maiores veniam. Incidunt dolorum, nisi deleniti dicta odit voluptatem nam provident temporibus reprehenderit blanditiis consectetur tenetur. Dignissimos blanditiis quod corporis iste, aliquid perspiciatis architecto quasi tempore ipsam voluptates ea ad distinctio, sapiente qui, amet quidem culpa.');

INSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 1, 0);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 2, 1);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 3, 2);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 4, 3);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 5, 4);

INSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 6, 0);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 7, 1);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 8, 2);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 9, 3);
INSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 10, 4);

API Testing

API Documentation

๐Ÿ“œ License

This project is licensed under the MIT License. See more details at: LICENSE.md

Gilberto | Dev 2023

About

Backend application with Java, Spring Boot, Postgres.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages