Origin Mobile Take Home Assignment

Introduction

This app was built to demonstrate my skills related with the mobile take home assignment.

Technologies utilized

  • Expo
  • TypeScript
  • Axios
  • Firebase
  • Tamagui
  • Google fonts
  • FlashList
  • Expo image picker
  • Expo location
  • React Hook Form + Yup
  • Zustand

Final images

Login options screen Login options screen

Sign up screen Sign up screen

Sign in screen Sign in screen

Home screen Home screen

Filter screen Filter screen

Transaction details screen Transaction details screen

Setup

  1. Install NVM or Node.js LTS release - v18
  2. Git
  3. Yarn
  4. Watchman
  5. Expo CLI
  6. Android Studio - recommended version Giraffe
  7. Graddle version Graddle version
  8. XCode - recommended version 15.1

Recommended tools

Visual Studio Editor

Developing

If you are new to React Native, this is a helpful introduction: https://reactnative.dev/docs/getting-started

Run project

  1. Create a .env file with the property EXPO_PUBLIC_GOOGLE_API_KEY= and the respective value of Google API Key

  2. Clone the project and access the project folder

  3. Install the dependencies by running:

     yarn
    
     cd ios && npx pod-install && cd ..
  4. Set the environment variable value within android and ios files by running:

     npx expo prebuild
  5. Install the build within each device emulator

    yarn android
    yarn ios
    

Project aspects

Folder architecture


├── assets              # Assets folder for app icon and splashscreen
├── src
│   ├── @types          # Types declarations to images .png.d.ts or .svg.d.ts
│   ├── assets          # Assets folder for icons, illustrations
│   ├── components      # Components reutilized
│   ├── firebase        # Has subfolders regarding with functionality like, auth, firestore and storage
│   ├── helpers         # Methods to help specific screens
│   ├── routes          # Navigation configuration
│   ├── screens         # Screens (can have or not a folder with specific components)
│   ├── services        # API methods
│   ├── stores          # Zustand stores
│   ├── theme           # Files to configure Tamagui tokens and fonts
│   ├── utils           # Utils methods
│
│   tamagui.config.ts   # Set up of tamagui

Figma

Origin home assignment figma project.

Whimsical

Ideas, workflows and basic logic about the application.

Github project

Kanban project with tasks and subtasks.