{"pageProps":{"projects":[{"title":"Dogs","shortDescription":"Instagram para cachorros","tech":"react-next","githubURL":"https://github.com/joaom00/dogs","body":{"raw":"\n\"Dogs\"\n\n## Sobre\n\nDogs é um instagram para cachorros onde o usuário pode publicar uma foto, comentar, curtir e seguir outros usuários. Nessa aplicação utilizo, na parte web, [React](https://reactjs.org) com [TypeScript](https://www.typescriptlang.com), [Styled Components](https://styled-components.com) para os estilos e o [React Query](https://react-query.tanstack.com) para fazer a busca, cache e atualização dos dados do servidor que foi feito em [Node](https://nodejs.org/en/) com [Express](https://expressjs.com/pt-br/) e [TypeORM](https://typeorm.io/#/).\n\n## Tecnologias\n\n- Frontend\n - [ReactJS](https://reactjs.org)\n - [TypeScript](https://www.typescriptlang.org)\n - [React Router](https://reactrouter.com)\n - [Styled Components](https://styled-components.com)\n - [React Query](https://react-query.tanstack.com)\n- Backend\n - [NodeJS](https://nodejs.org/en/)\n - [TypeScript](https://www.typescriptlang.org)\n - [PostgreSQL](https://www.postgresql.org)\n - [Express](https://expressjs.com/pt-br/)\n - [TypeORM](https://typeorm.io/#/)\n - [JWT](https://jwt.io)\n","code":"var Component=(()=>{var h=Object.create;var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var i=n=>s(n,\"__esModule\",{value:!0});var u=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),g=(n,e)=>{i(n);for(var t in e)s(n,t,{get:e[t],enumerable:!0})},f=(n,e,t)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let c of p(e))!m.call(n,c)&&c!==\"default\"&&s(n,c,{get:()=>e[c],enumerable:!(t=l(e,c))||t.enumerable});return n},y=n=>f(i(s(n!=null?h(d(n)):{},\"default\",n&&n.__esModule&&\"default\"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var a=u((S,o)=>{o.exports=_jsx_runtime});var b={};g(b,{default:()=>w});var r=y(a());function j(n={}){let e=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",p:\"p\",ul:\"ul\",li:\"li\"},n.components),{wrapper:t}=e,c=(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(\"img\",{src:\"https://raw.githubusercontent.com/joaom00/dogs/main/.github/dogs.jpg\",alt:\"Dogs\"}),`\n`,(0,r.jsxs)(e.h2,{id:\"sobre\",children:[(0,r.jsx)(e.a,{className:\"anchor\",href:\"#sobre\",children:(0,r.jsx)(e.span,{className:\"icon icon-link\"})}),\"Sobre\"]}),`\n`,(0,r.jsxs)(e.p,{children:[\"Dogs \\xE9 um instagram para cachorros onde o usu\\xE1rio pode publicar uma foto, comentar, curtir e seguir outros usu\\xE1rios. Nessa aplica\\xE7\\xE3o utilizo, na parte web, \",(0,r.jsx)(e.a,{href:\"https://reactjs.org\",children:\"React\"}),\" com \",(0,r.jsx)(e.a,{href:\"https://www.typescriptlang.com\",children:\"TypeScript\"}),\", \",(0,r.jsx)(e.a,{href:\"https://styled-components.com\",children:\"Styled Components\"}),\" para os estilos e o \",(0,r.jsx)(e.a,{href:\"https://react-query.tanstack.com\",children:\"React Query\"}),\" para fazer a busca, cache e atualiza\\xE7\\xE3o dos dados do servidor que foi feito em \",(0,r.jsx)(e.a,{href:\"https://nodejs.org/en/\",children:\"Node\"}),\" com \",(0,r.jsx)(e.a,{href:\"https://expressjs.com/pt-br/\",children:\"Express\"}),\" e \",(0,r.jsx)(e.a,{href:\"https://typeorm.io/#/\",children:\"TypeORM\"}),\".\"]}),`\n`,(0,r.jsxs)(e.h2,{id:\"tecnologias\",children:[(0,r.jsx)(e.a,{className:\"anchor\",href:\"#tecnologias\",children:(0,r.jsx)(e.span,{className:\"icon icon-link\"})}),\"Tecnologias\"]}),`\n`,(0,r.jsxs)(e.ul,{children:[`\n`,(0,r.jsxs)(e.li,{children:[\"Frontend\",`\n`,(0,r.jsxs)(e.ul,{children:[`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://reactjs.org\",children:\"ReactJS\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://www.typescriptlang.org\",children:\"TypeScript\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://reactrouter.com\",children:\"React Router\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://styled-components.com\",children:\"Styled Components\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://react-query.tanstack.com\",children:\"React Query\"})}),`\n`]}),`\n`]}),`\n`,(0,r.jsxs)(e.li,{children:[\"Backend\",`\n`,(0,r.jsxs)(e.ul,{children:[`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://nodejs.org/en/\",children:\"NodeJS\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://www.typescriptlang.org\",children:\"TypeScript\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://www.postgresql.org\",children:\"PostgreSQL\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://expressjs.com/pt-br/\",children:\"Express\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://typeorm.io/#/\",children:\"TypeORM\"})}),`\n`,(0,r.jsx)(e.li,{children:(0,r.jsx)(e.a,{href:\"https://jwt.io\",children:\"JWT\"})}),`\n`]}),`\n`]}),`\n`]})]});return t?(0,r.jsx)(t,Object.assign({},n,{children:c})):c}var w=j;return b;})();\n;return Component.default;"},"_id":"projetos/react-next/dogs.mdx","_raw":{"sourceFilePath":"projetos/react-next/dogs.mdx","sourceFileName":"dogs.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/dogs"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.47,"time":28200,"words":94},"wordCount":96,"slug":"dogs"},{"title":"Ecoleta","shortDescription":"Encontre pontos de coleta de resíduos facilmente","tech":"react-next","githubURL":"https://github.com/joaom00/ecoleta","body":{"raw":"\n\"Design\n\n## Sobre\n\n**Ecoleta** tem como finalidade estabelecer uma conexão entre empresas e/ou entidades que coletam resíduos (orgânicos e inorgânicos) às pessoas e/ou entidades que necessitam constantemente descartar esses resíduos. Solucionando um grande problema recorrente que é o descarte inadequado do lixo, facilitando o processo de recliclagem e reutilização.\n\nEssa aplicação foi realizada durante a Next **Level Week #01**, projeto da [Rocketseat](https://rocketseat.com.br/).\n\n## Tecnologias\n\n- [Typescript](https://www.typescriptlang.org/)\n- [Node.js](https://nodejs.org/en/)\n- [ReactJS](https://reactjs.org/)\n- [React Native](http://facebook.github.io/react-native/)\n- [Expo](https://expo.io/)\n\n---\n\nProjeto desenvolvido com a tutoria de [Diego Fernandes](https://github.com/diego3g), da [Rocketseat](rocketseat.com.br).\n","code":"var Component=(()=>{var l=Object.create;var t=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var s=o=>t(o,\"__esModule\",{value:!0});var g=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),u=(o,e)=>{s(o);for(var r in e)t(o,r,{get:e[r],enumerable:!0})},f=(o,e,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let a of h(e))!m.call(o,a)&&a!==\"default\"&&t(o,a,{get:()=>e[a],enumerable:!(r=d(e,a))||r.enumerable});return o},b=o=>f(s(t(o!=null?l(p(o)):{},\"default\",o&&o.__esModule&&\"default\"in o?{get:()=>o.default,enumerable:!0}:{value:o,enumerable:!0})),o);var i=g((_,c)=>{c.exports=_jsx_runtime});var k={};u(k,{default:()=>x});var n=b(i());function j(o={}){let e=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",p:\"p\",strong:\"strong\",ul:\"ul\",li:\"li\",hr:\"hr\"},o.components),{wrapper:r}=e,a=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(\"img\",{alt:\"Design do Projeto Web\",src:\"https://raw.githubusercontent.com/joaom00/ecoleta/master/.github/web.png\"}),`\n`,(0,n.jsxs)(e.h2,{id:\"sobre\",children:[(0,n.jsx)(e.a,{className:\"anchor\",href:\"#sobre\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Sobre\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Ecoleta\"}),\" tem como finalidade estabelecer uma conex\\xE3o entre empresas e/ou entidades que coletam res\\xEDduos (org\\xE2nicos e inorg\\xE2nicos) \\xE0s pessoas e/ou entidades que necessitam constantemente descartar esses res\\xEDduos. Solucionando um grande problema recorrente que \\xE9 o descarte inadequado do lixo, facilitando o processo de recliclagem e reutiliza\\xE7\\xE3o.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Essa aplica\\xE7\\xE3o foi realizada durante a Next \",(0,n.jsx)(e.strong,{children:\"Level Week #01\"}),\", projeto da \",(0,n.jsx)(e.a,{href:\"https://rocketseat.com.br/\",children:\"Rocketseat\"}),\".\"]}),`\n`,(0,n.jsxs)(e.h2,{id:\"tecnologias\",children:[(0,n.jsx)(e.a,{className:\"anchor\",href:\"#tecnologias\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Tecnologias\"]}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"https://www.typescriptlang.org/\",children:\"Typescript\"})}),`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"https://nodejs.org/en/\",children:\"Node.js\"})}),`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"https://reactjs.org/\",children:\"ReactJS\"})}),`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"http://facebook.github.io/react-native/\",children:\"React Native\"})}),`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"https://expo.io/\",children:\"Expo\"})}),`\n`]}),`\n`,(0,n.jsx)(e.hr,{}),`\n`,(0,n.jsxs)(\"sup\",{children:[\"Projeto desenvolvido com a tutoria de \",(0,n.jsx)(e.a,{href:\"https://github.com/diego3g\",children:\"Diego Fernandes\"}),\", da \",(0,n.jsx)(e.a,{href:\"rocketseat.com.br\",children:\"Rocketseat\"}),\".\"]})]});return r?(0,n.jsx)(r,Object.assign({},o,{children:a})):a}var x=j;return k;})();\n;return Component.default;"},"_id":"projetos/react-next/ecoleta.mdx","_raw":{"sourceFilePath":"projetos/react-next/ecoleta.mdx","sourceFileName":"ecoleta.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/ecoleta"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.46,"time":27600,"words":92},"wordCount":94,"slug":"ecoleta"},{"title":"FocusFlow","shortDescription":"Listen to live radio, chat with other users, create tasks and stay focused with the Pomodoro technique all in one place.","tech":"react-next","githubURL":"https://github.com/joaom00/focusflow","livePreviewURL":"https://focusflow.vercel.app/","body":{"raw":"\n\"FocusFlow\"\n\n## About\n\nListen to live radio, chat with other users, create tasks and stay focused with the Pomodoro technique all in one place. Increase your productivity and enjoy the best music and company with our platform.\n\n## Project Purpose\n\n- Experiment monorepos with [PNPM Workspace](https://pnpm.io/workspaces)\n- Learn how to deploy to [Fly.io](https://fly.io/)\n- Front-End\n - Learn [Framer Motion](https://www.framer.com/motion/)\n - Learn [Socket.IO](https://socket.io/)\n - Practice [React](https://reactjs.org/)\n - Practice [Tailwind CSS](https://tailwindcss.com/)\n - Practice [Zustand](https://docs.pmnd.rs/zustand/getting-started/introduction)\n - Practice [React Query](https://tanstack.com/query/v4)\n- Back-End\n - Learn [NestJS](https://nestjs.com/)\n - Learn [Socket.IO](https://socket.io/)\n - Practice [Prisma](https://www.prisma.io/)\n","code":"var Component=(()=>{var h=Object.create;var c=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var a=r=>c(r,\"__esModule\",{value:!0});var m=(r,n)=>()=>(n||r((n={exports:{}}).exports,n),n.exports),f=(r,n)=>{a(r);for(var t in n)c(r,t,{get:n[t],enumerable:!0})},w=(r,n,t)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let i of d(n))!u.call(r,i)&&i!==\"default\"&&c(r,i,{get:()=>n[i],enumerable:!(t=l(n,i))||t.enumerable});return r},j=r=>w(a(c(r!=null?h(p(r)):{},\"default\",r&&r.__esModule&&\"default\"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var s=m((b,o)=>{o.exports=_jsx_runtime});var y={};f(y,{default:()=>k});var e=j(s());function g(r={}){let n=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",p:\"p\",ul:\"ul\",li:\"li\"},r.components),{wrapper:t}=n,i=(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(\"img\",{src:\"https://raw.githubusercontent.com/joaom00/focusflow/main/.github/banner.png\",alt:\"FocusFlow\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"about\",children:[(0,e.jsx)(n.a,{className:\"anchor\",href:\"#about\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"About\"]}),`\n`,(0,e.jsx)(n.p,{children:\"Listen to live radio, chat with other users, create tasks and stay focused with the Pomodoro technique all in one place. Increase your productivity and enjoy the best music and company with our platform.\"}),`\n`,(0,e.jsxs)(n.h2,{id:\"project-purpose\",children:[(0,e.jsx)(n.a,{className:\"anchor\",href:\"#project-purpose\",children:(0,e.jsx)(n.span,{className:\"icon icon-link\"})}),\"Project Purpose\"]}),`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsxs)(n.li,{children:[\"Experiment monorepos with \",(0,e.jsx)(n.a,{href:\"https://pnpm.io/workspaces\",children:\"PNPM Workspace\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Learn how to deploy to \",(0,e.jsx)(n.a,{href:\"https://fly.io/\",children:\"Fly.io\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Front-End\",`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsxs)(n.li,{children:[\"Learn \",(0,e.jsx)(n.a,{href:\"https://www.framer.com/motion/\",children:\"Framer Motion\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Learn \",(0,e.jsx)(n.a,{href:\"https://socket.io/\",children:\"Socket.IO\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Practice \",(0,e.jsx)(n.a,{href:\"https://reactjs.org/\",children:\"React\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Practice \",(0,e.jsx)(n.a,{href:\"https://tailwindcss.com/\",children:\"Tailwind CSS\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Practice \",(0,e.jsx)(n.a,{href:\"https://docs.pmnd.rs/zustand/getting-started/introduction\",children:\"Zustand\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Practice \",(0,e.jsx)(n.a,{href:\"https://tanstack.com/query/v4\",children:\"React Query\"})]}),`\n`]}),`\n`]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Back-End\",`\n`,(0,e.jsxs)(n.ul,{children:[`\n`,(0,e.jsxs)(n.li,{children:[\"Learn \",(0,e.jsx)(n.a,{href:\"https://nestjs.com/\",children:\"NestJS\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Learn \",(0,e.jsx)(n.a,{href:\"https://socket.io/\",children:\"Socket.IO\"})]}),`\n`,(0,e.jsxs)(n.li,{children:[\"Practice \",(0,e.jsx)(n.a,{href:\"https://www.prisma.io/\",children:\"Prisma\"})]}),`\n`]}),`\n`]}),`\n`]})]});return t?(0,e.jsx)(t,Object.assign({},r,{children:i})):i}var k=g;return y;})();\n;return Component.default;"},"_id":"projetos/react-next/focusflow.mdx","_raw":{"sourceFilePath":"projetos/react-next/focusflow.mdx","sourceFileName":"focusflow.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/focusflow"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.45,"time":27000,"words":90},"wordCount":92,"slug":"focusflow"},{"title":"Happy","shortDescription":"Deixe o dia de muitas crianças mais feliz","tech":"react-next","githubURL":"https://github.com/joaom00/happy","body":{"raw":"\n\"Happy\"\n\n## Tecnologias\n\nEsse projeto foi desenvolvido com as seguintes tecnologias:\n\n- [Node.js](https://nodejs.org/en/)\n- [React](https://reactjs.org)\n- [React Native](https://facebook.github.io/react-native/)\n- [Expo](https://expo.io/)\n- [TypeScript](https://www.typescriptlang.org/)\n\n## Projeto\n\nO Happy é uma aplicação que conecta pessoas à casas de acolhimento institucional para fazer o dia de muitas crianças mais feliz 💜\n\n## Layout\n\nNos links abaixo você encontra o layout do projeto web e também do mobile. Lembrando que você precisa ter uma conta no [Figma](http://figma.com/) para acessá-lo.\n\n- [Layout Web](https://www.figma.com/file/mDEbnoojksG4w8sOxmudh3/Happy-Web)\n- [Layout Mobile](https://www.figma.com/file/X27FfVxAgy9f5IFa7ONlph/Happy-Mobile)\n\n---\n\nFeito com ♥ by Rocketseat :wave: [Participe da nossa comunidade!](https://discordapp.com/invite/gCRAFhc)\n","code":"var Component=(()=>{var l=Object.create;var c=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var t=n=>c(n,\"__esModule\",{value:!0});var u=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),f=(n,e)=>{t(n);for(var i in e)c(n,i,{get:e[i],enumerable:!0})},g=(n,e,i)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of p(e))!m.call(n,o)&&o!==\"default\"&&c(n,o,{get:()=>e[o],enumerable:!(i=h(e,o))||i.enumerable});return n},j=n=>g(t(c(n!=null?l(d(n)):{},\"default\",n&&n.__esModule&&\"default\"in n?{get:()=>n.default,enumerable:!0}:{value:n,enumerable:!0})),n);var s=u((N,r)=>{r.exports=_jsx_runtime});var w={};f(w,{default:()=>y});var a=j(s());function b(n={}){let e=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",p:\"p\",ul:\"ul\",li:\"li\",hr:\"hr\"},n.components),{wrapper:i}=e,o=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(\"img\",{alt:\"Happy\",src:\"https://raw.githubusercontent.com/joaom00/happy/main/.github/happy.png\",width:\"100%\"}),`\n`,(0,a.jsxs)(e.h2,{id:\"tecnologias\",children:[(0,a.jsx)(e.a,{className:\"anchor\",href:\"#tecnologias\",children:(0,a.jsx)(e.span,{className:\"icon icon-link\"})}),\"Tecnologias\"]}),`\n`,(0,a.jsx)(e.p,{children:\"Esse projeto foi desenvolvido com as seguintes tecnologias:\"}),`\n`,(0,a.jsxs)(e.ul,{children:[`\n`,(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:\"https://nodejs.org/en/\",children:\"Node.js\"})}),`\n`,(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:\"https://reactjs.org\",children:\"React\"})}),`\n`,(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:\"https://facebook.github.io/react-native/\",children:\"React Native\"})}),`\n`,(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:\"https://expo.io/\",children:\"Expo\"})}),`\n`,(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:\"https://www.typescriptlang.org/\",children:\"TypeScript\"})}),`\n`]}),`\n`,(0,a.jsxs)(e.h2,{id:\"projeto\",children:[(0,a.jsx)(e.a,{className:\"anchor\",href:\"#projeto\",children:(0,a.jsx)(e.span,{className:\"icon icon-link\"})}),\"Projeto\"]}),`\n`,(0,a.jsx)(e.p,{children:\"O Happy \\xE9 uma aplica\\xE7\\xE3o que conecta pessoas \\xE0 casas de acolhimento institucional para fazer o dia de muitas crian\\xE7as mais feliz \\u{1F49C}\"}),`\n`,(0,a.jsxs)(e.h2,{id:\"layout\",children:[(0,a.jsx)(e.a,{className:\"anchor\",href:\"#layout\",children:(0,a.jsx)(e.span,{className:\"icon icon-link\"})}),\"Layout\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Nos links abaixo voc\\xEA encontra o layout do projeto web e tamb\\xE9m do mobile. Lembrando que voc\\xEA precisa ter uma conta no \",(0,a.jsx)(e.a,{href:\"http://figma.com/\",children:\"Figma\"}),\" para acess\\xE1-lo.\"]}),`\n`,(0,a.jsxs)(e.ul,{children:[`\n`,(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:\"https://www.figma.com/file/mDEbnoojksG4w8sOxmudh3/Happy-Web\",children:\"Layout Web\"})}),`\n`,(0,a.jsx)(e.li,{children:(0,a.jsx)(e.a,{href:\"https://www.figma.com/file/X27FfVxAgy9f5IFa7ONlph/Happy-Mobile\",children:\"Layout Mobile\"})}),`\n`]}),`\n`,(0,a.jsx)(e.hr,{}),`\n`,(0,a.jsxs)(e.p,{children:[\"Feito com \\u2665 by Rocketseat :wave: \",(0,a.jsx)(e.a,{href:\"https://discordapp.com/invite/gCRAFhc\",children:\"Participe da nossa comunidade!\"})]})]});return i?(0,a.jsx)(i,Object.assign({},n,{children:o})):o}var y=b;return w;})();\n;return Component.default;"},"_id":"projetos/react-next/happy.mdx","_raw":{"sourceFilePath":"projetos/react-next/happy.mdx","sourceFileName":"happy.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/happy"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.475,"time":28500,"words":95},"wordCount":97,"slug":"happy"},{"title":"Issue Tracker","shortDescription":"Track and manage bugs or issues within a project. Collaborate and organize the work that needs to be done and prioritize tasks.","tech":"react-next","githubURL":"https://github.com/joaom00/issue-tracker","livePreviewURL":"https://issue-tracker-rosy.vercel.app/","body":{"raw":"\n\"Issue\n\n## About\n\nTrack and manage bugs or issues within a project. Collaborate and organize the work that needs to be done and prioritize tasks.\n\n## Project Purpose\n\n- Learn [React Query](https://tanstack.com/query/v4)\n","code":"var Component=(()=>{var h=Object.create;var t=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var c=e=>t(e,\"__esModule\",{value:!0});var m=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),j=(e,n)=>{c(e);for(var r in n)t(e,r,{get:n[r],enumerable:!0})},b=(e,n,r)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let s of p(n))!d.call(e,s)&&s!==\"default\"&&t(e,s,{get:()=>n[s],enumerable:!(r=l(n,s))||r.enumerable});return e},g=e=>b(c(t(e!=null?h(u(e)):{},\"default\",e&&e.__esModule&&\"default\"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var i=m((w,o)=>{o.exports=_jsx_runtime});var _={};j(_,{default:()=>x});var a=g(i());function k(e={}){let n=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",p:\"p\",ul:\"ul\",li:\"li\"},e.components),{wrapper:r}=n,s=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(\"img\",{src:\"https://raw.githubusercontent.com/joaom00/issue-tracker/main/.github/banner.png\",alt:\"Issue Tracker\"}),`\n`,(0,a.jsxs)(n.h2,{id:\"about\",children:[(0,a.jsx)(n.a,{className:\"anchor\",href:\"#about\",children:(0,a.jsx)(n.span,{className:\"icon icon-link\"})}),\"About\"]}),`\n`,(0,a.jsx)(n.p,{children:\"Track and manage bugs or issues within a project. Collaborate and organize the work that needs to be done and prioritize tasks.\"}),`\n`,(0,a.jsxs)(n.h2,{id:\"project-purpose\",children:[(0,a.jsx)(n.a,{className:\"anchor\",href:\"#project-purpose\",children:(0,a.jsx)(n.span,{className:\"icon icon-link\"})}),\"Project Purpose\"]}),`\n`,(0,a.jsxs)(n.ul,{children:[`\n`,(0,a.jsxs)(n.li,{children:[\"Learn \",(0,a.jsx)(n.a,{href:\"https://tanstack.com/query/v4\",children:\"React Query\"})]}),`\n`]})]});return r?(0,a.jsx)(r,Object.assign({},e,{children:s})):s}var x=k;return _;})();\n;return Component.default;"},"_id":"projetos/react-next/issue-tracker.mdx","_raw":{"sourceFilePath":"projetos/react-next/issue-tracker.mdx","sourceFileName":"issue-tracker.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/issue-tracker"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.18,"time":10800,"words":36},"wordCount":38,"slug":"issue-tracker"},{"title":"Antigo portfolio","shortDescription":"Meu antigo portfolio","tech":"react-next","githubURL":"https://github.com/joaom00/old-jpedromagalhaes","livePreviewURL":"https://old-jpedromagalhaes.vercel.app/","body":{"raw":"\n## Meu antigo site\n\n\"Antigo\n\n### Tecnologias\n\n- [NextJS](https://reactjs.org)\n- [TypeScript](https://www.typescriptlang.org)\n- [Framer Motion](https://www.framer.com/docs/introduction/)\n","code":"var Component=(()=>{var l=Object.create;var o=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var r=e=>o(e,\"__esModule\",{value:!0});var g=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),u=(e,n)=>{r(e);for(var t in n)o(e,t,{get:n[t],enumerable:!0})},f=(e,n,t)=>{if(n&&typeof n==\"object\"||typeof n==\"function\")for(let a of m(n))!p.call(e,a)&&a!==\"default\"&&o(e,a,{get:()=>n[a],enumerable:!(t=h(n,a))||t.enumerable});return e},j=e=>f(r(o(e!=null?l(d(e)):{},\"default\",e&&e.__esModule&&\"default\"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var c=g((b,s)=>{s.exports=_jsx_runtime});var _={};u(_,{default:()=>x});var i=j(c());function w(e={}){let n=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",h3:\"h3\",ul:\"ul\",li:\"li\"},e.components),{wrapper:t}=n,a=(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.h2,{id:\"meu-antigo-site\",children:[(0,i.jsx)(n.a,{className:\"anchor\",href:\"#meu-antigo-site\",children:(0,i.jsx)(n.span,{className:\"icon icon-link\"})}),\"Meu antigo site\"]}),`\n`,(0,i.jsx)(\"img\",{src:\"https://raw.githubusercontent.com/joaom00/old-jpedromagalhaes/main/.github/portfolio.png\",alt:\"Antigo Portfolio Preview\"}),`\n`,(0,i.jsxs)(n.h3,{id:\"tecnologias\",children:[(0,i.jsx)(n.a,{className:\"anchor\",href:\"#tecnologias\",children:(0,i.jsx)(n.span,{className:\"icon icon-link\"})}),\"Tecnologias\"]}),`\n`,(0,i.jsxs)(n.ul,{children:[`\n`,(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:\"https://reactjs.org\",children:\"NextJS\"})}),`\n`,(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:\"https://www.typescriptlang.org\",children:\"TypeScript\"})}),`\n`,(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:\"https://www.framer.com/docs/introduction/\",children:\"Framer Motion\"})}),`\n`]})]});return t?(0,i.jsx)(t,Object.assign({},e,{children:a})):a}var x=w;return _;})();\n;return Component.default;"},"_id":"projetos/react-next/old-portfolio.mdx","_raw":{"sourceFilePath":"projetos/react-next/old-portfolio.mdx","sourceFileName":"old-portfolio.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/old-portfolio"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.095,"time":5700,"words":19},"wordCount":21,"slug":"old-portfolio"},{"title":"Podcastr","shortDescription":"Escute seu podcast favorito","tech":"react-next","githubURL":"https://github.com/joaom00/podcastr","body":{"raw":"\n\"Podcastr\"\n\n## Tecnologias\n\nEsse projeto foi desenvolvido com as seguintes tecnologias:\n\n- [React](https://reactjs.org)\n- [Next.js](https://nextjs.org/)\n- [TypeScript](https://www.typescriptlang.org/)\n\n## Projeto\n\nO podcastr é um app para reprodução de episódios em áudio do seu podcast favorito.\n\n## Layout\n\nVocê pode visualizar o layout do projeto através [desse link](https://www.figma.com/file/UwFEntsHpHYJlHNQAQr4gA/Podcastr/duplicate). É necessário ter conta no [Figma](http://figma.com/) para acessá-lo.\n\n---\n\nFeito com ♥ by Rocketseat 👋🏻 [Participe da nossa comunidade!](https://discordapp.com/invite/gCRAFhc)\n","code":"var Component=(()=>{var l=Object.create;var s=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var i=a=>s(a,\"__esModule\",{value:!0});var u=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),g=(a,e)=>{i(a);for(var o in e)s(a,o,{get:e[o],enumerable:!0})},f=(a,e,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of d(e))!m.call(a,r)&&r!==\"default\"&&s(a,r,{get:()=>e[r],enumerable:!(o=h(e,r))||o.enumerable});return a},j=a=>f(i(s(a!=null?l(p(a)):{},\"default\",a&&a.__esModule&&\"default\"in a?{get:()=>a.default,enumerable:!0}:{value:a,enumerable:!0})),a);var c=u((_,t)=>{t.exports=_jsx_runtime});var y={};g(y,{default:()=>x});var n=j(c());function w(a={}){let e=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",p:\"p\",ul:\"ul\",li:\"li\",hr:\"hr\"},a.components),{wrapper:o}=e,r=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(\"img\",{alt:\"Podcastr\",src:\"https://raw.githubusercontent.com/joaom00/podcastr/main/.github/podcastr.png\",width:\"100%\"}),`\n`,(0,n.jsxs)(e.h2,{id:\"tecnologias\",children:[(0,n.jsx)(e.a,{className:\"anchor\",href:\"#tecnologias\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Tecnologias\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Esse projeto foi desenvolvido com as seguintes tecnologias:\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"https://reactjs.org\",children:\"React\"})}),`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"https://nextjs.org/\",children:\"Next.js\"})}),`\n`,(0,n.jsx)(e.li,{children:(0,n.jsx)(e.a,{href:\"https://www.typescriptlang.org/\",children:\"TypeScript\"})}),`\n`]}),`\n`,(0,n.jsxs)(e.h2,{id:\"projeto\",children:[(0,n.jsx)(e.a,{className:\"anchor\",href:\"#projeto\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Projeto\"]}),`\n`,(0,n.jsx)(e.p,{children:\"O podcastr \\xE9 um app para reprodu\\xE7\\xE3o de epis\\xF3dios em \\xE1udio do seu podcast favorito.\"}),`\n`,(0,n.jsxs)(e.h2,{id:\"layout\",children:[(0,n.jsx)(e.a,{className:\"anchor\",href:\"#layout\",children:(0,n.jsx)(e.span,{className:\"icon icon-link\"})}),\"Layout\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Voc\\xEA pode visualizar o layout do projeto atrav\\xE9s \",(0,n.jsx)(e.a,{href:\"https://www.figma.com/file/UwFEntsHpHYJlHNQAQr4gA/Podcastr/duplicate\",children:\"desse link\"}),\". \\xC9 necess\\xE1rio ter conta no \",(0,n.jsx)(e.a,{href:\"http://figma.com/\",children:\"Figma\"}),\" para acess\\xE1-lo.\"]}),`\n`,(0,n.jsx)(e.hr,{}),`\n`,(0,n.jsxs)(e.p,{children:[\"Feito com \\u2665 by Rocketseat \\u{1F44B}\\u{1F3FB} \",(0,n.jsx)(e.a,{href:\"https://discordapp.com/invite/gCRAFhc\",children:\"Participe da nossa comunidade!\"})]})]});return o?(0,n.jsx)(o,Object.assign({},a,{children:r})):r}var x=w;return y;})();\n;return Component.default;"},"_id":"projetos/react-next/podcastr.mdx","_raw":{"sourceFilePath":"projetos/react-next/podcastr.mdx","sourceFileName":"podcastr.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/podcastr"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.345,"time":20700,"words":69},"wordCount":71,"slug":"podcastr"},{"title":"Proffy","shortDescription":"Plataforma para aulas particulares","tech":"react-next","githubURL":"https://github.com/joaom00/proffy","body":{"raw":"\n\"design\n\n## Sobre\n\nO **Proffy** é uma aplicação Web e Mobile feita para auxiliar na conexão entre os alunos e os professores. Logo, esta aplicação oferece aos professores a possibilidade de registrar aulas, podendo adicionar informações como a disciplina, o custo e horário e aos alunos a possibilidade de buscar pelas aulas cadastradas.\n\nEste projeto foi idealizado pensando no **6 de agosto**, onde se comemora o **Dia Nacional dos Profissionais da Educação**.\n\nEssa aplicação foi realizada durante a Next **Level Week #2**, projeto da [Rocketseat](https://rocketseat.com.br/).\n\n## Tecnologias\n\n- [Typescript](https://www.typescriptlang.org/)\n- [Node.js](https://nodejs.org/en/)\n- [ReactJS](https://reactjs.org/)\n- [React Native](http://facebook.github.io/react-native/)\n- [Expo](https://expo.io/)\n- [Express](https://expressjs.com/)\n- [axios](https://github.com/axios/axios)\n\n---\n\nProjeto desenvolvido com a tutoria de [Diego Fernandes](https://github.com/diego3g), da [Rocketseat](rocketseat.com.br).\n","code":"var Component=(()=>{var l=Object.create;var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var i=a=>s(a,\"__esModule\",{value:!0});var f=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports),m=(a,e)=>{i(a);for(var r in e)s(a,r,{get:e[r],enumerable:!0})},u=(a,e,r)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of h(e))!g.call(a,n)&&n!==\"default\"&&s(a,n,{get:()=>e[n],enumerable:!(r=d(e,n))||r.enumerable});return a},b=a=>u(i(s(a!=null?l(p(a)):{},\"default\",a&&a.__esModule&&\"default\"in a?{get:()=>a.default,enumerable:!0}:{value:a,enumerable:!0})),a);var c=f((w,t)=>{t.exports=_jsx_runtime});var k={};m(k,{default:()=>x});var o=b(c());function j(a={}){let e=Object.assign({h2:\"h2\",a:\"a\",span:\"span\",p:\"p\",strong:\"strong\",ul:\"ul\",li:\"li\",hr:\"hr\"},a.components),{wrapper:r}=e,n=(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(\"img\",{alt:\"design do projeto web\",src:\"https://raw.githubusercontent.com/joaom00/proffy/master/images/web.jpg\"}),`\n`,(0,o.jsxs)(e.h2,{id:\"sobre\",children:[(0,o.jsx)(e.a,{className:\"anchor\",href:\"#sobre\",children:(0,o.jsx)(e.span,{className:\"icon icon-link\"})}),\"Sobre\"]}),`\n`,(0,o.jsxs)(e.p,{children:[\"O \",(0,o.jsx)(e.strong,{children:\"Proffy\"}),\" \\xE9 uma aplica\\xE7\\xE3o Web e Mobile feita para auxiliar na conex\\xE3o entre os alunos e os professores. Logo, esta aplica\\xE7\\xE3o oferece aos professores a possibilidade de registrar aulas, podendo adicionar informa\\xE7\\xF5es como a disciplina, o custo e hor\\xE1rio e aos alunos a possibilidade de buscar pelas aulas cadastradas.\"]}),`\n`,(0,o.jsxs)(e.p,{children:[\"Este projeto foi idealizado pensando no \",(0,o.jsx)(e.strong,{children:\"6 de agosto\"}),\", onde se comemora o \",(0,o.jsx)(e.strong,{children:\"Dia Nacional dos Profissionais da Educa\\xE7\\xE3o\"}),\".\"]}),`\n`,(0,o.jsxs)(e.p,{children:[\"Essa aplica\\xE7\\xE3o foi realizada durante a Next \",(0,o.jsx)(e.strong,{children:\"Level Week #2\"}),\", projeto da \",(0,o.jsx)(e.a,{href:\"https://rocketseat.com.br/\",children:\"Rocketseat\"}),\".\"]}),`\n`,(0,o.jsxs)(e.h2,{id:\"tecnologias\",children:[(0,o.jsx)(e.a,{className:\"anchor\",href:\"#tecnologias\",children:(0,o.jsx)(e.span,{className:\"icon icon-link\"})}),\"Tecnologias\"]}),`\n`,(0,o.jsxs)(e.ul,{children:[`\n`,(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:\"https://www.typescriptlang.org/\",children:\"Typescript\"})}),`\n`,(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:\"https://nodejs.org/en/\",children:\"Node.js\"})}),`\n`,(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:\"https://reactjs.org/\",children:\"ReactJS\"})}),`\n`,(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:\"http://facebook.github.io/react-native/\",children:\"React Native\"})}),`\n`,(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:\"https://expo.io/\",children:\"Expo\"})}),`\n`,(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:\"https://expressjs.com/\",children:\"Express\"})}),`\n`,(0,o.jsx)(e.li,{children:(0,o.jsx)(e.a,{href:\"https://github.com/axios/axios\",children:\"axios\"})}),`\n`]}),`\n`,(0,o.jsx)(e.hr,{}),`\n`,(0,o.jsxs)(\"sup\",{children:[\"Projeto desenvolvido com a tutoria de \",(0,o.jsx)(e.a,{href:\"https://github.com/diego3g\",children:\"Diego Fernandes\"}),\", da \",(0,o.jsx)(e.a,{href:\"rocketseat.com.br\",children:\"Rocketseat\"}),\".\"]})]});return r?(0,o.jsx)(r,Object.assign({},a,{children:n})):n}var x=j;return k;})();\n;return Component.default;"},"_id":"projetos/react-next/proffy.mdx","_raw":{"sourceFilePath":"projetos/react-next/proffy.mdx","sourceFileName":"proffy.mdx","sourceFileDir":"projetos/react-next","bodyType":"mdx","flattenedPath":"projetos/react-next/proffy"},"type":"RNProject","readingTime":{"text":"1 min read","minutes":0.595,"time":35700,"words":119},"wordCount":121,"slug":"proffy"}]},"__N_SSG":true}