{"id":18884738,"url":"https://github.com/leandroppf/gostack-desafio-react-native-delivery","last_synced_at":"2026-02-22T21:30:17.574Z","repository":{"id":38857458,"uuid":"289123954","full_name":"leandroppf/gostack-desafio-react-native-delivery","owner":"leandroppf","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-24T03:41:20.000Z","size":5344,"stargazers_count":0,"open_issues_count":22,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T04:25:41.491Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/leandroppf.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}},"created_at":"2020-08-20T22:33:05.000Z","updated_at":"2020-08-24T02:25:55.000Z","dependencies_parsed_at":"2023-02-13T16:01:38.235Z","dependency_job_id":null,"html_url":"https://github.com/leandroppf/gostack-desafio-react-native-delivery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"rocketseat-education/gostack-template-react-native-delivery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-react-native-delivery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-react-native-delivery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-react-native-delivery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-react-native-delivery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leandroppf","download_url":"https://codeload.github.com/leandroppf/gostack-desafio-react-native-delivery/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239857396,"owners_count":19708686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-08T07:14:03.964Z","updated_at":"2026-02-22T21:30:17.530Z","avatar_url":"https://github.com/leandroppf.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"GoStack\" src=\"https://storage.googleapis.com/golden-wind/bootcamp-gostack/header-desafios-new.png\" /\u003e\n\n\u003ch3 align=\"center\"\u003e\n  Desafio 11: GoRestaurant Mobile\n\u003c/h3\u003e\n\n\u003cblockquote align=\"center\"\u003e“Nada no mundo supera a persistência.”!\u003c/blockquote\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/leandroppf/gostack-desafio-react-native-delivery?color=%2304D361\"\u003e\n\n  \u003ca href=\"https://rocketseat.com.br\"\u003e\n    \u003cimg alt=\"Made by Leandro Pedroso\" src=\"https://img.shields.io/badge/made%20by-Leandroppf-%2304D361\"\u003e\n  \u003c/a\u003e\n\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-%2304D361\"\u003e\n\n  \u003ca href=\"https://github.com/leandroppf/gostack-desafio-react-native-delivery/stargazers\"\u003e\n    \u003cimg alt=\"Stargazers\" src=\"https://img.shields.io/github/stars/leandroppf/gostack-desafio-react-native-delivery?style=social\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## :rocket: Sobre o desafio\n\nNesse desafio o objetivo era desenvolver uma nova aplicação, a GoRestaurant, só que dessa vez a versão mobile para o cliente. Para esse desafio, foi utilizado React Native junto com TypeScript, para criar um pequeno app para pedidos de comida.\n\nEssa aplicação deve exibir e filtrar os pratos de comida da API e permitir a criação de novos pedidos.\n\n### Layout da aplicação\n\nEssa aplicação possui um layout desenvolvido pela equipe da Rocketseat.\n\nO layout pode ser acessado através da página do Figma, no [seguinte link](https://www.figma.com/file/cHzfYrUBgdzp1XrRuUpggk/GoRestaurant-Mobile?node-id=1603%3A448).\n\n### Funcionalidades da aplicação\n\n- **`Listar os pratos de comida da sua API`**: Sua página `Dashboard` deve ser capaz de exibir uma listagem, com o campo `name`, `value` e  `description` de todos os pratos de comida que estão cadastrados na sua API.\n\n- **`Listar as categorias da sua API`**: Sua página `Dashboard` deve ser capaz de exibir uma listagem, com o campo `title` e `image_url` de todas as categorias que estão cadastrados na sua API.\n\n- **`Filtrar pratos de comida por busca ou por categorias`**: Em sua página Dashboard permitir que o input de pesquisa e os botões de categoria façam uma busca na API de acordo com o que estiver selecionado ou escrito no input.\n\n- **`Listar os pedidos da sua API`**: Sua página `Orders` deve ser capaz de exibir uma listagem, com o campo as informações do produto pedido, com `name` e `description` de todos os pedidos que estão cadastrados na sua API.\n\n- **`Listar os pratos favoritos da sua API`**: Sua página `Favorites` deve ser capaz de exibir uma listagem, com o campo as informações do produto favorito, com `name` e `description` de todos os pedidos que estão cadastrados na sua API.\n\n- **`Realizar um pedido`**: Na sua página `Dashboard`, ao clicar em um item, você deve redirecionar o usuário para a página `FoodDetails`, onde será possível realizar um novo pedido, podendo controlar a quantidade desse item pedido, ou adicionar ingredientes extras. Todo o valor deve ser calculado de acordo com a quantidade pedida.\n\n### Específicação dos testes\n\nO template também possui testes automatizados e um dos objetivos é que o código criado passe em todos os testes listados abaixo:\n\n- **`should be able to list the food plates`**: Para que esse teste passe, sua aplicação deve permitir que sejam listados na sua `Dashboard`, todos os pratos de comidas que são retornados da sua fake API.\n\n- **`should be able to list the food plates filtered by category`**: Para que esse teste passe, sua aplicação deve permitir que sejam listados na sua `Dashboard`, os pratos de comidas filtrados por categoria da sua fake API.\n\n- **`should be able to list the food plates filtered by name search`**:  Para que esse teste passe, sua aplicação deve permitir que sejam listados na sua `Dashboard`, os pratos de comidas filtrados por nome da sua fake API.\n\n- **`should be able to navigate to the food details page`**: Para que esse teste passe, em sua `Dashboard`, você deve permitir que ao clicar em um item, seja navegado para a página `FoodDetails` passando por parâmetro da navegação o id do item clicado.\n\n- **`should be able to list the favorite food plates`**: Para que esse teste passe, sua aplicação deve permitir que sejam listados na sua página `Favorites`, todos os pratos de comidas que estão salvos na rota `favorites`.\n\n- **`should be able to list the orders`**: Para que esse teste passe, sua aplicação deve permitir que sejam listados na sua página `Orders`, todos os pratos de comidas que estão salvos na rota `orders`.\n\n- **`should be able to list the food`**: Para que esse teste passe, sua aplicação deve permitir que seja listado todos os dados de uma comída específica na página `FoodDetails`, baseado no id recuperado pelos parametros da rota.\n\n- **`should be able to increment food quantity`**: Para que esse teste passe, você deve permitir que seja incrementada em 1 a quantidade do item na página `FoodDetails`.\n\n- **`should be able to decrement food quantity`**: Para que esse teste passe, você deve permitir que seja decrementada em 1 a quantidade do item na página `FoodDetails`.\n\n- **`should not be able to decrement food quantity below than 1`**: Para que esse teste passe, você deve impedir que seja decrementado a quantidade de itens até um número menor que 1, assim o número mínimo de itens no pedido é 1.\n\n- **`should be able to increment an extra item quantity`**: Para que esse teste passe, você deve permitir que seja incrementada em 1 a quantidade de um ingrediente extra na página `FoodDetails` baseado no seu id.\n\n- **`should be able to decrement an extra item quantity`**: Para que esse teste passe, você deve permitir que seja decrementado em 1 a quantidade de um ingrediente extra na página `FoodDetails` baseado no seu id.\n\n---\n\nDesafio concluído no dia 21/08/2020 por Leandro Pinto Pedroso Filho\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandroppf%2Fgostack-desafio-react-native-delivery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleandroppf%2Fgostack-desafio-react-native-delivery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandroppf%2Fgostack-desafio-react-native-delivery/lists"}