A mobile app that finds bus routes between any two addresses in Hyderabad, including walking directions and multi-leg journeys with transfers.
- Address-to-Address Routing: Enter any two addresses, not just bus stations
- Multi-Modal Directions: Walking + Bus + Transfers all in one route
- Multiple Route Options: Compare different routes by time and transfers
- Current Location: Use your GPS location as starting point
- Step-by-Step Directions: Clear instructions for each segment
- Hyderabad Focused: Optimized for Hyderabad's bus network
- Node.js (v18 or higher)
- npm or yarn
- Google Maps Platform Account with:
- Directions API enabled
- Geocoding API enabled
- Places API enabled
- Maps SDK for Android enabled
- Billing enabled
- Expo Go app on your phone (for testing)
cd backend
# Install dependencies
npm install
# Configure your API key
# Open .env file and replace 'your_api_key_here' with your actual Google Maps API key
nano .env
# Start the server
npm run devThe API should now be running on http://localhost:3000
cd mobile
# Install dependencies
npm install
# Update API URL
# Open src/services/api.ts and replace the API_BASE_URL with your computer's IP
# Find your IP:
# Mac: ipconfig getifaddr en0
# Windows: ipconfig (look for IPv4)
# Example: const API_BASE_URL = 'http://192.168.1.100:3000/api';
# Start the app
npx expo start- Install Expo Go from Play Store (Android) or App Store (iOS)
- Scan the QR code shown in the terminal
- The app will load on your phone!
-
Enter Addresses:
- Type starting point in "From" field
- Or tap GPS icon to use current location
- Type destination in "To" field
-
Get Suggestions:
- As you type, you'll see address suggestions
- Tap any suggestion to select it
-
Find Routes:
- Tap "Find Routes" button
- Wait a few seconds for results
-
View Routes:
- See multiple route options sorted by duration
- Each route shows: time, distance, transfers, walking distance
- Tap any route to see step-by-step directions
-
Read Directions:
- Walking segments with instructions
- Bus numbers, stops, and number of stops
- Timing for each segment
GOOGLE_MAPS_API_KEY=your_actual_api_key_here
PORT=3000
NODE_ENV=development
CORS_ORIGIN=*// Update this line with your computer's IP address
const API_BASE_URL = 'http://192.168.1.XXX:3000/api';For maps to work on Android, add your API key to mobile/app.json:
"android": {
"config": {
"googleMaps": {
"apiKey": "YOUR_ANDROID_API_KEY_HERE"
}
}
}