YCILT (Your City Is Listening To) is an Android application developed in Kotlin with Jetpack Compose for the Mobile Application Lab course. It lets users discover live music around them on an interactive map, record and upload audio, and explore detailed music analysis.
Built with MVVM architecture, WorkManager for background tasks, Geocoder for reverse geocoding, and targeting SDK 33+ (Android 13+).
The heart of YCILT is an interactive Google Maps view. Each marker represents a public audio recording uploaded by users in the area. Markers refresh every 5 seconds to keep the map up to date. Tap any marker to see detailed info about that recording.

Capture the sounds around you with the built-in recorder. Once saved, the audio is queued for upload via a background Worker that waits for a Wi-Fi connection — so you never waste mobile data. A notification keeps you informed about the upload status.

Access your personal library from the drawer. Each recording shows its filename, date, and duration. Tap one to play it back, see where it was recorded (via reverse geocoding), toggle its privacy between public and private, or delete it.


The backend analyzes every uploaded recording, extracting rich metadata: BPM, danceability, loudness, plus the top 5 most likely mood, genre, and instruments. This turns a simple audio file into a detailed music fingerprint.

Users sign up and log in with a clean, minimal interface. The auth token is persisted in SharedPreferences so you stay logged in across sessions. A side drawer provides quick access to your uploads, logout, and account deletion.

