Skip to content

"WifiMapper is an Android app developed for a mobile security course, featuring a background service that scans nearby Wi-Fi networks every 10 seconds and syncs data to a Node.js backend with PostgreSQL storage. Visualize Wi-Fi locations on Google Maps and explore them via an interactive RecyclerView list."

Notifications You must be signed in to change notification settings

YosiBs/MobileSecurity-CourseProject

Repository files navigation

WifiMapper [Background Service App]

icon

GitHub Contributors Issues GitHub pull requests

pic5 Overview

WifiMapper is an Android application designed as part of a mobile security course project. It features a background service that periodically scans nearby Wi-Fi networks and sends the data to a backend server. The app visualizes this data using Google Maps and a RecyclerView list, providing an interactive way to explore Wi-Fi networks in your vicinity.

Screen Shots:

Screenshot 1 Screenshot 2

pic5 Features

  • Background Wi-Fi Scanning: A service runs in the background, scanning for nearby Wi-Fi networks every 10 seconds.
  • Data Sync: Scanned Wi-Fi data is sent to a Node.js backend and stored in a PostgreSQL database.
  • Map Visualization: The MapActivity displays Wi-Fi network locations on Google Maps, with markers for each network.
  • Network List: A RecyclerView-based activity lists all scanned Wi-Fi networks. Clicking an icon navigates to the corresponding marker on the map and highlights related scans.
  • Real-Time Updates: Integrates with the backend to fetch and display the latest Wi-Fi data.

pic5 Technologies Used

Android App

  • Language: Java/Kotlin (assumed; let me know if you used one specifically)

  • IDE: Android Studio

  • Key Libraries:

    • Retrofit + Gson Converter: For API communication and JSON parsing.
    • OkHttp Logging Interceptor: For debugging network requests.
    • Google Play Services (Location & Maps): For location services and map integration.
    • Glide: For efficient image loading (if applicable; clarify if used).
    • Lottie: For animations (if applicable; clarify if used).
    • Android RecyclerView: For displaying the Wi-Fi list.
    • Callbacks: For handling asynchronous operations and communication between components.
    • Shared Preferences: For storing lightweight app data, such as user settings or scan preferences.

    Backend

    • Language: JavaScript
    • Framework: Node.js
    • Database: PostgreSQL

    Prerequisites

    • Android Studio (with an emulator or physical device running API 21+)
    • Node.js and npm installed
    • PostgreSQL installed and running
    • Google Maps API key (for map functionality)

pic5 Installation

Android App

  1. Open the app folder in Android Studio.
  2. Add your Google Maps API key.
  3. In the app’s code (e.g., Retrofit base URL), set the endpoint to your Node.js server (e.g., http://localhost:3000 or your hosted URL).
  4. Sync the project with Gradle.
  5. Run the app on an emulator or device.

Gradle Dependencies

Add these to your app/build.gradle:

dependencies {
    // Networking
    implementation 'com.squareup.retrofit2:retrofit:<version>'
    implementation 'com.squareup.retrofit2:converter-gson:<version>'
    implementation 'com.squareup.okhttp3:logging-interceptor:<version>'

    // Google Maps & Location
    implementation 'com.google.android.gms:play-services-location:<version>'
    implementation 'com.google.android.gms:play-services-maps:<version>'

    // Glide (optional, if used)
    implementation 'com.github.bumptech.glide:glide:<version>'
    annotationProcessor 'com.github.bumptech.glide:compiler:<version>'

    // Lottie (optional, if used)
    implementation 'com.airbnb.android:lottie:<version>'
}

pic5 Usage

  1. Launch the app on your Android device.
  2. Grant necessary permissions (e.g., location and Wi-Fi access).
  3. The background service will start scanning Wi-Fi networks every 10 seconds.
  4. Use the MapActivity to view Wi-Fi locations on Google Maps.
  5. Open the ListActivity to see all scanned networks; tap an icon to jump to its map marker and view related scans.

Contributing

This is a course project, but feel free to fork it and submit pull requests with enhancements!

pic5 Authors

pic5

About

"WifiMapper is an Android app developed for a mobile security course, featuring a background service that scans nearby Wi-Fi networks every 10 seconds and syncs data to a Node.js backend with PostgreSQL storage. Visualize Wi-Fi locations on Google Maps and explore them via an interactive RecyclerView list."

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages