Course Project for Mobile Systems & Networks at HTW Berlin.
![shotspots-screenshots](https://private-user-images.githubusercontent.com/37245841/280813058-671a7b68-56fa-4ea7-815b-67d18cd32f00.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzOTIyMzQsIm5iZiI6MTcyNDM5MTkzNCwicGF0aCI6Ii8zNzI0NTg0MS8yODA4MTMwNTgtNjcxYTdiNjgtNTZmYS00ZWE3LTgxNWItNjdkMThjZDMyZjAwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIzVDA1NDUzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUxZTc2ZGY2NTg1NDYyN2QwNzM5MDkxNThlN2IzMTRjZWQ3ZGIwN2VkN2Y3OTgyYjE5Y2QzMzA5YWQyMDQ1MjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3CgSWXRURwKQhPXL1hrzTIYzf2aToBDhHZsR-3a_-KE)
You have to create a resources file that contains the api key for mapbox under res/values/api_keys.xml
:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="MAPBOX_API_TOKEN">YOUR_API_KEY</string>
</resources>
ShotSpots is an Android application that allows users to read metadata from uploaded image files:
- Images can be loaded into the application via Android's local FileSystem
- EXIF data is retrieved from all valid image files
- During runtime, the dataset for each image is saved to an in-memory database
- The user can persist this database to the local filesystem by creating a JSON dump
- Vice versa, existing JSON dumps can be used to populate the in-memory database
- There's a screen sporting map, showing each images shooting location extracted from the EXIF data
- There's a upload screen that allows you to import photos to be analyzed
- Exceptions are propagated as Toast Messages
- OSMdroid by OpenStreetMaps for showing the map and handling coordinates
- metadata-extractor by Drew Noakes for extracting EXIF data from images
- Gson by Google for (de)-serializing POJO to JSON and vice versa
- JUnit for testing everything that is not UI-specific