Skip to content

Repository files navigation

🛡️ WalkMe

Safety-first navigation for everyone
An Android app that helps you walk safer with real-time safety scores, hazard reporting, and emergency SOS.


📱 About

WalkMe is a personal safety navigation Android app designed to help users — especially women and solo walkers — make smarter decisions about their routes. It provides real-time area safety scores, lets users report hazards, plan safe routes, and send emergency SOS alerts to trusted contacts.


✨ Features

🗺️ Map & Safety Score

  • Real-time Google Maps integration
  • Tap any area to instantly get its Safety Score (0–100)
  • Color-coded zones: ✅ Safe · ⚠️ Moderate · 🚨 High Risk
  • Safety factors: Lighting, Crowd density, Nearby shops, Reported hazards
  • Heatmap overlay showing safe/unsafe zones
  • Time-of-day awareness (scores change between day and night)
  • Weather selector (Clear ☀️ / Rain 🌧️ / Fog 🌫️ / Storm ⛈️)

🚨 Emergency SOS

  • One-tap SOS button that triggers an alarm
  • Automatically sends your GPS location via SMS to all emergency contacts
  • Manage emergency contacts (Add / Edit / Delete)
  • Customizable SOS message

🛣️ Route Planner

  • Plan routes with safety in mind
  • View safety info for route stops

⚠️ Hazard Reporting

  • Report hazards at your current location
  • Community upvote / downvote system to confirm or dismiss reports
  • Hazards stored in Firebase Firestore in real-time

🛠️ Tech Stack

Layer Technology
Language Kotlin
UI Jetpack Compose + Material 3
Navigation Jetpack Navigation Compose
Maps Google Maps SDK + Maps Compose
Location Google Play Services Location
Backend Firebase Firestore + Firebase Auth
Architecture MVVM (ViewModel + StateFlow)
Min SDK 24 (Android 7.0)
Target SDK 36

📂 Project Structure

app/src/main/java/com/example/ananya/
├── MainActivity.kt              # Entry point + splash screen
├── data/
│   ├── model/                   # Hazard, RouteStop, SafetyInfo models
│   └── repository/              # HazardRepository, MockSafetyData
├── ui/
│   ├── components/              # EmergencyButton, HazardReportSheet, SafetyScoreCard, RouteSummaryCard
│   ├── navigation/              # App navigation graph
│   ├── screens/                 # MapScreen, EmergencyScreen, RoutePlannerScreen
│   └── theme/                   # Colors, Typography, Theme
├── util/                        # EmergencyHelper, LocationHelper, RouteOptimizer, SafetyCalculator, VoiceAlertHelper
└── viewmodel/                   # MapViewModel, RouteViewModel

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Google Maps API Key
  • Firebase project (Firestore + Authentication enabled)

Setup

  1. Clone the repo

    git clone https://github.com/Ananyaaa-K/WalkMe.git
    cd WalkMe
  2. Add your Google Maps API Key

    In local.properties:

    MAPS_API_KEY=your_api_key_here
    
  3. Add Firebase config

    Place your google-services.json inside app/

  4. Build & Run

    Open in Android Studio and run on an emulator or physical device.


📋 Permissions Required

Permission Reason
ACCESS_FINE_LOCATION Show your location on the map
ACCESS_COARSE_LOCATION Fallback location
SEND_SMS Send SOS alerts to emergency contacts

🤝 Contributing

Pull requests are welcome! For major changes, please open an issue first.


👩‍💻 Author

Ananya@Ananyaaa-K


Made with ❤️ for safer streets

About

An Android app built with Kotlin & Jetpack Compose featuring Google Maps integration and Firebase authentication — named WalkMe.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages