Last updated: 31 August 2026 · Package:
com.ibrahimtxy.seatalert · Developer: ibrahimtxy
Course Seat Alert checks section seat counts on your school's public Banner class search at an interval you choose, and sends a notification to your phone when a seat opens. An example watch: Temple University · 2026 Fall · CIS 1068.
The app never buys, reserves or holds anything. It points you at your school's own registration system; you act there yourself.
The developer collects none. We run no server and receive nothing from your device — not your watches, not your device identifier, not your usage, not crash reports.
The one exception is advertising, and the developer does not process that either: in the free tier Google serves the ads and may use your device's advertising ID (AAID) and IP address. See §5.
The watches you create (campus, term, subject, course number), your interval setting, the records already seen so the app does not tell you twice, and the measured data usage. All of it lives in the app's private storage and is deleted when you uninstall the app.
The app connects ONLY to the school you choose. Three campuses ship as presets; you can point it at any other school by pasting your own class-search link, in which case the app connects to that address and no other. The presets are:
prd-xereg.temple.eduselfservice.uncc.edubanner.buffalostate.eduThese requests are ordinary public web requests over HTTPS, the same ones your browser makes on the class-search page of the school you picked. They carry no identifier of you.
This section applies to version 0.20.0 and later. Earlier versions show no ads, contain no advertising library and read no advertising ID.
The free tier shows ads. They are served by Google AdMob; the developer does not choose what is shown and has no direct relationship with advertisers. The formats used are:
There is no analytics (Firebase Analytics and the like), no crash reporting (Crashlytics and the like) and no marketing tracker. How you use the app is never reported to the developer.
| Permission | Why |
|---|---|
ACCESS_NETWORK_STATE | To avoid pointless attempts while offline, and to tell mobile data from Wi-Fi. |
INTERNET | To reach the class-search page of the school you picked. |
POST_NOTIFICATIONS | To tell you a seat opened. That is the whole app. |
READ_BASIC_PHONE_STATE | So the ads library can tell Wi-Fi from mobile data. It grants no access to your phone number, IMEI or call log; the app does not declare it, the ads library adds it. |
RECEIVE_BOOT_COMPLETED | So your watches resume after the phone restarts. |
VIBRATE | To vibrate when a notification arrives. |
WAKE_LOCK | So the phone does not fall asleep in the middle of a check. The app does not ask for this itself; the background work library (Android Jetpack WorkManager) adds it. |
BILLING | So you can buy a paid membership through Google Play. The app does not declare this permission itself; the Google Play Billing library adds it. Your payment details (card, address, invoice) never reach the app and are never seen or stored by it — Google Play takes the payment. All the app learns is whether your membership is active. |
AD_ID | Ads in the free tier are served by Google AdMob, which may read the device advertising ID (AAID). The app does not declare this permission itself; the ads library adds it. Paid members make no ad request at all. You can reset or delete the ID in Settings › Google › Ads. |
If you buy a paid membership, the payment is handled by Google Play. Your card details are never entered into the app and are never seen by the developer.
Monthly and yearly memberships renew automatically; Google Play charges your account at the start of each period. The lifetime membership is a one-off purchase and does not renew. You can cancel a subscription at any time in Google Play Store › Menu › Subscriptions; cancelling takes effect at the end of the period you have already paid for. Refunds are also handled by Google Play — the developer has no access to the payment.
The app has no server of its own. Whether your membership is active is read again every time the app asks Google Play (when you open the app and when you view the membership screen). That is why a cancellation or refund closes the membership the next time you open the app. If you changed device, Restore purchases on the membership screen brings back a purchase made with the same Google account.
The app is not directed to children and collects no data from anyone.
Everything the app stores stays on your device; there is no account and no server copy. Deleting a watch removes it immediately. Clearing the app’s storage, or uninstalling the app, deletes everything it has ever kept — nothing survives elsewhere, so there is no separate deletion request to make. A paid membership is held by Google Play, not by the app: it survives reinstalling and can be brought back with Restore purchases.
If this policy changes, the date at the top changes with it.