// © 2026 Dripsy Drown Productions Film and Entertainment LLC. All Rights Reserved. // Proprietary and Confidential. import CoreLocation import UserNotifications class BeaconLocationManager: NSObject, CLLocationManagerDelegate { static let shared = BeaconLocationManager() private let locationManager = CLLocationManager() private let deedZones: [String: (lat: Double, lng: Double, radius: Double)] = [ "Compton": (33.8958, -118.2250, 3500), "Azusa": (34.1300, -117.9100, 3000), "EastLA": (34.0300, -118.1700, 2800), "Inglewood": (33.9600, -118.3500, 3200) ] private override init() { super.init() locationManager.delegate = self locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation locationManager.allowsBackgroundLocationUpdates = true locationManager.pausesLocationUpdatesAutomatically = false locationManager.activityType = .fitness } func requestPermissions() { locationManager.requestAlwaysAuthorization() } func startBackgroundMonitoring() { // Background location updates locationManager.startUpdatingLocation() // Geofencing for deed zones for (zoneName, zone) in deedZones { let region = CLCircularRegion( center: CLLocationCoordinate2D(latitude: zone.lat, longitude: zone.lng), radius: zone.radius, identifier: zoneName ) region.notifyOnEntry = true region.notifyOnExit = true locationManager.startMonitoring(for: region) } print("✅ Beacon background location + geofencing started") } // MARK: - CLLocationManagerDelegate func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { guard let location = locations.last else { return } // Optional: Log significant location changes for analytics print("📍 Background location update: \(location.coordinate.latitude), \(location.coordinate.longitude)") // You can trigger silent AO scoring or zone checks here if needed } func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) { guard let circularRegion = region as? CLCircularRegion else { return } let zoneName = circularRegion.identifier print("✅ Entered Deed Zone: \(zoneName)") sendLocalNotification( title: "You're in \(zoneName) Deed Zone!", body: "Do a good deed now and earn bonus rewards." ) } func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) { print("Left zone: \(region.identifier)") } private func sendLocalNotification(title: String, body: String) { let content = UNMutableNotificationContent() content.title = title content.body = body content.sound = .default let request = UNNotificationRequest( identifier: UUID().uuidString, content: content, trigger: nil ) UNUserNotificationCenter.current().add(request) } }NSLocationAlwaysAndWhenInUseUsageDescription Beacon needs background location to detect deed zones and reward you for helping your community. UIBackgroundModes location func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { BeaconLocationManager.shared.requestPermissions() BeaconLocationManager.shared.startBackgroundMonitoring() return true }
BEACON • Get Paid for Doing Good
© 2026 Dripsy Drown Productions Film and Entertainment LLC. All Rights Reserved.
Beacon Opportunity Engine™ and Parasol by DDE™ are trademarks of Dripsy Drown Productions Film and Entertainment LLC.
This software, platform, code, designs, and all related intellectual property are proprietary and confidential.
Unauthorized use, copying, distribution, or reverse engineering is strictly prohibited and will be pursued to the fullest extent of the law.

BEACON

Get Paid for Doing Good in Your Hood

HOW IT WORKS (3 STEPS)

🏙️

1. Do Good

Help your hood — clean up, mentor, feed people, paint murals.

📸

2. Upload Proof

Quick photo or video with location. Takes 20 seconds.

💰

3. Get Paid

AO scores it. Real money hits your wallet.

REAL REVENUE. REAL IMPACT.

$1.8B – $2.8B

Projected by Year 3

10% of all revenue goes directly back into the hood for housing, jobs, and opportunities.