/TrekLite

Group Trekking App built with React-Native

Primary LanguageTypeScript

TrekLite

Group Trekkers App. It's basically an App that users can use to organize group trekking trips.

Features-

  • Authentication: Users can sign in with Google.
  • Users can select destination locations to start trips
  • Users can see other online users that are actively looking for people to trek with in real-time.
  • Users can send trek requests to other active users.
  • When a trek request is sent to a user, the user sees an alert box to either accept or reject the request. If the user accepts it, the user joins the host on that trekking trip. If the user rejects it, the host gets a notification that the request was rejected.
  • Live Tracking- Users' locations are live-tracked in real-time.
  • Users can end trips when they get to their destination.
  • Users can continue trips if they close the app and open it again.

Live app is here : https://expo.io/@leksyib/treklite
Video Demo : https://www.youtube.com/watch?v=aVYqS45Lg4A
Backend : https://github.com/codinger41/treklite-backend

Screenshots


js-standard-style

⬆️ How to Setup

Step 1: git clone this repo:

Step 2: cd into the cloned repo:

Step 3: Install the Application with yarn or npm i

Step 4: Get a Google Places API key and put it in the src/screens/LocationSelect/index.tsx file on line 45.

Step 5: Follow These steps to setup your Google authentication client.

Step 6: Insert the neccessary client IDs in /src/screens/Auth/index.tsx, from line 54.

Step 7: Create a Pubnub account and nsert the neccessary keys in /src/utils/pubnub.ts.

▶️ How to Run App

  1. cd to the repo
  2. Run Build for either OS
  • for iOS
    • run expo start --ios
  • for Android
    • run expo start --android

🚫 Standard Compliant

js-standard-style This project adheres to Standard. Our CI enforces this, so we suggest you enable linting to keep your project compliant during development.

To Lint on Commit

This is implemented using husky. There is no additional setup needed.

Bypass Lint

If you have to bypass lint for a special commit that you will come back and clean (pushing something to a branch etc.) then you can bypass git hooks with adding --no-verify to your commit command.

Understanding Linting Errors

The linting rules are from JS prettier-standard. Regular JS errors can be found with descriptions here, while React errors and descriptions can be found here.

Remaining Features

  • When a user has accepted a request to trek with another user, route the user to the host's location first then initialize the trip on the other users' device.