{"id":22339994,"url":"https://github.com/edvaldoljr/projeto-devsuperior-semana-spring-react","last_synced_at":"2026-04-11T09:45:36.842Z","repository":{"id":145919995,"uuid":"533851502","full_name":"edvaldoljr/Projeto-Devsuperior-Semana-Spring-React","owner":"edvaldoljr","description":null,"archived":false,"fork":false,"pushed_at":"2022-09-26T12:40:04.000Z","size":122,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-04T01:44:33.463Z","etag":null,"topics":["backend","css3","frontend","html","java","react","reactjs"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edvaldoljr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-09-07T16:35:45.000Z","updated_at":"2022-09-25T22:54:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"fe307578-3fa3-4d15-b307-f5b54e8983d1","html_url":"https://github.com/edvaldoljr/Projeto-Devsuperior-Semana-Spring-React","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edvaldoljr/Projeto-Devsuperior-Semana-Spring-React","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvaldoljr%2FProjeto-Devsuperior-Semana-Spring-React","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvaldoljr%2FProjeto-Devsuperior-Semana-Spring-React/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvaldoljr%2FProjeto-Devsuperior-Semana-Spring-React/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvaldoljr%2FProjeto-Devsuperior-Semana-Spring-React/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edvaldoljr","download_url":"https://codeload.github.com/edvaldoljr/Projeto-Devsuperior-Semana-Spring-React/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edvaldoljr%2FProjeto-Devsuperior-Semana-Spring-React/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31676210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T08:18:19.405Z","status":"ssl_error","status_checked_at":"2026-04-11T08:17:08.892Z","response_time":54,"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":["backend","css3","frontend","html","java","react","reactjs"],"created_at":"2024-12-04T07:10:03.431Z","updated_at":"2026-04-11T09:45:36.817Z","avatar_url":"https://github.com/edvaldoljr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![DevSuperior logo](https://lh6.googleusercontent.com/EG_BIDxA9HYAh0MBaoNuMjhQ3IbHJMIwfHAtKXBmJKvfhCjULJnrkYG5Pj1rIIFCB4isgNDuuttdKThl_qS2LdZspyT-RdBFjUBkKHUpI7BJFeQxPjA9jj8Hf04FGzgicrAzpgWY1MEJ_fqRhZbfLeT3m7-pFq50wC20z-R2Vt9p4dIZe9ZnYkF7Tg) **Projeto Semana Spring React**\n\n*Criamos um app completo para meu portfólio com as tecnologias mais demandadas do mercado*\n\n**Realização**\n\n[DevSuperior - Escola de programação](https://devsuperior.com.br/)![DevSuperior no Instagram](https://lh6.googleusercontent.com/0SfI4vYx-Y8qWJUa2Jzp79vZ45-hcRSTbmbgapSSt9opbFKPWMjn-RvMuQtIeNb5ARgPxL7PEq8Bs-iS8LbS_-uc1T0GjnETTsRAsnNx8fB-4pwXTOeeUNfXYomdxUDb_0iqjxSTKtKxc4-H_23pHlZhafTwu00hUABqSgRmqNjukUsyyNaC4dQJPA) ![DevSuperior no Youtube](https://lh4.googleusercontent.com/WllJOOP_XJn7OJLMd9YbOmfim1pdMnUSEORqjXE9l6avgjjHQ9sPfOeYoPgBvd-di8SizdWiOvtSk0UrwyEg4Z-P6FTT2LdBA_Fz_SvYYQ1eeBInsoFPsIxCiDVM1FTV6zQ1iDRe8DFI00SYikAo1mAe574pYz1nyI8yqVT_udajDR6evx9ZDXZqZg)\n\n**Guias de instalação das ferramentas**\n\n- [Guia de instalação das ferramentas no Windows](https://github.com/devsuperior/sds-dsmeta/tree/main/_instalacao/windows)\n- [Guia de instalação das ferramentas no Linux](https://github.com/devsuperior/sds-dsmeta/tree/main/_instalacao/linux)\n- [Guia de instalação das ferramentas no Mac](https://github.com/devsuperior/sds-dsmeta/tree/main/_instalacao/mac)\n\n**Discord do evento para dúvidas e networking**\n\n- [Discord da Semana Spring React](https://discord.gg/8tGRs5R4fS)\n\n**Conteúdos de preparação****\n\n1. Git e Github para iniciantes**\n\n   \n\n**![Image](https://lh4.googleusercontent.com/LLwS4g8kDZU79u-ti8VEdDG5woxXUK-l-wSkCeUSMTd24LKEQ1LDvruHBZb6q4CQdSl8dziC4ZTLpoxGJGmHv0RdNGthNSvgtBRaQw7Pr07AyrTzUyZW1MAHLq7ujPxBgiQR5S6tiocqznrNwhszdMFjwXbT7vlJ1Pqcl_nUUtJeJnUu9BYWA2ggJw)**\n\n**2) HTML e CSS a partir do Figma 1/2**\n\n**![Image](https://lh6.googleusercontent.com/itcWmhSyNh3xlChYb9ttG9yXOBTR-oIJZfVlu5MJ2dkequrEupBecdI5vBUEjP27pRsWVkl_ty0v7KE_M8w_DnUMEFwG9DZGEym_M7XZFALsY5v1J4S20TcdrHt9Y1TF4bKb3VdZywnNYCdFR4VEr8ob1Ua6qhpVEB9OTUTmRJ0MN2RENGShzS4Eqg)**\n\n**3) HTML e CSS a partir do Figma 2/2**\n\n**![Image](https://lh5.googleusercontent.com/yJMVqrYnqHYJbvASH7qlSNMnyuztRVuyhBfVk9veN3eSx-s8SdZMKw-hkckImFfWbelQySW2EG6T5N6jOGVKdxPE0DnrK3qRieMKrQfNuMZNpjN5W1r06ihrazq_RPUqCBKhKwhzGwQ2vdq0WS7H-SVSmC_4BOgvMXJ1UeyHwNv3qSSo-VulJc0E5Q)**\n\n**4) Seu primeiro projeto Java web no Spring Boot**\n\n**![Image](https://lh4.googleusercontent.com/Bg8EFA0JGjq8OCz4qPDXmsvTajf3mQ2zZvAeWFsYLEV9sQ5snboPfQI35EL3HJCdS5p3xhkgvRnZwkP5DLsocVlspHW3QBWJOHvuQoZ_l9okbm8qzpm92udhwOQGqEL29lsmFJMfegjPyMHoIJn3Ue_QdPvDMjJqTd9QFnEXzWDE5cydUmG5_biZxg)**\n\n\n\n![DevSuperior logo](https://lh6.googleusercontent.com/w5EY5iIye07mLfurYSvrkC6Ss9gSM36OoFnVp_rSy8VPKKQBSWCBdIfgeo2dc-wXcI_QOpBgwt0ZawbPkLtnZUPHOk5RhQ9CV7YINZBIDm6QwbOaTJp6U4zVD_hKqXaPYhWHxg_hyx9Ti4ctntPQWnCRKftqikmzbGMj_PKElEGUQRnm1y0PlMYr9Q) **Semana Spring React - Episódio 1**\n\nCrie um app completo para seu portfólio com as tecnologias mais demandadas do mercado*\n\n**Objetivos do projeto para esta aula**\n\n- Criar projetos backend e frontend\n- Salvar os projeto no Github em monorepo\n- Montar o visual estático do front end\n\n**AVISO: as aulas ficarão disponíveis somente até domingo às 23h59**\n\n**Checklist**\n\n**Design Figma**\n\nhttps://www.figma.com/file/PehiT8Dw4Lv5ioTSULZeRI/DSMeta3\n\n**Pré-requisito: Git instalado**\n\n![Image](https://lh5.googleusercontent.com/usc_WHjSAmWWmjf9BKtdIcWYSezPeY-KZTh_u94TXs2l1xgqGyuZpcrgnlbif5-jqvZy1174NKKKYCNxORaSRn5WI3cnVK-XYQ16lCsZAPa7nf4ygWs23zPzfYwqpoMA-5Ismc3gU6TvfAW2WQzTq8ZA3uG1xLNZHnTXYsySaiJ_2ooPcaxsJPCBgQ)\n\n**Ferramentas**\n\n- Nodejs 16 e Yarn (vídeo: https://youtu.be/x5tgFTS-CYA )\n\n- STS (vídeo: https://youtu.be/TGQ0K9QsX88 )\n\n- VS Code\n\n  IntelliCode\n\n  ESLint\n\n  JSX HTML \u003ctags/\u003e\n\n**Passo: criar projeto ReactJS**\n\n**![DevSuperior no Instagram](https://lh3.googleusercontent.com/XkWWgTGAcmNnQqq-u-2LCSLQuHXVhSNi_3D7PtPmuYhO0GkfImT-EjLVCzuyB7woLGEoXb5ajHvn3LitQ1VbOPjGmqzs5uoVZVoa19i8mwk5laOeleMsWha6ELPiXb_PeH-LTa7B8waykCB_qEMeO1uWFWZdCqlbA1Ue98qlpvE2CwPnJeIZmWH1RA)**\n\n```java\nyarn create vite frontend --template react-ts\n```\n\n**Passo: criar projeto Spring Boot**\n\nCriar projeto Spring Boot no Spring Initializr com as seguintes dependências:\n\n- Web\n- JPA\n- H2\n- Security\n\nAjuste no arquivo pom.xml:\n\n```java\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\n- Botão direito no projeto -\u003e Maven -\u003e Update project (force update)\n\n**Passo: salvar primeira versão no Github**\n\n- git init\n- git add .\n- git commit -m \"Project created\"\n- git branch -M main\n- git remote add origin git@github.com:seuusuario/seurepositorio.git\n- git push -u origin main\n\n**Passo: \"limpar\" o projeto ReactJS**\n\nVamos pegar o CSS que fizemos nas aulas de preparação: \n\nhttps://github.com/edvaldoljr/Projeto-Devsuperior-Aquecimento-Semana-Spring-React/blob/main/styles.css\n\n- COMMIT: Project clean\n\n**Passo: Primeiro componente**\n\nProjeto HTML/CSS: https://github.com/edvaldoljr/Projeto-Devsuperior-Aquecimento-Semana-Spring-React\n\n- COMMIT: First component\n\n**Passo: Datepicker**\n\nDocumentação: https://github.com/Hacker0x01/react-datepicker\n\n\n\n```java\nyarn add react-datepicker@4.8.0 @types/react-datepicker@4.4.2\n```\n\n```java\nimport DatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\u003cDatePicker\n    selected={new Date()}\n    onChange={(date: Date) =\u003e {}}\n    className=\"dsmeta-form-control\"\n    dateFormat=\"dd/MM/yyyy\"\n/\u003e\n```\n\n- COMMIT: Datepicker\n\n**Passo: React Hook useState para manter estado das datas**\n\nMacete para criar uma data de X dias atrás\n\n```java\nconst date = new Date(new Date().setDate(new Date().getDate() - 365));\n```\n\n- COMMIT: useState\n\n**PARABÉNS!**\n\n*![Parabéns!](https://lh4.googleusercontent.com/bguQmgmc-L54QwxOR90MywqWLkWz01F9d2DNaRDZFAAyTC19COxabnS9-6sHrNVFnP7s9v2Orb69-lHz8anlxqjl7uJXkX22be_hlBAAMZhCn4x2LivuLRHsw5ZYQOGVIrt47Pvwx_RXUnEUsrLy0Qod2DiJBACZmtvaqqtAvUJQr_pK384erpIczw)*\n\n\n\n![DevSuperior logo](https://lh4.googleusercontent.com/DxFVxJLyWoqLdg-sf4rAiAoTGR0D9Lq-hd-qMuIxVugkiwRSnRShN1M0Ra_cdUEZyIcnk2oC8FNo6q2WpONYMuPdPT4P2wBJwUGemPUL6DrzyAmUTrofoF-Q-E3BOcJUhPzPZfKGbEw-V_GRefsQv9xHeYSa52Nk0hQVHivvugCNJQUxI1WtTKZmrQ) **Semana Spring React - Episódio 2**\n\n**Objetivos do projeto para esta aula**\n\n- Implementar o back end\n- Acesso a banco de dados\n- Criar endpoints da API REST\n- Integração com SMS\n- Implantação na nuvem\n\n**Checklist**\n\n**Ferramentas**\n\n- Postman (Vídeo: https://youtu.be/CWKLVapcnCU )\n- Heroku CLI (Vídeo: https://youtu.be/70LUh5KNaEk )\n\n**Passo: configuração de segurança**\n\n```java\nimport java.util.Arrays;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;\nimport org.springframework.security.config.http.SessionCreationPolicy;\nimport org.springframework.security.web.SecurityFilterChain;\nimport org.springframework.web.cors.CorsConfiguration;\nimport org.springframework.web.cors.CorsConfigurationSource;\nimport org.springframework.web.cors.UrlBasedCorsConfigurationSource;\n\n@Configuration\n@EnableWebSecurity\npublic class SecurityConfig {\n\n\t@Bean\n\tpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {\n\t\t\n\t\thttp.headers().frameOptions().disable();\n\t\thttp.cors().and().csrf().disable();\n\t\thttp.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);\n\t\thttp.authorizeHttpRequests((auth) -\u003e auth.anyRequest().permitAll());\n\n\t\treturn http.build();\n\t}\n\n\t@Bean\n\tCorsConfigurationSource corsConfigurationSource() {\n\t\tCorsConfiguration configuration = new CorsConfiguration().applyPermitDefaultValues();\n\t\tconfiguration.setAllowedMethods(Arrays.asList(\"POST\", \"GET\", \"PUT\", \"DELETE\", \"OPTIONS\"));\n\t\tfinal UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();\n\t\tsource.registerCorsConfiguration(\"/**\", configuration);\n\t\treturn source;\n\t}\n}\n\n```\n\n- COMMIT: Security config\n\n**Passo: banco de dados**\n\n- Criar entidade Sale\n- Fazer mapeamento objeto-relacional (JPA)\n- Configurar dados de conexão do banco de dados H2\n- Fazer seed do banco de dados\n\n**application.properties**\n\n```java\nspring.datasource.url=jdbc:h2:mem:testdb\nspring.datasource.username=sa\nspring.datasource.password=\n\nspring.h2.console.enabled=true\nspring.h2.console.path=/h2-console\n\nspring.jpa.show-sql=true\nspring.jpa.properties.hibernate.format_sql=true\n\n```\n\n**import.sql**\n\n```sql\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',121,67,18196.0,'2022-06-16');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',26,14,4255.0,'2022-06-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',55,42,13249.0,'2022-06-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',73,65,20751.0,'2022-06-10');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',47,25,7318.0,'2022-06-04');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',72,60,15608.0,'2022-06-03');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',97,68,8901.0,'2022-06-03');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',68,26,13231.0,'2022-06-02');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',73,53,19476.0,'2022-05-22');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',28,23,20530.0,'2022-05-18');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',83,44,4864.0,'2022-05-13');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',82,43,21753.0,'2022-05-06');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',43,26,7362.0,'2022-05-03');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',54,23,10549.0,'2022-04-28');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',125,84,13333.0,'2022-04-25');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',44,26,7431.0,'2022-04-23');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',46,25,21099.0,'2022-04-19');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',42,28,7217.0,'2022-04-19');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',52,21,10107.0,'2022-04-18');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',121,90,18174.0,'2022-04-17');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',65,14,8095.0,'2022-04-12');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',107,74,11507.0,'2022-04-12');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',140,74,11709.0,'2022-04-09');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',95,91,8288.0,'2022-04-08');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',68,43,17016.0,'2022-04-07');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',21,20,17126.0,'2022-04-03');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',38,15,7957.0,'2022-03-31');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',53,29,20903.0,'2022-03-29');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',19,10,3987.0,'2022-03-28');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',78,34,20795.0,'2022-03-27');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',83,44,4938.0,'2022-03-26');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',32,12,6926.0,'2022-03-13');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',64,33,8193.0,'2022-03-13');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',39,39,10557.0,'2022-03-05');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',158,84,21601.0,'2022-03-02');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',12,6,7625.0,'2022-02-29');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',82,82,22465.0,'2022-02-27');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',68,56,12595.0,'2022-02-17');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',27,13,4636.0,'2022-02-16');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',52,33,10155.0,'2022-02-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',142,81,13610.0,'2022-02-13');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',81,45,15306.0,'2022-02-08');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',64,35,17460.0,'2022-02-07');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',48,24,21413.0,'2022-02-03');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',150,82,6505.0,'2022-01-26');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',138,95,7983.0,'2022-01-18');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',70,48,9564.0,'2022-01-16');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',162,84,7302.0,'2022-01-15');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',57,54,9126.0,'2022-01-12');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',78,60,5253.0,'2022-01-06');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',81,53,11553.0,'2022-01-04');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',168,92,6299.0,'2021-12-28');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',48,13,22411.0,'2021-12-26');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',107,67,9788.0,'2021-12-24');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',106,62,18942.0,'2021-12-20');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',40,26,11731.0,'2021-12-18');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',101,68,19882.0,'2021-12-18');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',185,100,14618.0,'2021-12-17');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',82,47,7951.0,'2021-12-15');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',86,45,4147.0,'2021-12-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',95,88,12943.0,'2021-12-09');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',75,58,18747.0,'2021-12-02');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',96,50,12624.0,'2021-12-01');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',79,40,14770.0,'2021-11-21');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',73,46,14124.0,'2021-11-20');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',92,58,20953.0,'2021-11-20');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',43,30,9690.0,'2021-11-18');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',58,30,11396.0,'2021-11-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',49,14,5119.0,'2021-11-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',53,23,8206.0,'2021-11-12');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',49,25,8269.0,'2021-11-10');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',53,29,17984.0,'2021-11-09');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',43,26,3056.0,'2021-11-08');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',51,21,8624.0,'2021-11-06');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',64,41,10959.0,'2021-11-03');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',75,23,15883.0,'2021-10-30');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',51,44,14038.0,'2021-10-27');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',141,81,13535.0,'2021-10-26');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',135,98,17241.0,'2021-10-25');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',116,66,16415.0,'2021-10-19');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',60,44,5329.0,'2021-10-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',63,32,16618.0,'2021-10-07');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',176,100,5062.0,'2021-10-01');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',118,45,22235.0,'2021-09-29');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',150,97,14484.0,'2021-09-26');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',115,63,18081.0,'2021-09-24');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',159,88,16101.0,'2021-09-23');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',76,45,11150.0,'2021-09-22');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',65,63,17982.0,'2021-09-09');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',90,68,15927.0,'2021-09-08');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',22,12,9793.0,'2021-09-06');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',19,11,4185.0,'2021-09-05');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',68,21,15541.0,'2021-09-04');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',64,47,7287.0,'2021-09-04');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',153,92,17913.0,'2021-09-04');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',93,53,12648.0,'2021-09-02');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',78,32,12021.0,'2021-08-30');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',94,49,18787.0,'2021-08-29');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',54,28,3974.0,'2021-08-28');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',45,25,5681.0,'2021-08-26');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',11,1,4008.0,'2021-08-14');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',118,80,5218.0,'2021-08-13');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',52,21,21220.0,'2021-08-09');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',127,23,8831.0,'2021-08-06');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',78,23,13900.0,'2021-08-04');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',102,52,22086.0,'2021-08-03');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',54,53,15731.0,'2021-07-31');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Barry Allen',173,93,10816.0,'2021-07-22');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',60,45,17633.0,'2021-07-20');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',138,72,14528.0,'2021-07-19');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',147,96,21582.0,'2021-07-17');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Logan',32,12,9751.0,'2021-07-13');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',83,59,8496.0,'2021-07-08');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',58,48,5283.0,'2021-07-07');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Kal-El',55,35,20474.0,'2021-07-05');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Anakin',84,34,5787.0,'2021-07-01');\nINSERT INTO tb_sales(seller_name,visited,deals,amount,date) VALUES ('Padme',79,68,11976.0,'2021-06-27');\n\n```\n\n- COMMIT: Database\n\n**Passo: Primeiro teste de endpoint da API REST**\n\n- Criar repository\n- Criar service\n- Criar controller\n- COMMIT: API test\n\n**Passo: Consulta por data**\n\nConsulta customizada:\n\n```sql\n@Query(\"SELECT obj FROM Sale obj WHERE obj.date BETWEEN :min AND :max ORDER BY obj.amount DESC\")\nPage\u003cSale\u003e findSales(LocalDate min, LocalDate max, Pageable pageable);\n\n```\n\n- COMMIT: Date select\n\n**Passo: Envio de SMS**\n\nDependências Maven do Twilio\n\n```java\n\u003cdependency\u003e\n\t\u003cgroupId\u003ecom.twilio.sdk\u003c/groupId\u003e\n\t\u003cartifactId\u003etwilio\u003c/artifactId\u003e\n\t\u003cversion\u003e8.31.1\u003c/version\u003e\n\u003c/dependency\u003e\n\n```\n\nVariáveis de ambiente no application.properties:\n\n```java\ntwilio.sid=${TWILIO_SID}\ntwilio.key=${TWILIO_KEY}\ntwilio.phone.from=${TWILIO_PHONE_FROM}\ntwilio.phone.to=${TWILIO_PHONE_TO}\n```\n\nClasse SmsService:\n\n```java\n@Service\npublic class SmsService {\n\n\t@Value(\"${twilio.sid}\")\n\tprivate String twilioSid;\n\n\t@Value(\"${twilio.key}\")\n\tprivate String twilioKey;\n\n\t@Value(\"${twilio.phone.from}\")\n\tprivate String twilioPhoneFrom;\n\n\t@Value(\"${twilio.phone.to}\")\n\tprivate String twilioPhoneTo;\n\n\tpublic void sendSms() {\n\n\t\tTwilio.init(twilioSid, twilioKey);\n\n\t\tPhoneNumber to = new PhoneNumber(twilioPhoneTo);\n\t\tPhoneNumber from = new PhoneNumber(twilioPhoneFrom);\n\n\t\tMessage message = Message.creator(to, from, \"Teste\").create();\n\n\t\tSystem.out.println(message.getSid());\n\t}\n}\n\n```\n\n- COMMIT: Twilio SMS\n\n**Passo: Implantação no Heroku**\n\nArquivo system.propertiesjava.runtime.version=17 \n\n- Criar app no Heroku\n\n  \n\n- Definir variáveis de ambiente:\n\n```\n1. TWILIO_SID\n2. TWILIO_KEY\n3. TWILIO_PHONE_FROM\n4. TWILIO_PHONE_TO\n```\n\n```\nheroku -v\nheroku login\nheroku git:remote -a \u003cnome-do-app\u003e\ngit remote -v\ngit subtree push --prefix backend heroku main\n\n```\n\n**PARABÉNS!**\n\n*![Parabéns!](https://lh5.googleusercontent.com/2dCRBFaOUGMWAnvlq0Qcxrl8tVcMqkBnMoBeX7n-GOx2_5cuWIArAlHPU-wZXuLJC343opRZ70k8amy4jjcWYyBRjedcrzjIMiJUAU9lMrrP0CzU6RrfJ0o-qiKV8VS1gz5WYBcvUtMS7jd2SytslXJ1SKExaRgN-oXukrRFeAPNZyk2cF8jImFItw)*\n\n\n\n![DevSuperior logo](https://lh5.googleusercontent.com/GBvesAWl8EH5rVGZWlrsUVdgTC8v8iY7dyjk3b9b4KsUtCQnSt9S2-yFxS1RV93W8YwKsH0uvm62aj4zeTS3r-I6lMUfMY6iFUNDy2uGFPb7SRtWJpW8C7SnPYyU7GdhYd6OIjYzqM4M8nKF8BH-J-Mx6EJ1ox7Q5SkycYLtdyQyIikONyC0mjT0DA) **Semana Spring React - Episódio 3**\n\n**Objetivos do projeto para esta aula**\n\n- Integrar back end e front end\n- Implantar o front end\n\n**Passo: Primeira requisição com Axios e useEffect**\n\n```\nyarn add axios@0.27.2\n```\n\n- COMMIT: Axios, useEffect first request\n\n**Passo: Listagem de vendas**\n\nDefinição da BASE_URL:\n\n```\nexport const BASE_URL = import.meta.env.VITE_BACKEND_URL ?? \"http://localhost:8080\";\n```\n\n- COMMIT: Sale listing\n\n**Passo: Passando as datas como argumento**\n\n- COMMIT: Date update\n\n**Passo: Enviar notificação**\n\n- COMMIT: Send notification\n\n**Passo: Mensagem Toast de confirmação**\n\n```\nyarn add react-toastify@9.0.5\n```\n\nNo App.tsx:\n\n```react\nimport { ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\n```\n\n- COMMIT: Toast\n\n**Passo: Deploy no Netlify**\n\nAntes: acrescente \n\n```react\nwindow.React = React\n```\n\nno seu main.tsx conforme abaixo, e salve um novo commit\n\n```react\nimport React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nwindow.React = React\n\nReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(\n  \u003cReact.StrictMode\u003e\n    \u003cApp /\u003e\n  \u003c/React.StrictMode\u003e\n)\n\n```\n\nhttps://www.netlify.com/\n\n- Deploy básico\n\n  Base directory: frontend\n\n  Build command: yarn build\n\n  Publish directory: frontend/dist\n\n  Variáveis de ambiente:\n\n  ​             VITE_BACKEND_URL\n\n- Configurações adicionais\n\n  Site settings -\u003e Domain Management: (colocar o nome que você quiser)\n\n  Deploys -\u003e Trigger deploy\n\n**PROJETO CONCLUIDO!**\n\n*![Parabéns!](https://lh4.googleusercontent.com/PzURvH_8gZfu3ecB7dRSxNhsSArqCeL4NzRElbZ93SUi51rN7fuQgkz9HGasrk57_Ij2b4zPRe14J8TvFLgtPz_53u7WzRGcK4dqgBkliZkPEl54I2MWbD8t0h_Opbx2zfuSWZYXWa_INO5HrDEh_GnX7GRaQ9Y4cfSbZBfjhWadloWvAp7KIeruog)*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedvaldoljr%2Fprojeto-devsuperior-semana-spring-react","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedvaldoljr%2Fprojeto-devsuperior-semana-spring-react","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedvaldoljr%2Fprojeto-devsuperior-semana-spring-react/lists"}