{"id":21017712,"url":"https://github.com/epiled/alfood","last_synced_at":"2026-04-11T06:41:41.723Z","repository":{"id":209288311,"uuid":"723663954","full_name":"Epiled/alfood","owner":"Epiled","description":"🍔 Site da Alfood com sistema de CMS, um CRUD completo para a gestão dos restaurantes e pratos 🍳","archived":false,"fork":false,"pushed_at":"2024-01-07T18:02:22.000Z","size":92734,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-02T15:19:10.843Z","etag":null,"topics":["axios-react","css-modules","mui","react","sass","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/Epiled.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}},"created_at":"2023-11-26T11:49:34.000Z","updated_at":"2023-11-27T10:37:47.000Z","dependencies_parsed_at":"2024-01-07T19:32:31.337Z","dependency_job_id":null,"html_url":"https://github.com/Epiled/alfood","commit_stats":null,"previous_names":["epiled/alfood"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Epiled/alfood","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Epiled%2Falfood","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Epiled%2Falfood/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Epiled%2Falfood/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Epiled%2Falfood/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Epiled","download_url":"https://codeload.github.com/Epiled/alfood/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Epiled%2Falfood/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31671629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["axios-react","css-modules","mui","react","sass","typescript"],"created_at":"2024-11-19T10:21:24.885Z","updated_at":"2026-04-11T06:41:41.701Z","avatar_url":"https://github.com/Epiled.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍲 Alfood\nProjeto do curso \u003ca href=\"https://cursos.alura.com.br/course/react-integrando-projeto-react-apis\"\u003eReact: integrando seu projeto React com APIs\u003c/a\u003e da Alura, curso ministrado pelo instrutor \u003ca href=\"https://www.linkedin.com/in/vinny-neves/\"\u003eMarcos Vinicios da Silva Neves\u003c/a\u003e.\n\n| :placard: Vitrine.Dev |     |\n| -------------  | --- |\n| :sparkles: Nome        | **Alfood**\n| :label: Tecnologias | html, css, js, sass, node, react, typescript, css modules, axios, mui, docker, swagger\n\n\u003c!-- Inserir imagem com a #vitrinedev ao final do link --\u003e\n\n![alfood](https://github.com/Epiled/alfood/assets/55258483/895836cd-89da-4147-a37d-5b73ba083296#vitrinedev)\n\n\u003ch2 id=\"detalhes-do-projeto\"\u003e 📃 Detalhes do projeto \u003c/h2\u003e\n\nNeste projeto, implementamos uma área de administração para a empresa Alfood com um sistema de CMS para gerenciar restaurantes e pratos. O sistema possui um CRUD completo e funcional.\n\nPara os usuários, desenvolvemos um sistema de busca que facilita a localização de restaurantes de seu interesse, além de implementar um eficiente sistema de paginação.\n\nDentro do projeto, apresentamos duas versões dessas funcionalidades:\n\n1. **Sistema de Busca e Paginação por Scroll Infinito:**\n   - Busca: Orientada pelo nome do restaurante.\n   - Paginação: Implementada de forma dinâmica, permitindo uma experiência contínua e intuitiva.\n\n2. **Sistema de Busca e Paginação por Páginas:**\n   - Busca: Inclui um campo adicional para especificar a ordenação desejada.\n   - Paginação: Estruturada por páginas, oferecendo uma abordagem mais clássica e organizada.\n\nEssas versões proporcionam diferentes experiências de uso, atendendo às preferências e necessidades dos usuários.\n\nUtilizamos React com TypeScript para o desenvolvimento, garantindo um código de qualidade com a ajuda do ESLint. O estilo foi aplicado usando CSS Modules e Sass.\n\nDado o foco funcional do projeto, concentrando-se na compreensão do consumo de API em React por meio do Axios, optou-se por manter um design simples e intuitivo.\n\n![Badge](https://img.shields.io/github/last-commit/Epiled/alfood?style=for-the-badge)\n![Badge](https://img.shields.io/github/languages/code-size/Epiled/alfood?style=for-the-badge)\n![Badge](https://img.shields.io/github/languages/count/Epiled/alfood?style=for-the-badge)\n![Bagde](https://img.shields.io/badge/repo%20status-Beta-cyan?style=for-the-badge)\n![Bagde](https://img.shields.io/github/v/release/Epiled/alfood?style=for-the-badge)\n![Bagde](https://img.shields.io/github/license/Epiled/alfood?style=for-the-badge)\n\n![Badge](https://img.shields.io/badge/-HTML5-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-CSS3-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-JS-F7DF1E?style=for-the-badge\u0026logo=javascript\u0026logoColor=black)\n![Badge](https://img.shields.io/badge/-Sass-CC6699?style=for-the-badge\u0026logo=sass\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-Node.js-339933?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-React-61DAFB?style=for-the-badge\u0026logo=react\u0026logoColor=black)\n![Badge](https://img.shields.io/badge/-Typescript-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-CSS%20Modules-000000?style=for-the-badge\u0026logo=cssmodules\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-Axios-5A29E4?style=for-the-badge\u0026logo=axios\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-MUI-007FFF?style=for-the-badge\u0026logo=mui\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![Badge](https://img.shields.io/badge/-Swagger-85EA2D?style=for-the-badge\u0026logo=swagger\u0026logoColor=black)\n\n\u003ch2\u003e 📑 Tabela de Conteúdos \u003c/h2\u003e\n\n\u003c!--ts--\u003e\n   * [Detalhes do projeto](#detalhes-do-projeto)\n   * [Tópicos Desenvolvidos](#topicos-curso)\n   * [Demonstração](#demonstracao)\n     - [Home](#home)\n     - [Restaurantes V1 Scroll Infinito](#restaurantes-v1)\n     - [Restaurantes V2 Paginação por Páginas](#restaurantes-v2)\n     - [Admin - Restaurantes](#admin-restaurantes)\n     - [Admin - Novo Restaurante](#admin-novo-restaurante)\n     - [Admin - Editar Restaurante](#admin-editar-restaurante)\n     - [Admin - Excluir Restaurante](#admin-excluir-restaurante)\n     - [Admin - Pratos](#admin-pratos)\n     - [Admin - Novo Prato](#admin-novo-prato)\n     - [Admin - Editar Prato](#admin-editar-prato)\n     - [Admin - Excluir Prato](#admin-excluir-prato)\n     - [Documentação Swagger](#documentacao-swagger)\n   * [Pré-Requisito](#pre-requisito)\n   * [Instalação](#instalacao)\n   * [Como usar](#como-usar)\n   * [Tecnologias](#tecnologias)\n   * [Autor](#autor)\n\u003c!--te--\u003e\n\n\u003ch2 id=\"topicos-curso\"\u003e 👩‍🏫 Tópicos desenvolvidos\u003c/h2\u003e\n\n\u003c!--ts--\u003e\n* Desenvolva a comunicação entre uma aplicação React e uma API REST\n* Implemente hooks para buscar dados em uma API\n* Utilize o axios para realizar requisições HTTP\n* Avalie as informações da resposta da API\n* Integre o frontend ao backend\n* Descreva o funcionamento de uma API a partir do Swagger\n\u003c!--te--\u003e\n\n\u003ch2 id=\"demonstracao\"\u003e 👀 Demonstração \u003c/h2\u003e\n\n\u003ch3 id=\"home\"\u003e Home \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/dc16d154-1054-43d5-a0ce-221b6ec93910\n\n\u003ch3 id=\"restaurantes-v1\"\u003e Restaurantes V1 Scroll Infinito \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/e23a96bc-ec81-48d2-8015-3c42d160248a\n\n\u003ch3 id=\"restaurantes-v2\"\u003e Restaurantes V2 Paginação por Páginas \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/01d6f129-2159-48a1-b1cd-e3fd0806ebf2\n\n\u003ch3 id=\"admin-restaurantes\"\u003e Admin - Restaurantes \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/52a1f502-82f4-4b2e-8352-797f61312c94\n\n\u003ch3 id=\"admin-novo-restaurante\"\u003e Admin - Novo Restaurante \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/bebc8533-9c59-4077-9c82-b78b3e5d0f28\n\n\u003ch3 id=\"admin-editar-restaurante\"\u003e Admin - Editar Restaurante \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/f3bd2e0c-bcd0-4ced-bbe9-324d20655f42\n\n\u003ch3 id=\"admin-excluir-restaurante\"\u003e Admin - Excluir Restaurante \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/ff5545b1-6a5c-43ac-ad19-73e5a46f4c94\n\n\u003ch3 id=\"admin-pratos\"\u003e Admin - Pratos \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/19f067b8-3288-4976-ba0b-8ce3d4372477\n\n\u003ch3 id=\"admin-novo-prato\"\u003e Admin - Novo Prato \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/41b29a0a-2048-42df-81c8-0960e8b22f22\n\n\u003ch3 id=\"admin-editar-prato\"\u003e Admin - Editar Prato \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/f7a43bdc-fffc-4d42-8819-fb03c572b234\n\n\u003ch3 id=\"admin-excluir-prato\"\u003e Admin - Excluir Prato \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/961ee7d2-c797-4145-8043-8811e6e0ffb8\n\n\u003ch3 id=\"documentacao-swagger\"\u003e Documentação Swagger \u003c/h3\u003e\n\nhttps://github.com/Epiled/alfood/assets/55258483/e497d0ac-4c4a-4a00-a7f3-161a96806f3f\n\n\u003ch2 id=\"pre-requisito\"\u003e 🚨 Pré-requisito \u003c/h2\u003e\n\u003cul\u003e\n  \u003cli\u003eNode\u003c/li\u003e\n  \u003cli\u003eDocker\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2 id=\"instalacao\"\u003e ⚙ Instalação \u003c/h2\u003e\n\n```\n1. git clone https://github.com/Epiled/alfood.git\n```\n\n\u003ch3 id=\"site-dependencias\"\u003eSite e suas dependências\u003c/h3\u003e\n\n```\n1. cd alfood-site\n2. npm install\n```\n\n\u003ch3 id=\"site-dependencias\"\u003eAPI Docker\u003c/h3\u003e\n\nInicie o Dockerc antes de executar os comandos no terminal\n\n```\n1. cd restaurantes_api_docker\n2. docker-compose build\n```\n\n\u003ch2 id=\"como-usar\"\u003e 👩‍🏫 Como usar \u003c/h2\u003e\n\n\u003ch3\u003eInciando o site\u003c/h3\u003e\n\n```\n1. Abra o diretório alfood-site no terminal\n2. npm start\n3. Acesse a url http://localhost:3000/\n```\n\n\u003ch3\u003eInciando o site\u003c/h3\u003e\n\n```\n1. Abra o aplicativo Docker Desktop\n2. Abra o diretório restaurantes_api_docker no terminal\n3. docker-compose up\n4. Acesse a url http://localhost:8000/\n```\n\nA documentação completa do Swagger, que explica em detalhes o funcionamento e o uso da API, está disponível na URL gerada.\n\n\u003ch2 id=\"tecnologias\"\u003e 🛠 Tecnologias \u003c/h2\u003e\n\nAs seguintes tecnologias foram usadas na construção deste projeto:\n\n\u003cul\u003e\n  \u003cli\u003e\u003ca href=\"https://www.w3schools.com/html/default.asp\" target=\"_blank\"\u003eHTML5\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://www.w3schools.com/css/default.asp\" target=\"_blank\"\u003eCSS3\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://www.w3schools.com/js/default.asp\" target=\"_blank\"\u003eJavaScript\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://sass-lang.com/\" target=\"_blank\"\u003eSass\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://nodejs.org/en\" target=\"_blank\"\u003eNode.js\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://react.dev/\" target=\"_blank\"\u003eReact\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://www.typescriptlang.org/\" target=\"_blank\"\u003eTypescript\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/typescript-plugin-css-modules\" target=\"_blank\"\u003eCSS Modules\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://axios-http.com/ptbr/docs/intro\" target=\"_blank\"\u003eAxios\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://mui.com/\" target=\"_blank\"\u003eMUI\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://www.docker.com/\" target=\"_blank\"\u003eDocker\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"https://swagger.io/\" target=\"_blank\"\u003eSwagger\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch2 id=\"autor\"\u003e 👨‍💻 Autor \u003c/h2\u003e\n\n\u003ca href=\"https://github.com/Epiled\"\u003e\n\n![Felindo](https://user-images.githubusercontent.com/55258483/178338085-2cea8bf2-6d0c-409a-9d0e-23359b7d303e.png)\n \u003cbr /\u003e\n \u003csub\u003e\u003cb\u003eFelipe De Andrade\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\n\nFeito com ❤️ por Felipe De Andrade 👋🏽 Entre em contato!\n\n[![Linkedin Badge](https://img.shields.io/badge/-Felipe-blue?style=flat-square\u0026logo=Linkedin\u0026logoColor=white\u0026link=https://www.linkedin.com/in/fademendonca/)](https://www.linkedin.com/in/fademendonca/)\n[![Gmail Badge](https://img.shields.io/badge/-felipe.deam98@gmail.com-c14438?style=flat-square\u0026logo=Gmail\u0026logoColor=white\u0026link=mailto:felipe.deam98@gmail.com)](mailto:felipe.deam98@gmail.com)\n[![Instagram Badge](https://img.shields.io/badge/-Instagram-e4405f?style=flat-square\u0026logo=Instagram\u0026logoColor=white\u0026link=https://www.instagram.com/felipe.deam/)](https://www.instagram.com/felipe.deam/)\n[![Codepen Badge](https://img.shields.io/badge/-Codepen-000000?style=flat-square\u0026logo=Codepen\u0026logoColor=white\u0026link=https://codepen.io/epiled)](https://codepen.io/epiled)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepiled%2Falfood","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fepiled%2Falfood","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fepiled%2Falfood/lists"}