Privacy Policy — Bijli Pulse (বিজলী পালস)
1) Who we are
Bijli Pulse (বিজলী পালস) is provided by Saifullah ("we", "us", "our"). Our website is: https://saifullah.ai.
Bijli Pulse is a community-powered load shedding tracker for Bangladesh. It lets users report their local power status (ON or OFF), see aggregated community reports for their area, and view outage predictions — all stored and processed with privacy in mind.
2) What this policy covers
This Privacy Policy explains what information we collect or process, how we use it, and your choices when you use Bijli Pulse (the "App") on Android.
3) Information we collect
Current app data behaviour in this version:
- No account required: Bijli Pulse does not require you to create an account, sign in, or provide any personal information such as your name, email address, or phone number.
- Power status reports: When you submit a report (Power ON or Power OFF), the App sends the following to the server: your selected area code (Division / District / Upazila identifier), the power state (on or off), a timestamp, your app version number, your device's UTC offset in minutes, and a one-way hashed device identifier. The device hash is a non-reversible fingerprint used only to prevent duplicate reports — it cannot be used to identify you personally. Reports are anonymous.
-
Approximate location (optional, ephemeral): If you tap "Detect my location"
during area setup, the App requests your device's approximate location
(
ACCESS_COARSE_LOCATION) to automatically suggest your division, district, and upazila. Your coordinates are passed to Android's built-in Geocoder service to obtain a place name, then immediately discarded — they are never stored on our server or on your device. This feature is entirely optional; you can select your area manually without granting location permission. - Local app preferences: Your selected area, language preference (Bangla or English), notification settings, and onboarding state are stored locally on your device using Android DataStore. This data is never uploaded to any server.
- Local database: The App stores area data, community reports, area status summaries, outage session history, and outage probability patterns in an on-device Room database. This data is read-first from local storage, making the App work offline.
- Battery level (local only): The App reads your device's battery level to determine when to send a "charging reminder" notification after power returns. This information is processed entirely on your device and is never transmitted to our server.
- Network state: The App checks whether you have an active internet connection before attempting to sync reports. No network usage data is recorded or stored.
We do not collect payment information. The App is free with no in-app purchases.
4) How we use information
- Aggregate anonymous power status reports to produce a community confidence score for each area.
- Generate outage probability predictions (7-day heatmap and hourly chart) from historical report patterns.
- Store your area preferences and settings locally so the App remembers your setup between sessions.
- Send outage alert and charging-reminder notifications based on local predictions and local battery state.
- Sync pending reports to the server via WorkManager when an internet connection is available.
5) Sharing and disclosure
We do not sell your personal information.
Third-party SDK and service providers in the current codebase:
- No third-party analytics SDK integrated.
- No ad network SDK integrated.
- No authentication or payment provider SDK integrated.
- Firebase Firestore (Google LLC): Anonymous power reports are uploaded to Cloud Firestore and a Cloud Function aggregates them into community status scores per area. No personal data is stored in Firestore — only area code, power state, timestamp, app version, UTC offset, and a non-reversible device hash. Firebase's privacy policy applies: https://firebase.google.com/support/privacy.
- Firebase Crashlytics (Google LLC): If the App crashes, Crashlytics automatically sends a crash report containing device model, OS version, app version, and a stack trace. No personal data or location is included in crash reports. https://firebase.google.com/support/privacy.
- Android Geocoder (Google): When you use "Detect my location", Android's built-in Geocoder service converts your approximate coordinates to a place name. This call is made by the Android system, not by our servers. Google's privacy policy applies: https://policies.google.com/privacy.
We may disclose information if required by applicable law or to protect the rights, safety, and security of users or the public.
6) Permissions used and why
- INTERNET — used to sync area reports from your device to the server and to receive updated outage predictions.
- ACCESS_NETWORK_STATE — used to check whether an internet connection is available before attempting to sync, avoiding unnecessary retry loops.
- POST_NOTIFICATIONS — required on Android 13 (API 33) and above to send outage alerts and charging reminders. This permission is optional; denying it does not affect core app functionality.
- SCHEDULE_EXACT_ALARM — used to schedule your predicted outage alert to fire at the correct time (15 minutes before the predicted cut), not at an approximated time.
- WAKE_LOCK — used by WorkManager to keep the processor briefly awake during a report sync. Released immediately after the sync completes.
- BATTERY_STATS — used locally to read the device battery level when deciding whether to send a charging reminder. This data is processed on-device and never transmitted.
- ACCESS_COARSE_LOCATION — requested only when you tap "Detect my location" during area setup. Used once to suggest your local area via Android's Geocoder. Your coordinates are never stored or transmitted to our servers. This permission is entirely optional — denying it does not affect any core functionality.
No camera, microphone, or precise location permission is requested or used.
7) Data retention
App data in this version is stored primarily on your device. You can remove local data at any time by clearing app storage in Android Settings → Apps → Bijli Pulse → Storage → Clear Data, or by uninstalling the App.
Anonymous report data submitted to the server (area code + power state + timestamp) is retained to provide and improve community predictions. Because reports carry no personal identifier, they cannot be individually identified or deleted on request.
If you contact us for support, we may retain support communications for operational purposes.
8) Your choices and controls
- Permissions: you can allow or deny any permission in Android Settings → Apps → Bijli Pulse → Permissions at any time.
- Notifications: you can disable all notifications from within the App (Settings screen) or from Android system notification settings.
- Local data deletion: clear app data in device settings or uninstall the App to remove all locally stored preferences and cached data.
- Support requests: contact us via the details below for any questions or requests.
9) Security
We use reasonable technical and organisational safeguards to protect app data. Reports are transmitted over HTTPS when syncing. No system is completely secure, but we work to protect the information handled by the App.
10) Children's privacy
Bijli Pulse is not directed to children under 13 (or the equivalent minimum age in your jurisdiction), and we do not knowingly collect personal information from children.
11) International transfers
If you access the App from outside the country where our server infrastructure is located, anonymous report data may be processed across borders. We apply reasonable safeguards as required by applicable law.
12) Changes to this policy
We may update this Privacy Policy from time to time, particularly when Firebase or other services are activated. We will post the updated version and revise the effective date shown above. The latest version is always available at: https://privacy.saifullah.ai/BijliPulse.
13) Contact
If you have questions or requests about this policy, contact: Saifullah
Email: www.saifullah.ai@gmail.com
Phone: +8801711134346
Website: https://saifullah.ai
Location: Dhaka, Bangladesh