# π Yoon - Carpooling App for Senegal
**Version**: 1.0.0 (Beta)
**Platform**: React Native (Expo)
**Target**: iOS & Android
---
## π± About Yoon
Yoon is a modern carpooling application designed specifically for Senegal, connecting drivers and passengers for safe, affordable, and eco-friendly travel across the country.
### Key Features
β
**Smart Search** - Find trips with automatic route matching (15km tolerance)
β
**Automatic Pricing** - Fair, transparent pricing based on real road distances
β
**Real-time Notifications** - Stay updated on bookings and trip changes
β
**Secure Authentication** - PIN and biometric authentication
β
**Trip Management** - Easy booking and trip publishing
β
**Location Services** - GPS integration with HERE Maps
---
## π Quick Start
### Prerequisites
- Node.js 18+ and npm
- Expo CLI
- Firebase project with Firestore
- HERE Maps API key
### Installation
```bash
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your API keys
# Start development server
npx expo start
```
### Environment Variables
Create a `.env` file with:
```
EXPO_PUBLIC_HERE_MAPS_API_KEY=your_here_maps_api_key
```
---
## π¦ Project Structure
```
yoon/
βββ app/ # Expo Router screens
β βββ (tabs)/ # Tab navigation screens
β βββ auth.tsx # Authentication screen
β βββ pin-entry.tsx # PIN entry screen
β βββ pin-setup.tsx # PIN setup screen
β βββ trip-details.tsx # Trip details screen
βββ components/ # Reusable components
βββ config/ # Configuration files
β βββ firebase.ts # Firebase setup
β βββ notifications.ts # Notification config
βββ services/ # Business logic
β βββ authService.ts # Authentication
β βββ hereMapsService.ts # HERE Maps integration
β βββ notificationService.ts # Notification management
βββ types/ # TypeScript definitions
βββ utils/ # Helper funct β¦