BioSync — Medication Alarm & Hardware Feedback System
BioSync is a robust, high-fidelity medication adherence and alarm system built with modern Android UI paradigms and deep hardware integrations. This system ensures critical medical alerts are never missed through high-contrast immersive overlays, multi-sensory feedback loops, and intuitive, mistake-proof interaction models.
Feature Architecture & UI Specifications
Screen C: Full-Screen Active Alarm Takeover
An immersive, high-contrast takeover overlay designed to command immediate attention and guarantee user interaction when a critical medication alarm triggers.
- Scale Pulsing Animation: The notification bell icon features a smooth, continuous glowing/pulsing card scale effect (
0.95fto1.15f) to visually signify an active, high-priority alert state. - Hero Typography: Replaced standard text blocks with an elegant, ultra-bold
52.spdigital time readout paired with a high-visibility flashingALARM RINGINGheader. - Live Clock Feed: Features a synchronized, ticking time display that updates dynamically every second directly inside the takeover window.
- Metropolitan Chip Layout: Selected sound tones (e.g., Chirp Tune, Zen Chimes, Digital Beep) and vibration metrics are framed beautifully inside translucent, modern pill-shaped chips.
- Failsafe "Swipe-to-Dismiss" Slider: To completely eliminate accidental touch dismissals, standard buttons are replaced with a red-accented interactive slider. Users must slide the thumb fully to the right (
>= 92%completion) to clear the active alert.
Screen A: Registered Alarms Dashboard
A streamlined medical control hub integrated directly inside the secondary Dashboard UI to help users manage upcoming and historical schedules.
- Real-time Digital Chronometer: Integrated a full-date and ticking clock system displaying
hh:mm:ss a — Day, Month Dateusing a clean, professional monospace typeface (13.sp) for perfect geometric alignment. - Sleek Alarm Cards: Active alarms are housed inside rounded Material 3 cards featuring prominent
22.spbold scheduled times, custom labels, and list-level quick actions. - Localized Smart-Formatting: Automatically parses and translates selected individual days into standard weekly structural labels (e.g.,
Mon, Wed, Fri,Every day, orOne-time Alarm). - Snoozed Badges: High-contrast indicator chips dynamically appear on individual cards to visibly signify that an alarm is currently resting in a snooze interval.
Screen B: Create & Edit Configuration Sheets
Replaced primitive text forms with interactive, tactile Material 3 selection rollers for rapid and precise input modification.
- Custom Clock Rollers: Features sleek up/down arrow buttons to scroll through hours and minutes dynamically in 5-minute step intervals, complete with a quick-tap button to toggle AM/PM tags.
- Circular Weekday Selectors: Outfitted with 7 circular, highly responsive weekday buttons that instantly toggle component states (transitioning from baseline surface background to primary brand accents) upon selection.
- Tactile Snooze & Sound Tones: Replaced cluttered dropdown menus with elegant horizontal
FilterChiprows, enabling rapid one-tap selection of snooze duration boundaries (1m,5m,10m,15m,30m) and chime sound preferences.
Embedded Multi-Sensory Hardware Feedback
The UI states are deeply integrated into Android’s native audio and haptic sub-systems to maintain situational awareness.
- Ringing Sound Loops: Triggers standard pre-configured device alarm sounds and ringtone chimes dynamically, looping continuously until explicitly processed.
- Synchronized Pulse Vibration: Triggers a strict, repeating structural vibration cadence using a
longArrayOf(0, 800, 800)pattern on supported devices. - Unified State Dismissal: Ringing audio and vibration tracks stop playing instantly the exact millisecond an alarm is toggled off, snoozed, dismissed, or deleted.
Automated Branding Pipeline
To keep application production environments perfectly synced with the master identity assets, the build system uses an automated pipeline:
// build.gradle.kts
tasks.register("downloadBrandAssets") {
description = "Pulls latest branding assets from Github and bundles them natively."
doLast {
val assetUrl = "[https://github.com/Shauryavikramsingh/.../Icon.png](https://github.com/Shauryavikramsingh/.../Icon.png)"
val targetFile = file("src/main/res/drawable/biosync_logo.png")
println("Downloading latest production brand assets...")
targetFile.writeBytes(java.net.URL(assetUrl).readBytes())
println("Assets successfully bundled natively as biosync_logo.png")
}
}
tasks.named("preBuild") {
dependsOn("downloadBrandAssets")
}
Log in or sign up for Devpost to join the conversation.