Mobile application for planning, executing, and monitoring route-based security inspections.
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.
- 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
- Kotlin
- Jetpack Compose
- Android Location API
- OSMdroid
- MVVM
- Repository Pattern
- Kotlin Flows
- Firebase Authentication
- Firebase Firestore
- Firebase local Cache
- PreferenceManager for persistent local state
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.jsonfile added to theapp/folder- Location services enabled on the emulator/device
To run the app with Firebase, you need to:
- Create a Firebase project.
- Add an Android app to the Firebase project.
- Download the
google-services.jsonfile. - Place it inside:
app/google-services.json
- Enable Firebase Authentication.
- Enable Cloud Firestore.
- Create the required Firestore collections used by the app.
Note: The
google-services.jsonfile is not included in this repository for security reasons. To run the project, create your own Firebase project and place the configuration file inside theapp/directory.
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
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.



