Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rasd 🌤️ | Smart Weather Forecast

Rasd is a robust Android application designed to provide accurate, real-time weather forecasts with an intuitive user experience. It empowers users to explore detailed weather information for any location globally and plan their activities accordingly.

Built with a focus on Reactive Programming and Clean Architecture principles (MVVM), Rasd ensures a smooth user experience with offline access to cached weather data.


📥 Download App

You can download the latest version of the Rasd APK from the link below:

Download Rasd APK


📸 App Screenshots

Splash Screen Home Dashboard Settings
Splash Home Settings
Search & Location Favorites Weather Alerts
Map Favorites Alerts

✨ Key Features

  • 🌍 Global Weather Data: Access real-time weather information from anywhere in the world via OpenWeatherMap API.
  • 📍 Smart Location Detection: GPS-based automatic location detection or manual location selection through interactive maps.
  • 📅 Extended Forecasts: View hourly forecasts for today and 5-day predictions with detailed weather metrics.
  • ⭐ Favorite Locations: Save multiple locations for quick access and compare weather across different cities.
  • 🔔 Weather Alerts: Set custom weather alerts with notification or alarm options to stay informed.
  • ⚙️ Full Customization: Choose temperature units (Kelvin, Celsius, Fahrenheit), wind speed units, and language preference.
  • 🔐 Cloud Sync: Synchronized data across devices using Firebase authentication.
  • 📶 Offline Access: Full access to cached weather data and saved favorites without internet connectivity.
  • 🎨 Modern UI: Material Design 3 components with smooth animations and intuitive navigation.

🛠 Tech Stack & Architecture

Architecture

  • MVVM (Model-View-ViewModel): Clean separation of concerns for maintainability and testability.
  • Repository Pattern: Centralized data management between local and remote sources.

Libraries & Tools


🏗 Project Structure

com.example.rasd
├── ui
│   ├── home           # Dashboard & current weather display
│   ├── settings       # Location & preference configuration
│   ├── alerts         # Weather alerts management
│   ├── favorites      # Saved locations list
│   └── MainActivity   # Navigation & main activity
├── data
│   ├── local          # Room database & DAOs
│   ├── remote         # Retrofit API service
│   └── repository     # Data abstraction layer
├── utils              # Helpers & extensions
├── services           # Background services & workers


🚀 Getting Started

Prerequisites

  • Android Studio 2022.1+
  • Android SDK 13 (API 33)+
  • OpenWeatherMap API Key

Installation

  1. Clone the repository:

    git clone https://github.com/MahmoudRafaat/Weather-Forecast-Application.git
    cd Weather-Forecast-Application
  2. Get your API Key:

  3. Add API Key:

    • Create local.properties file in project root
    • Add: OPENWEATHER_API_KEY=your_api_key_here
  4. Build & Run:

    ./gradlew build
    ./gradlew installDebug

📖 How to Use

  • Home Screen: View current weather and today's forecast at a glance.
  • Settings: Configure location preferences, units, and language.
  • Favorites: Add and manage multiple favorite locations.
  • Alerts: Create custom weather alerts with your preferred notification style.
  • Maps: Interactive location selection with search functionality.

🧪 Testing

USED junit4 for tesing

# Unit Tests
./gradlew test

# Instrumented Tests
./gradlew connectedAndroidTest

Developed with ❤️ by Mahmoud Rafaat

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages