Skip to content

Latest commit

Β 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌍 RoamIndia – Your Ultimate Travel Companion for India

RoamIndia Logo

Kotlin
Jetpack Compose


πŸ“± Overview

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.


✨ Features

🌦️ Real-Time Weather Forecasting

  • 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

🏞️ Explore Indian States & Destinations

  • 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

🎯 Smart Recommendation System

  • 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

πŸš€ Future Enhancements

  • 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

πŸš€ Onboarding Experience

  • Elegant, Lottie-powered onboarding screen
  • ViewModel-backed state management
  • Highlights app features on first launch

πŸ“ Location Detection

  • Fetches real-time latitude and longitude
  • Ready for future integrations like local suggestions or maps

πŸ” Smart Search Interface

  • Responsive and beautiful search screen
  • Type any city or place to get relevant real-time results
  • Efficient filtering using Compose state handling

πŸ› οΈ Tech Stack

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)

🧩 Project Structure

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

πŸ“Š Recommendation System Details

The recommendation system helps users discover the perfect destinations across India with:

Key Features

  • 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

Data Sources

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)

Implementation

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

Demo

Check out the recommendation system prototype: https://ashwanil23.pythonanywhere.com/


πŸ”§ Installation Guide

πŸ“‹ Prerequisites

  • Android Studio Hedgehog or later
  • Kotlin 1.9+
  • Android SDK 33+
  • Minimum SDK: 23

πŸš€ Steps

  1. Clone the repository
git clone https://github.com/yourusername/RoamIndia.git
  1. Open in Android Studio

  2. Create a file named apikey.properties in the root of the project:

WEATHER_API_KEY="your-weatherapi-key-here"
  1. Build and run the project on an emulator or device:
./gradlew build

☁️ Weather API Configuration

RoamIndia uses WeatherAPI.com to fetch real-time weather data.

Setup:

  1. Register at https://www.weatherapi.com
  2. Get your API key from the dashboard
  3. Add it to apikey.properties:
WEATHER_API_KEY="your-key"
  1. The app automatically injects this key via local.properties setup in Gradle.

🀝 Contributing

We're open to collaboration! RoamIndia is perfect for learning modern Android development or adding exciting features.

πŸ§‘β€πŸ’» How to Contribute

  1. Fork the repo
  2. Create a new branch:
git checkout -b feature/amazing-idea
  1. Make your changes and commit:
git commit -m "Added awesome feature"
  1. Push and create a Pull Request

πŸ“Œ Contribution Checklist

  • Follow Kotlin best practices
  • Keep UI consistent and reusable
  • Add helpful comments and KDocs
  • Test thoroughly before pushing

🐞 Troubleshooting

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

πŸ“œ License

NIL


πŸ™Œ Acknowledgements


🧭 RoamIndia is a journey through incredible India β€” one click at a time.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages