{"id":16349544,"url":"https://github.com/arojunior/sample-react-native-expo","last_synced_at":"2026-01-12T13:58:47.939Z","repository":{"id":38896985,"uuid":"184158815","full_name":"arojunior/sample-react-native-expo","owner":"arojunior","description":"Sample React Native expo application","archived":false,"fork":false,"pushed_at":"2023-01-26T09:44:42.000Z","size":1535,"stargazers_count":0,"open_issues_count":20,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-08T17:44:57.000Z","etag":null,"topics":["expo","react","react-native"],"latest_commit_sha":null,"homepage":"","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/arojunior.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":"2019-04-29T23:34:48.000Z","updated_at":"2020-05-06T18:05:01.000Z","dependencies_parsed_at":"2023-02-14T16:01:00.565Z","dependency_job_id":null,"html_url":"https://github.com/arojunior/sample-react-native-expo","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/arojunior%2Fsample-react-native-expo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arojunior%2Fsample-react-native-expo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arojunior%2Fsample-react-native-expo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arojunior%2Fsample-react-native-expo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arojunior","download_url":"https://codeload.github.com/arojunior/sample-react-native-expo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933354,"owners_count":20857052,"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":["expo","react","react-native"],"created_at":"2024-10-11T01:00:17.647Z","updated_at":"2026-01-12T13:58:47.868Z","avatar_url":"https://github.com/arojunior.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sample React Native expo application\n\n## Goals\n\nYou were assigned to implement\nthe following flows:\n\n1. Display the list of transactions\n1. Display details of a specific transaction\n1. Change the category of a transaction\n\nThe application should use the operating system default font. The icon assets\nare on `src/icons` directory. If you're using this repo, you can directly\nimport the SVG file.\n\nYour coworkers created a mock data client to allow for the development of\nsuchs screens while they implement the real server communications. You need\nto use the mock client for fetching data so migrating in the future is easy.\n\nImport it from `src/data` if you are using this repo, or copy `lib/` directory\n(and import it) if you are going with your own setup.\n\nThe mock client exposes the following interface:\n\n```tsx\nexport default class Client {\n  fetchTransactions(): Promise\u003cTransaction[]\u003e;\n  \n  fetchUserCategories(): Promise\u003cUserCategory[]\u003e;\n  \n  fetchTransaction(id: string): Promise\u003cTransaction | undefined\u003e;\n\n  fetchUserCategory(id: string): Promise\u003cUserCategory | undefined\u003e;\n\n  updateTransactionUserCategory(transactionId: string, userCategoryId: string): Promise\u003cvoid\u003e;\n}\n\nexport interface Transaction {\n  id: string;\n  amount: number;\n  purchaseTime: string;\n  card: Card;\n  merchant: Merchant;\n  integration: Integration;\n  __typename: \"Transaction\";\n}\n\nexport interface Card {\n  id: string;\n  user: string;\n  __typename: \"Card\";\n}\n\nexport interface Merchant {\n  id: string;\n  name: \"Docusign\";\n  merchantCategory: MerchantCategory;\n  __typename: \"Merchant\";\n  website: string;\n}\n\nexport interface MerchantCategory {\n  id: string;\n  name: string;\n  __typename: \"MerchantCategory\";\n}\n\nexport interface Integration {\n  id: string;\n  name: string;\n  category: UserCategory | null;\n}\n\nexport interface UserCategory {\n  id: string;\n  name: string;\n  __typename: \"UserCategory\";\n}\n```\n\n### Milestone One\n\n- Bootstrap the React Native project in a new Git repo.\n- Fetch the list of transactions and categories from the mock data client.\n- Print the results of the data fetching using `console.log`.\n\n### Milestone Two\n\n- Create the components needed for the transactions list screen.\n- Populate the transactions list on the screen.\n\n### Milestone Three\n\n- Create the components needed for the transaction details screen.\n- Populate the transaction data on the screen.\n\n### Milestone Four\n\n- Create the components needed for the category selection screen.\n- Populate the categories data on the screen.\n\n### Milestone Five\n\n- Link the touch on a transaction to the details screen.\n\n### Milestone Six\n\n- Link the touch on the \"QuickBooks Category\" to category selection screen.\n\n### Milestone Seven\n\n- Link the touch on the category to update a transaction category.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farojunior%2Fsample-react-native-expo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farojunior%2Fsample-react-native-expo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farojunior%2Fsample-react-native-expo/lists"}