{"id":18763776,"url":"https://github.com/roverdotcom/rxn-workshop","last_synced_at":"2025-12-06T05:30:21.725Z","repository":{"id":74854350,"uuid":"284133928","full_name":"roverdotcom/rxn-workshop","owner":"roverdotcom","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-25T20:13:14.000Z","size":703,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-29T05:27:19.390Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/roverdotcom.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":"2020-07-31T21:36:43.000Z","updated_at":"2020-07-31T22:45:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"765ea76a-7cf3-4ecc-b34a-725ad3254efe","html_url":"https://github.com/roverdotcom/rxn-workshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roverdotcom%2Frxn-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roverdotcom%2Frxn-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roverdotcom%2Frxn-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roverdotcom%2Frxn-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roverdotcom","download_url":"https://codeload.github.com/roverdotcom/rxn-workshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239661868,"owners_count":19676411,"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-07T18:27:25.931Z","updated_at":"2025-12-06T05:30:16.397Z","avatar_url":"https://github.com/roverdotcom.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rover React Native Interview Project\n\nRover is building a minimal version of its app and we need your help! We've identified 2 bugs and 2 feature requests that need to be resolved before launching.\n\n## Introduction\n\nThe app contained in this repository is a [Expo-created React Native app](https://expo.io/) using the \"managed workflow\". It is designed to be easy for you to jump in and get started.\n\nIn addition to completing the outlined tasks, we ask that you add to this README file notes from your implementations and any thoughts you have on the projects structure or patterns.\n\nFinally, this is not a trick project, so if you have any questions, don't hesitate to ask.\n\n## Setup\n\nTo run the project, clone the repo and run `yarn start` or `npm start`. This command will require:\n\n1. You have Node version \u003e=10 installed\n2. You have the expo-cli installed globally\n\nFor more in formation, take a look at the [Expo documentation](https://docs.expo.io/versions/v36.0.0/get-started/create-a-new-app/#starting-the-development-server).\n\n## Tasks\n\n### 🐞Bugs\n\n#### Sort by price is not working\n\nWhen trying to sort by price, the results do not change order.\n\n![](./images/sort_by_price.png)\n\n##### Steps to Reproduce\n\n1. Open the app\n2. Select the \"Price\" sort option\n\n##### Actual Result\n\nOrder does not change from \"relevance\" option\n\n##### Expected Result\n\nOrder of results changes to be from price low to high\n\n#### Offline searches fail silently\n\nWhen the app goes offline, searches will fail, but there will be no indication to the user.\n\n##### Steps to Reproduce\n\n1. Open the app and let search load\n2. Disconnect from the internet\n3. Adjust filters (i.e. from \"Dog Boarding\" to \"House Sitting\")\n4. Press \"Done\"\n\n##### Actual Result\n\nSearch results are the same as the initial search\n\n##### Expected Result\n\nError message is shown in place of search results (feel free to improvise the message text and design)\n\n### 📦 Feature Requests\n\n#### Add distance away to search results\n\nWe've determined that knowing how far a provider is from the user is an important factor in decision making. We need to add this information to the search results.\n\n![](./images/distance_away.png)\n\nThis data already exists in the API response.\n\n##### Definition of Done\n\nEach sitter card displays the distance away from the user.\n\n#### Price filter\n\nWe need to allow users to filter search results by price. The API support the following query params (more detailed API documentation in [SEARCH.md](./SEARCH.md)):\n\n| Key | Type | Example |\n|---|---|---|\n| minprice | Number (between 0 and 150) | minprice=10 |\n| maxprice | Number (between 0 and 150) | maxprice=130 |\n\nYou can use your own knowledge of common UI patterns to decide how these filters will be displayed.\n\n##### Definition of Done\n\nUser can filter by price on the \"Filters\" screen\n\n## Candidate Notes\n\nAdd your notes here. Things to consider:\n\n- How did you solve the issues?\n- What choices did you make?\n- What are your thoughts on the project's structure?\n- What might you do differently if you were setting up this project?\n\n## When you're done with the project...\n\nWhen you're done with the project, push your work back into the repo. Then, reply to the email you received from us letting us know you've pushed your project. You may be tempted to email us directly, but don't do that because we rely on an applicant tracking system (ATS) to keep on top of candidates in process. Replying through it will help ensure you don't slip through the cracks.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froverdotcom%2Frxn-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froverdotcom%2Frxn-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froverdotcom%2Frxn-workshop/lists"}