{"id":21456199,"url":"https://github.com/marcosfshirafuchi/dslist","last_synced_at":"2026-04-12T05:31:15.257Z","repository":{"id":263157067,"uuid":"889266032","full_name":"marcosfshirafuchi/dslist","owner":"marcosfshirafuchi","description":"Projeto DSList é uma aplicação backend Java desenvolvida durante o Intensivão Java Spring, evento organizado pela DevSuperior e ministrado pelo professor Nélio Alves que ocorreu nos dias: 11 a 15 de novembro no ano de 2024.","archived":false,"fork":false,"pushed_at":"2024-11-17T22:01:19.000Z","size":35,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-08T05:46:41.300Z","etag":null,"topics":["devsuperior","h2-database","intensivaojavaspring","java","maven","nelioalves","postman","spring","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcosfshirafuchi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-16T00:00:45.000Z","updated_at":"2024-12-23T15:26:13.000Z","dependencies_parsed_at":"2024-11-16T16:29:28.263Z","dependency_job_id":"6fb33c1b-980c-4ddd-90f0-4d8924d49062","html_url":"https://github.com/marcosfshirafuchi/dslist","commit_stats":null,"previous_names":["marcosfshirafuchi/dslist"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marcosfshirafuchi/dslist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosfshirafuchi%2Fdslist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosfshirafuchi%2Fdslist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosfshirafuchi%2Fdslist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosfshirafuchi%2Fdslist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcosfshirafuchi","download_url":"https://codeload.github.com/marcosfshirafuchi/dslist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcosfshirafuchi%2Fdslist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31705574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T05:11:36.334Z","status":"ssl_error","status_checked_at":"2026-04-12T05:11:27.332Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devsuperior","h2-database","intensivaojavaspring","java","maven","nelioalves","postman","spring","spring-boot"],"created_at":"2024-11-23T05:14:44.561Z","updated_at":"2026-04-12T05:31:15.252Z","avatar_url":"https://github.com/marcosfshirafuchi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto DSList - Intensivão Java Spring\n[![NPM](https://img.shields.io/npm/l/react)](https://github.com/marcosfshirafuchi/dslist/blob/main/LICENSE)\n\n\n# Sobre o projeto\n\n\n\nProjeto DSList é uma aplicação backend Java desenvolvida durante o **Intensivão Java Spring**, evento organizado pela [DevSuperior](https://devsuperior.com \"Site da DevSuperior\") e ministrado pelo professor [Nélio Alves](https://www.linkedin.com/in/nelio-alves/) que ocorreu nos dias: 11 a 15 de novembro no ano de 2024.\n\nA aplicação consiste em desenvolver uma aplicação Java e spring boot para pesquisar os jogos de diferentes plataformas: \n- Aventura e RPG\n- Jogos de plataforma\n\n## Aulas do intensivão\n\u003ca href=\"https://ibb.co/SJWjZXb\"\u003e\u003cimg src=\"https://i.ibb.co/qxXS2MK/Aulas-do-intensiv-o.png\" alt=\"Aulas-do-intensiv-o\" border=\"0\"\u003e\u003c/a\u003e\n\n## Testes do Projeto DSList no Postman\n\u003ca href=\"https://ibb.co/925D7jb\"\u003e\u003cimg src=\"https://i.ibb.co/J2J19Pv/image-2024-11-17-T21-03-58-520-Z.png\" alt=\"image-2024-11-17-T21-03-58-520-Z\" border=\"0\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://ibb.co/ZmyD8hd\"\u003e\u003cimg src=\"https://i.ibb.co/4dBrTjW/image-2024-11-17-T21-04-34-256-Z.png\" alt=\"image-2024-11-17-T21-04-34-256-Z\" border=\"0\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://ibb.co/CvGzcfV\"\u003e\u003cimg src=\"https://i.ibb.co/NpBsvMW/image-2024-11-17-T21-04-56-416-Z.png\" alt=\"image-2024-11-17-T21-04-56-416-Z\" border=\"0\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://ibb.co/NYYKGSf\"\u003e\u003cimg src=\"https://i.ibb.co/zffZtJC/image-2024-11-17-T21-05-18-622-Z.png\" alt=\"image-2024-11-17-T21-05-18-622-Z\" border=\"0\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://ibb.co/MNLnzQc\"\u003e\u003cimg src=\"https://i.ibb.co/pXp2H5f/image-2024-11-17-T21-05-32-318-Z.png\" alt=\"image-2024-11-17-T21-05-32-318-Z\" border=\"0\"\u003e\u003c/a\u003e\n\n\n## Modelo conceitual\n\u003ca href=\"https://ibb.co/wzB9wvx\"\u003e\u003cimg src=\"https://i.ibb.co/gRm5PnB/dslist-model.png\" alt=\"dslist-model\" border=\"0\"\u003e\u003c/a\u003e\n\n# Tecnologias utilizadas\n## Back end\n\n- \u003cimg width=\"50px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/java/java-original-wordmark.svg\" title = \"Java\" /\u003e Java 21 : Utilizaremos a versão LTS mais recente do Java para tirar vantagem das últimas inovações que essa linguagem robusta e amplamente utilizada oferece;\n- \u003cimg width=\"50px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/spring/spring-original-wordmark.svg\" title = \"Spring boot\"/\u003e Spring Boot 3 : Trabalharemos com a mais nova versão do Spring Boot, que maximiza a produtividade do desenvolvedor por meio de sua poderosa premissa de autoconfiguração;\n- \u003cimg width=\"50px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/spring/spring-original-wordmark.svg\" title = \"Spring Data JPA\"/\u003e  Spring Data JPA: Exploraremos como essa ferramenta pode simplificar nossa camada de acesso aos dados, facilitando a integração com bancos de dados SQL;\n- \u003cimg width=\"50px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/sqldeveloper/sqldeveloper-original.svg\" title = \"H2 Database\"/\u003e H2 Database: Banco de dados SQL em memória.\n- \u003cimg width=\"100px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/postman/postman-plain-wordmark.svg\" title = \"Postman\"/\u003e Postman: Para testar os métodos http do controller.\n- \u003cimg width=\"100px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/maven/maven-original-wordmark.svg\" title = \"Maven\"/\u003e Maven: versão 4.0.0.\n- \u003cimg width=\"100px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/intellij/intellij-original.svg\" title = \"IntelliJ\"/\u003e IntelliJ: Software usado para desenvolvimento Java e spring boot.\n\n\n# Como executar o projeto\n\n## Back end\nPré-requisitos: Java 21\n\n```bash\n# clonar repositório\ngit clone https://github.com/marcosfshirafuchi/dslist.git\n\n# importar o projeto no IntelliJ\nFile -\u003e Open -\u003e localize o arquivo -\u003e Clique em import\n\n# Espera o maven baixar as dependencias\n\n#Rodar o programa\nClique na classe DslistApplication depois da pasta service e depois o play.\n\n#Copie a collection do Postman para testar a aplicação que está depois do .gitignore e cola em um algum lugar do seu computador:\n DSList.postman_collection.json\n\n#No postman, clique:\nFile -\u003e Import\n\n```\n\n## Trechos de código\n\n### Plug-in Maven\n\n```xml\n\u003cplugin\u003e\n\t\u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\n\t\u003cartifactId\u003emaven-resources-plugin\u003c/artifactId\u003e\n\t\u003cversion\u003e3.1.0\u003c/version\u003e \u003c!--$NO-MVN-MAN-VER$ --\u003e\n\u003c/plugin\u003e\n```\n\n### application.properties\n\n```\nspring.profiles.active=${APP_PROFILE:test}\nspring.jpa.open-in-view=false\n\ncors.origins=${CORS_ORIGINS:http://localhost:5173,http://localhost:3000}\n```\n\n### application-test.properties\n\n```\n# H2 Connection\nspring.datasource.url=jdbc:h2:mem:testdb\nspring.datasource.username=sa\nspring.datasource.password=\n\n# H2 Client\nspring.h2.console.enabled=true\nspring.h2.console.path=/h2-console\n\n# Show SQL\nspring.jpa.show-sql=true\nspring.jpa.properties.hibernate.format_sql=true\n```\n\n### application-dev.properties\n\n```\n#spring.jpa.properties.jakarta.persistence.schema-generation.create-source=metadata\n#spring.jpa.properties.jakarta.persistence.schema-generation.scripts.action=create\n#spring.jpa.properties.jakarta.persistence.schema-generation.scripts.create-target=create.sql\n#spring.jpa.properties.hibernate.hbm2ddl.delimiter=;\n\nspring.datasource.url=jdbc:postgresql://localhost:5432/dscatalog\nspring.datasource.username=postgres\nspring.datasource.password=1234567\n\nspring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect\nspring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true\nspring.jpa.hibernate.ddl-auto=none\n```\n\n### application-prod.properties\n```\nspring.datasource.url=${DB_URL}\nspring.datasource.username=${DB_USERNAME}\nspring.datasource.password=${DB_PASSWORD}\n\nspring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect\nspring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true\nspring.jpa.hibernate.ddl-auto=none\n```\n\n### system.properties\n```\njava.runtime.version=17\n```\n\n### WebConfig\n\n```java\n@Configuration\npublic class WebConfig {\n\n\t@Value(\"${cors.origins}\")\n\tprivate String corsOrigins;\n\t\n\t@Bean\n\tpublic WebMvcConfigurer corsConfigurer() {\n\t\treturn new WebMvcConfigurer() {\n\t\t\t@Override\n\t\t\tpublic void addCorsMappings(CorsRegistry registry) {\n\t\t\t\tregistry.addMapping(\"/**\").allowedMethods(\"*\").allowedOrigins(corsOrigins);\n\t\t\t}\n\t\t};\n\t}\n\t\n}\n```\n\n### GameRepository\n\n```java\n@Query(nativeQuery = true, value = \"\"\"\n\t\tSELECT tb_game.id, tb_game.title, tb_game.game_year AS `year`, tb_game.img_url AS imgUrl,\n\t\ttb_game.short_description AS shortDescription, tb_belonging.position\n\t\tFROM tb_game\n\t\tINNER JOIN tb_belonging ON tb_game.id = tb_belonging.game_id\n\t\tWHERE tb_belonging.list_id = :listId\n\t\tORDER BY tb_belonging.position\n\t\t\t\"\"\")\nList\u003cGameMinProjection\u003e searchByList(Long listId);\n```\n\n### GameListRepository\n\n```java\n@Modifying\n@Query(nativeQuery = true, value = \"UPDATE tb_belonging SET position = :newPosition WHERE list_id = :listId AND game_id = :gameId\")\nvoid updateBelongingPosition(Long listId, Long gameId, Integer newPosition);\n```\n\n### import.sql\n\n```sql\nINSERT INTO tb_game_list (name) VALUES ('Aventura e RPG');\nINSERT INTO tb_game_list (name) VALUES ('Jogos de plataforma');\n\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\nINSERT 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.');\n\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 1, 0);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 2, 1);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 3, 2);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 4, 3);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (1, 5, 4);\n\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 6, 0);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 7, 1);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 8, 2);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 9, 3);\nINSERT INTO tb_belonging (list_id, game_id, position) VALUES (2, 10, 4);\n```\n\n### Script Docker Compose\n\nhttps://gist.github.com/acenelio/5e40b27cfc40151e36beec1e27c4ff71\n\n\n# Autor\n\nMarcos Ferreira Shirafuchi\n\nhttps://www.linkedin.com/in/marcosshirafuchi/\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosfshirafuchi%2Fdslist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcosfshirafuchi%2Fdslist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcosfshirafuchi%2Fdslist/lists"}