Presented at the Harvard CS50 Fair — December 8, 2025 Northwest Building, 52 Oxford Street, Cambridge, MA
ThinTrack is a single-page, browser-only simulation of an ultra-thin Bluetooth "sticker" and how a phone app reacts when the sticker is near, getting far, or out of range.
Built as a CS50x final project. No server, no dependencies — open index.html and it runs.
- Clone or download this repo
- Open
index.htmlin any modern browser — no server required - Use the left-side buttons or keyboard shortcuts:
1— Sticker is Near2— Sticker is Getting Far3— Sticker is Out of Range
Simulates the full lifecycle of a Bluetooth item tracker:
- Near — strong signal, green UI, RSSI ~-52 dBm, ~1–2m distance
- Getting Far — signal dropping, amber UI, RSSI ~-74 dBm, ~6–8m
- Out of Range — left-behind alert fires, red UI, RSSI ~-90 dBm, >15m
The phone app panel shows real-time signal strength bar, distance estimate, RSSI value, in-app notifications, and a dismissible left-behind alert banner.
Modular design in plain vanilla JS — no frameworks:
| Layer | Responsibility |
|---|---|
| Model | StickerDevice (id, rssi, state, lastSeen, lastPosition) |
| Logic | RSSI → state mapping, telemetry application |
| AlertEngine | Left-behind detection with dismissal suppression |
| UI | Labels, status chips, signal bar, phone shell animations |
| File | Description |
|---|---|
index.html |
App markup — dual-panel layout (hardware sim + phone UI) |
style.css |
Dark theme, animations, responsive layout |
script.js |
Modular vanilla JS — Model/Logic/UI/AlertEngine |
Thresholds and timings are configurable in script.js:
const CONFIG = {
RSSI: {
NEAR: -52,
FAR: -74,
OUT: -90,
LEFT_BEHIND: -85, // threshold for left-behind alert
HYSTERESIS: 3
},
TIMERS: {
ALERT_DELAY_MS: 700,
UI_ANIM_MS: 300
}
};ThinTrack.setNear() // simulate near state
ThinTrack.setFar() // simulate far state
ThinTrack.setOut() // simulate out of range
ThinTrack.clearNotifications() // clear phone notification listPresented at the Harvard CS50 Fair — December 8, 2025 Northwest Building, 52 Oxford Street, Cambridge, MA
CS50 is Harvard University's introduction to computer science, one of the most widely taken courses globally. The CS50 Fair is an end-of-year showcase where students present their final projects.
Part of a broader cybersecurity portfolio — GIAC GCIH | GSEC 97% | GIAC Advisory Board Member