A smoking/vaping cessation companion app. Track usage, visualize progress, and taper off at your own pace — with or without a smart device.
taperOffv1/
├── app/ # Expo Router screens
├── components/ # Reusable UI components
├── db/ # SQLite database (model + repo)
├── constants/ # App constants and theme
├── util/ # Utilities
├── assets/ # Images, fonts, icons
└── provider.tsx # React context providers
- Usage tracking — log every hit/puff with timestamps
- Circular progress — visual daily/weekly/monthly goals via
react-native-circular-progress - Charts — detailed usage history with
react-native-gifted-charts - Bluetooth device pairing — scan for and connect to vape devices via
react-native-bluetooth-classic - Notifications — reminders and motivational nudges via Expo Notifications + Task Manager
- Local-first — all data stored locally in SQLite via
expo-sqlite - Date selection — pick any date to review past usage with
react-native-date-picker - Device management — dedicated screens for device list, connection, and tracking status
- Monthly overview — heatmap/card view of monthly usage patterns
| Component | Purpose |
|---|---|
ConnectionScreen |
Bluetooth pairing UI |
DeviceListScreen |
Discovered devices list |
DevicesTrack |
Active device tracking |
MontlyData |
Monthly usage breakdown |
NoDevice |
Empty state when no device is paired |
device.tsx |
Device data model component |
db/
├── db.ts # SQLite database initialization
├── model/ # Data models
└── repo/ # CRUD operations
- Framework: Expo (React Native)
- Navigation: Expo Router (file-based)
- Database: SQLite via
expo-sqlite - Bluetooth:
react-native-bluetooth-classic - Charts:
react-native-gifted-charts - Progress:
react-native-circular-progress - Notifications: Expo Notifications + Task Manager
- UI: Linear gradients, modals, date picker
git clone https://github.com/CollegeRideOut/taperOffv1
cd taperOffv1
npm install
npx expo startProduction-ready Expo app with local SQLite storage, Bluetooth device pairing, usage tracking, charts, and notifications. Works standalone or paired with a compatible device.
MIT