Skip to content

SehrishHussain/mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gilgit Baltistan Travel Companion

Project Objective

This application is designed to enhance travel safety and accessibility for tourists exploring the rugged, low-connectivity mountain regions of Northern areas. The app provides essential itinerary planning and real-time location tracking capabilities to ensure secure navigation in remote environments with limited network coverage.

React Native Expo Authentication Location

Features

Authentication

  • Email/Password Authentication with Redux AuthSlice
  • Google OAuth Integration for seamless login
  • Secure Session Management with automatic token refresh
  • User Profile Management with avatar support (in progress)

Itinerary Management

  • ** Itinerary Generation** for Gilgit Baltistan regions
  • AI-Powered cutom Itinerary Generation including weather travel alerts from NDMA and (in progress)
  • Offline Itinerary Access with local storage
  • Real-time Itinerary Updates across devices (in progress)

Location Services

  • Live GPS Tracking with Expo Location API
  • Background Location Updates for continuous tracking (in progress)
  • Route Optimization using Mapbox integration (todo)

User Experience

  • Dark/Light Theme support with context-based theming (todo)
  • Multi-language Support (English/Urdu) (todo)
  • Smooth Animations with React Native Reanimated
  • Responsive Design for all screen sizes

Tech Stack

Frontend

  • React Native (0.72.6) with Expo (49.0.15)
  • TypeScript for type safety
  • React Navigation
  • React Native Reanimated for smooth animations
  • React Hook Form

Backend & Services

  • Auth Service with email/password for authentication
    • Google auth for authentication
  • Mapbox SDK for maps and navigation
  • Expo Location for GPS services

State Management

  • Redux Toolkit for global state
  • AsyncStorage for persistent data
  • React Query for server state management

Installation & Setup

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Expo CLI
  • iOS Simulator (Xcode) or Android Studio

Quick Start

  1. Clone the repository
git clone https://github.com/SehrishHussain/mobile.git
cd mobile
Install dependencies

bash
npm install
# or
yarn install
Configure environment variables

Start development server

bash
npx expo start
# or
npm start

Directory Overview

  • /api - API configuration and authentication services
  • /components - Reusable UI components and styling
  • /screens - Application screens organized by feature
  • /hooks - Custom React hooks for state management
  • /redux - State management with Redux/Context API
  • /services - Core application services
  • /utils - Utility functions and helpers

🔧 Key Implementation Details

Authentication Flow

// Simplified auth flow
const { user, login, logout, register } = useAuth();

Location Tracking

// Real-time location updates
useLocationTracking((location) => {
  updateUserLocation(user.uid, location);
  checkProximityToPointsOfInterest(location);
});

Itinerary Generation

// AI-powered itinerary creation
generateItinerary(preferences: UserPreferences): Promise<Itinerary> {
  // Integrates with AI model for personalized recommendations
}

Building for Production

Android APK

expo build:android --type apk
iOS Build

expo build:ios
EAS Build (Recommended)

npm install -g @expo/eas-cli
eas build --platform android
eas build --platform ios

API Integrations

Custom Backend API – Handles user authentication and token management

Mapbox SDK – Maps, navigation, and geocoding

Expo Location – Native GPS functionality

Expo SecureStore – Secure credential storage

Security Features

JWT Token Authentication

Input Sanitization and Validation

HTTPS Encryption for all API calls

Contributing

We welcome contributions! Please follow these steps:

Fork the repository

Create your feature branch: git checkout -b feature/amazing-feature

Commit your changes: git commit -m 'Add some amazing feature

Push to the branch: git push origin feature/amazing-feature

Open a pull request

📄 License

This project is licensed under the MIT License – see the LICENSE file for details.

Authors

Sehrish Hussain

Note: This README reflects the current state of the repository. For the most up-to-date setup instructions, please refer to the latest commits and documentation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published