Dashboard
Branch Distribution
Recent Signups
Deep Analytics
Screen time, app opens, note views and forwards — filterable by college, branch, year and semester
Trend
Institutions
Institution adoption, team size and smartboard engagement over the selected period
Daily trend
Institutions
Smartboards
Board sessions, tool usage and content actions — metadata only, never note content
Daily trend
Tool usage
Settings changed
Note types
Hour of day
Per board
Per college
Per department
Attendance Website
Aggregated SBTET attendance lookups from noteshuttle.com — no PINs, names or roll numbers stored
Daily lookups
Top colleges
Top branches
Scheme split
Results
Served from
Device
Aggregated website lookups. No PINs or names are stored.
Users
| Name | Phone | Branch | Sem | College | FCM Token | Status | Labels | Actions |
|---|
Push Notifications & Campaigns
Target students precisely by semester, branch, college, year, or activity
Campaign History
| Title & Message | Target Audience | Delivered / Target | Status | Sent Time |
|---|
Institutions
Smartboards
Board accounts for college whiteboards. Boards share backups and analytics inside their college.
| College | Board | Username | Department | Status | Last login | Backups | Storage | Actions |
|---|---|---|---|---|---|---|---|---|
| Loading smartboards... | ||||||||
Alerts
UGC Reports & Moderation Review
Review reported chats, messages, notes, users, and groups across the entire app
| Type | Target Preview | Reason & Details | Reporter | Reported Date | Status | Actions |
|---|
Super Toggle
Force an app update for selected segments. Admins are never locked out.
Kill-Switch
Nothing selected = students + institutions. Institutions are ordinary accounts in the same users table, so select Students to keep college or segment targeting from locking them too. Smartboard boards are locked only when Smartboards is explicitly selected; they are NOT counted in the campaign countdown because boards do not report app versions.
Nothing selected = everyone
Nothing selected = everyone
Nothing selected = everyone
Nothing selected = everyone
Nothing selected = everyone
Users below this version are out of scope and never locked. Users from here up to the updated version are locked. Leave empty to include every version.
Users at or above this version are released, whatever the segments say, and count down to zero. Both fields empty = every version (pure kill switch). Minimum alone = lock everyone below it until they update.
Live campaign
Refreshes every 20 s while this page is openLoading campaign…
App updates
Publish a prepared Shorebird patch for the existing Flutter app.
Loading app updates...
Prepare a patch and check its limits
Create and test a patch for the selected base release in your development terminal, then select Refresh here:
shorebird patch android --release-version <selected-version> --track staging
This page never executes commands or creates patches. Native code, plugin or asset changes may need a new store release; do not assume any change can ship as a patch.
Ads
Turn AdMob on or off and set how often ads appear. Saves apply without a new app build.
Kill Switch
Keep this OFF until your AdMob account is fully verified (payments profile + address PIN). Flipping it ON starts serving ads to users on their next app launch; flipping it OFF stops them the same way. Nothing here needs a rebuilt APK.
Ad Unit IDs
From AdMob → Apps → NoteShuttle → Ad units. Leave a field empty to use the ID already built into the app. A malformed ID is rejected, never silently ignored.
Break Behaviour
AdMob allows at most one interstitial per two user actions, and Google flags apps that chain consecutive interstitials ("Made for Ads"). The app enforces 2 / 60s / 50 as hard limits, so safer values here are respected but more aggressive ones are pulled back.
Audience & Consent
Under-18 users are always tagged for consent and downgraded to T, whatever is set here.
Who Sees Ads
Use "Only the listed user IDs" while AdMob is still verifying: real ads reach only your own account, so you can prove the break works without exposing every student to a misconfigured unit.