{"id":21413340,"url":"https://github.com/cauandzn/gorestaurant","last_synced_at":"2026-04-17T15:07:05.870Z","repository":{"id":136253067,"uuid":"598839828","full_name":"CauanDZN/gorestaurant","owner":"CauanDZN","description":"A React web application for a restaurant.","archived":false,"fork":false,"pushed_at":"2023-02-07T22:55:29.000Z","size":224,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T18:23:54.713Z","etag":null,"topics":["javascript","json","json-server","react","reactjs","server","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/CauanDZN.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":"2023-02-07T22:53:42.000Z","updated_at":"2023-05-01T03:22:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"e3202a14-222a-4a15-b16a-2c737da5bd52","html_url":"https://github.com/CauanDZN/gorestaurant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CauanDZN/gorestaurant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CauanDZN%2Fgorestaurant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CauanDZN%2Fgorestaurant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CauanDZN%2Fgorestaurant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CauanDZN%2Fgorestaurant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CauanDZN","download_url":"https://codeload.github.com/CauanDZN/gorestaurant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CauanDZN%2Fgorestaurant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31933778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T12:37:54.787Z","status":"ssl_error","status_checked_at":"2026-04-17T12:37:25.095Z","response_time":62,"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":["javascript","json","json-server","react","reactjs","server","typescript"],"created_at":"2024-11-22T18:18:02.045Z","updated_at":"2026-04-17T15:07:05.832Z","avatar_url":"https://github.com/CauanDZN.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Desafio 02 - Refactoring de classes e typescript\n\n## 💻 Sobre o desafio\n\nNesse desafio, você deverá criar uma aplicação para treinar o que aprendeu até agora no ReactJS\n\nEssa será uma aplicação já funcional onde o seu principal objetivo é realizar dois processos de migração: de Javascript para Typescript e de Class Components para Function Components.\n\nA seguir veremos com mais detalhes o que e como precisa ser feito 🚀\n\n## Se preparando para o desafio\n\nPara esse desafio, além dos conceitos vistos em aula utilizaremos o JSON server para criar uma Fake API com os dados das comidas.\n\n### Fake API com JSON Server\n\nAssim como utilizamos o MirageJS no módulo 2 para simular uma API com os dados das transações da aplicação dt.money, vamos utilizar o JSON Server para simular uma API que possui as informações das comidas. \n\nNavegue até a pasta criada, abra no Visual Studio Code e execute os seguintes comandos no terminal:\n\n```bash\nyarn\nyarn server\n```\n\n\nDessa forma, basta consumir essas rotas da API normalmente com o Axios. \n\n## O que devo editar na aplicação?\n\nCom o template já clonado, as depêndencias instaladas e a [fake API rodando](https://www.notion.so/Desafio-02-Refactoring-de-classes-e-typescript-4571541e7f8c4799bd191b6cfb53802c), você deve editar os seguintes arquivos:\n\n- src/components/Food/index.jsx;\n- src/components/Food/styles.js;\n- src/components/Header/index.jsx;\n- src/components/Header/styles.js;\n- src/components/Input/index.jsx;\n- src/components/Input/styles.js;\n- src/components/Modal/index.jsx;\n- src/components/ModalAddFood/index.jsx;\n- src/components/ModalAddFood/styles.js;\n- src/components/ModalEditFood/index.jsx;\n- src/components/ModalEditFood/styles.js;\n- src/pages/Dashboard/index.jsx;\n- src/pages/Dashboard/styles.js;\n- src/routes/index.jsx;\n- src/services/api.js;\n- src/styles/global.js;\n- src/App.js;\n- src/index.js.\n\nTodos esses arquivos devem ser migrados de Javascript para Typescript. Além disso, os arquivos que possuírem componentes em classe devem ser migrados para componentes funcionais.\n\n## Preparando ambiente Typescript\n\nComo esse é um projeto CRA sem TypeScript, você primeiro precisar instalar as dependências/tipagens e configurar o TS. Nossa sugestão é criar um novo projeto CRA com Typescript e comparar a estrutura atual com a que você precisa ter. Realizando essa comparação, facilmente você consegue ver que:\n\n- É preciso instalar o `typescript`\n- É preciso criar um arquivo de configuração `tsconfig.json`. Inclusive, você pode utilizar a configuração gerada automaticamente no CRA template Typescript para criar o seu arquivo.\n- É preciso criar um arquivo `react-app-env.d.ts` com o conteúdo:\n\n```tsx\n/// \u003creference types=\"react-scripts\" /\u003e\n```\n\n- É preciso instalar as tipagens das bibliotecas.\n\nConfigurando esse setup, você deve ser capaz de trabalhar normalmente com o Typescript no seu projeto.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcauandzn%2Fgorestaurant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcauandzn%2Fgorestaurant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcauandzn%2Fgorestaurant/lists"}