RoamIndia is a sleek, feature-packed Android app crafted to elevate your travel experience across India. Whether you're planning your next adventure or exploring from your couch, RoamIndia provides real-time weather, curated state and place information, beautiful visuals, personalized recommendations, and a seamless user experience powered by Jetpack Compose and modern Android tech.
- Live weather updates using WeatherAPI.com
- Temperature, humidity, wind speed, visibility, and air quality index
- Dynamic weather icons with day/night indicators
- Smooth and intuitive layout with visual cues
- Vibrant cards for all Indian states
- Handpicked attractions and cultural highlights
- Place-specific details with images, names, and descriptions
- Interactive "Visit" action for planning or bookmarking
- Personalized destination suggestions based on user preferences
- Top 25 Places: Curated list of must-visit attractions with rating, location, and images
- Complete Destination Catalog: Browse all attractions with comprehensive filtering options
- Detailed Place Profiles: Rich information cards containing:
- Visit duration and best time recommendations
- Entry fees and weekly closure information
- Historical significance and establishment dates
- Camera policies and nearby airport information
- Visitor ratings and review counts
- Collaborative Filtering: Personalized recommendations based on individual user ratings and behavior patterns
- Content-Based Filtering: Tailored suggestions matching user preferences for specific location types, regions, activities, or themes
- Hybrid Recommendation Engine: Combining multiple recommendation approaches for optimal discovery experiences
- User Preference Learning: System that adapts to user interactions and refines recommendations over time
- Elegant, Lottie-powered onboarding screen
- ViewModel-backed state management
- Highlights app features on first launch
- Fetches real-time latitude and longitude
- Ready for future integrations like local suggestions or maps
- Responsive and beautiful search screen
- Type any city or place to get relevant real-time results
- Efficient filtering using Compose state handling
| Layer | Technologies Used |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose with Material 3 |
| Architecture | MVVM (Model-View-ViewModel) |
| Networking | Retrofit + Kotlin Coroutines |
| Animations | Lottie |
| State Mgmt. | LiveData + ViewModel |
| Data Storage | Pickle (for recommendation system data) |
| Web Interface | Flask (for recommendation system prototype) |
| Build System | Gradle (Version Catalog + Modular Setup) |
RoamIndia/
βββ app/
βββ MainActivity.kt # App launch & navigation host
βββ data/
β βββ model/ # Data classes for states, places, weather
β βββ repository/ # Repository for data sources
β βββ network/ # Retrofit APIs and response handlers
βββ ui/
β βββ screens/
β β βββ onboarding/ # Lottie animation + intro slides
β β βββ weather/ # Weather screen
β β βββ states/ # State list and detail
β β βββ places/ # Place detail cards
β β βββ recommendations/ # Recommendation system UI
β βββ components/ # Reusable Composables
β βββ theme/ # Theme, colors, typography
βββ viewmodel/ # ViewModels for each feature
βββ utils/ # Helper functions (e.g., location)
βββ recommendation_system/ # Flask-based prototype
βββ app.py # Flask app for recommendation system
βββ templates/ # HTML templates
β βββ index.html # Top 25 places display
β βββ allPlaces.html # Complete places catalog
β βββ place_details.html # Detailed place information
βββ data/ # Data files for recommendations
βββ popular.pkl # Top-rated destinations
βββ all.pkl # Complete attraction database
The recommendation system helps users discover the perfect destinations across India with:
- Top 25 Places: Curated list of must-visit attractions with rating, location, and images
- Complete Destination Catalog: Browse all attractions with comprehensive filtering options
- Detailed Place Profiles: Rich information cards containing:
- Visit duration and best time recommendations
- Entry fees and weekly closure information
- Historical significance and establishment dates
- Camera policies and nearby airport information
- Visitor ratings and review counts
The recommendation system leverages rich datasets with multiple attributes for each destination:
- Geographic data (Zone, State, City)
- Type classification (Temple, Beach, Fort, etc.)
- Historical information (Establishment year)
- Practical visitor information (Visiting hours, fees, best times)
- Travel planning data (Nearby airports, photography policies)
Currently prototyped as a Flask web application, the recommendation system will be fully integrated into the RoamIndia Android app with:
- Native Jetpack Compose UI matching the app's design language
- Offline-first data availability for key destinations
- Personalized recommendations based on user preferences and behavior
Check out the recommendation system prototype: https://ashwanil23.pythonanywhere.com/
- Android Studio Hedgehog or later
- Kotlin 1.9+
- Android SDK 33+
- Minimum SDK: 23
- Clone the repository
git clone https://github.com/yourusername/RoamIndia.git-
Open in Android Studio
-
Create a file named
apikey.propertiesin the root of the project:
WEATHER_API_KEY="your-weatherapi-key-here"- Build and run the project on an emulator or device:
./gradlew buildRoamIndia uses WeatherAPI.com to fetch real-time weather data.
- Register at https://www.weatherapi.com
- Get your API key from the dashboard
- Add it to
apikey.properties:
WEATHER_API_KEY="your-key"- The app automatically injects this key via
local.propertiessetup in Gradle.
We're open to collaboration! RoamIndia is perfect for learning modern Android development or adding exciting features.
- Fork the repo
- Create a new branch:
git checkout -b feature/amazing-idea- Make your changes and commit:
git commit -m "Added awesome feature"- Push and create a Pull Request
- Follow Kotlin best practices
- Keep UI consistent and reusable
- Add helpful comments and KDocs
- Test thoroughly before pushing
| Problem | Solution |
|---|---|
| Weather not loading | Double-check API key and internet connection |
| App crashes on launch | Ensure all Gradle syncs are successful and dependencies up-to-date |
| UI rendering issues | Update to latest stable Jetpack Compose and Android Studio |
| Recommendation data not appearing | Verify pickle files are correctly placed in assets folder |
NIL
- Weather API: WeatherAPI.com
- Icons: Material Icons, Flaticon
- Images: Unsplash, Pexels
- Data Set: Kaggle, Author
- Jetpack Compose Team for making UI fun again!
π§ RoamIndia is a journey through incredible India β one click at a time.