Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 

Repository files navigation

AssetGuard

Mobile application for planning, executing, and monitoring route-based security inspections.

Hero Image

About the Project

AssetGuard is an Android application designed for security companies that need to manage patrol routes, assign guards to inspection plans, and monitor inspection activity in real time. The project was developed for the Mobile Computing course of the Master's in Software Engineering at FEUP.

The app supports two main user roles:

  • Administrators / Supervisors: create inspection plans, define routes, assign shifts, assign guards, and monitor completed inspections.
  • Guards / Security Personnel: follow predefined patrol plans, visit checkpoints, and submit inspection feedback.

The main goal of the project was to provide a unified platform for scheduling patrol routes and managing inspection activities, improving communication between supervisors and guards.

Features

  • Create and manage inspection plans
  • Assign routes, shifts, and guards to each plan
  • Define patrol routes with multiple checkpoints
  • Allow guards to perform inspections at specific checkpoints
  • Submit inspection feedback
  • Display routes and checkpoints on an interactive map
  • Support light and dark themes synced with system settings
  • Store data locally and synchronize when connectivity is restored

Tech Stack

Mobile / Frontend

  • Kotlin
  • Jetpack Compose
  • Android Location API
  • OSMdroid

Architecture

  • MVVM
  • Repository Pattern
  • Kotlin Flows

Backend & Database

  • Firebase Authentication
  • Firebase Firestore

Local Storage

  • Firebase local Cache
  • PreferenceManager for persistent local state

Screenshots

Login / Authentication

Login Screen

Route Map

Route Map

Admin Dashboard

Admin Dashboard

How to Run the Project

Prerequisites

Before running the project, make sure you have:

  • Android Studio installed
  • JDK 17 or the Java version required by the Android Gradle Plugin
  • Android SDK installed through Android Studio
  • A configured Android Emulator or a physical Android device
  • Internet connection
  • A Firebase project configured
  • google-services.json file added to the app/ folder
  • Location services enabled on the emulator/device

Firebase Setup

To run the app with Firebase, you need to:

  1. Create a Firebase project.
  2. Add an Android app to the Firebase project.
  3. Download the google-services.json file.
  4. Place it inside:
app/google-services.json
  1. Enable Firebase Authentication.
  2. Enable Cloud Firestore.
  3. Create the required Firestore collections used by the app.

Note: The google-services.json file is not included in this repository for security reasons. To run the project, create your own Firebase project and place the configuration file inside the app/ directory.

Test Data

The application requires existing Firebase data for users, routes, shifts, plans, and checkpoints.

To test the main flows, make sure your database includes:

  • At least one admin user
  • At least one guard user
  • One or more routes
  • Checkpoints assigned to routes
  • Shifts
  • Plans assigned to guards

Run

Download the project and open it in Android Studio and then:

  • Wait for Gradle to sync.
  • Select an emulator or physical Android device.
  • Make sure location services are enabled.
  • Click Run.

About

Mobile Computing

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages