❯ An Android travel companion app for planning and tracking your journeys
- Kotlin
- Android SDK
- Gradle
- Jetpack Compose
- Material Design 3
- Google Maps Platform
- Google Maps Utility Library
- Room Database
- DataStore
- Hilt
- ML Kit
- RestCountries API
- OpenWeatherMap API
- Overview
- Target Audience
- Problem Statement
- Features
- Project Structure
- Architecture
- Getting Started
- Project Roadmap
- Contributing
- License
- Acknowledgments
TravelMate is a native Android application developed as part of the VA2 – Advanced Android Application Development course at MENDELU (Winter 2025/2026).
The application serves as a personal travel journal and travel companion that allows users to discover countries, track visited locations, and record personal travel experiences. Users can mark places they have visited on an interactive map, store travel notes, and view useful travel information such as country details and weather.
TravelMate leverages modern Android architecture components and technologies such as Jetpack Compose, Room, Hilt, and MVVM architecture, while integrating external APIs for country information, weather data, and map services.
TravelMate is designed for:
- Travelers and tourists
- Students studying abroad
- Digital nomads
- Anyone who wants to keep a personal travel diary and track visited locations
Travelers often rely on multiple separate apps for maps, notes, travel information, and weather forecasts.
TravelMate aims to combine these features into a single application, allowing users to:
- explore countries
- track visited locations
- store travel memories and notes
- access weather information
- visualize travel history on a map
This creates a unified tool for documenting and organizing travel experiences.
- Mark visited places directly on an interactive map
- Visualize travel history
- Save locations for future reference
- Fetches country data from RestCountries API
- Displays information such as:
- country name
- capital city
- population
- region
- flag
- Real-time weather data using OpenWeatherMap API
- Useful for planning trips and checking conditions at destinations
- Integration with Google Maps
- Mark visited locations
- Explore destinations visually
- Map utilities provided by Google Maps Utility Library
- Users can take photos of signs, landmarks, or information boards
- ML Kit text recognition extracts text from the image
- Extracted text can be saved as a travel note
- The application may automatically recognize well-known places or landmarks
- Travel notes, visited locations, and history are stored locally using Room database
- Allows the app to work even without internet connection
User settings are stored using DataStore, including:
- language
- measurement units
- map mode preferences
- Built entirely with Jetpack Compose
- Follows Material Design 3
- Responsive and modern interface
The application supports multiple languages:
- English
- Czech
- Unit tests for business logic
- Instrumented tests for UI and Android components
The project follows modern Android architecture principles:
- MVVM (Model–View–ViewModel)
- Repository pattern
- Dependency Injection with Hilt
This ensures:
- better testability
- separation of concerns
- maintainable and scalable codebase
└── TravelMate/
├── app/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/example/travelmate/
│ │ │ │ ├── ui/
│ │ │ │ ├── data/
│ │ │ │ ├── viewmodel/
│ │ │ │ └── repository/
│ │ │ ├── res/
│ │ │ └── AndroidManifest.xml
│ │ └── test/
│ └── build.gradle
├── build.gradle
├── gradle/
└── settings.gradle