AI-Assisted Inter-Urban Mobility and Urban Tourism Information System (AI-IMUTIS) Mobile App for Cameroon .
# AI-IMUTIS - Ride Tracking & Tourism App
A **TypeScript** React Native mobile application built with Expo for ride tracking and tourism, featuring Firebase authentication with multiple sign-in methods.
## Features
- **Splash Screen**: Branded app intro with AI-IMUTIS logo
- **Onboarding**: Interactive carousel showcasing app features
- **Multi-Method Authentication**:
- Email/Password sign-up and sign-in
- Phone number verification with OTP
- Google OAuth sign-in
- **Dashboard**: User home screen with quick actions and stats
- **Firebase Integration**: Secure authentication and data persistence
- **TypeScript**: Full type safety and improved developer experience
## Tech Stack
- **React Native** with **Expo SDK 54**
- **TypeScript**: Fully typed codebase for type safety
- **React Navigation**: Native Stack Navigator with type-safe routing
- **Firebase**: Authentication (Email, Phone, Google)
- **expo-linear-gradient**: Beautiful gradient UI
- **expo-auth-session**: OAuth flows
- **AsyncStorage**: Persistent auth state
## Prerequisites
Before you begin, ensure you have:
- Node.js (v18 or higher)
- npm or yarn
- Expo Go app on your mobile device (for testing)
- Firebase project with Authentication enabled
## Setup Instructions
### 1. Clone and Install Dependencies
```bash
cd mobile
npm install
```
### 2. Configure Firebase
1. Go to Firebase Console
2. Create a new project or select an existing one
3. Enable Authentication:
- Go to **Authentication > Sign-in method**
- Enable **Email/Password**, **Phone**, and **Google** providers
4. Get your Firebase configuration:
- Go to **Project Settings > General**
- Scroll to "Your apps" and click the web icon ` `
- Copy the Firebase SDK configuration
### 3. Set Up Environment Variables
1. Copy `.env.sample` to `.env`:
```bash
cp .env.sample .env
```
2. Edit `.env` and add your Firebase credentials:
```env
FIREBASE_API_KEY=your_firebase_api_key_here
FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
FIREBASE_PR …