A Progressive Web App (PWA) for monitoring and recording periodic activities. Users must press a button at configurable intervals to confirm their presence/activity.
⚠️ Disclaimer: This application was developed with the assistance of Artificial Intelligence (AI). Users should verify functionality for their specific use cases.
- ✅ Periodic check-in: Button to confirm presence at configurable intervals
- ⏱️ Visual timer: Countdown showing time remaining until next check-in
- ⚙️ Configurable interval: Set time between check-ins (1-1440 minutes)
- 📊 Progress bar: Visual representation of elapsed time
- 🔔 Notifications: Alerts when check-in is approaching or overdue
- 📋 Complete history: Record of all activities with status
- 💾 Local storage: Data saved in browser
- 📤 Export: Export history in CSV format
- 📱 Installable: Can be installed as an app on mobile or desktop
- 🌐 Works offline: Service Worker for offline usage
- 🛑 Stop monitoring: Stop button to halt activity tracking with history entry
- 📊 Activity statistics: Calculate active/inactive time from a specific date
- Open the application in a modern browser (Chrome, Edge, Safari, Firefox)
- Look for the installation icon in the address bar or menu
- Click "Install" or "Add to Home Screen"
- The app will be installed as a native application
To test locally, you need an HTTP server. Choose one of the options:
Option 1 - Python:
# Python 3
python -m http.server 8000
# Python 2
python -m SimpleHTTPServer 8000Option 2 - Node.js (http-server):
npx http-server -p 8000Option 3 - PHP:
php -S localhost:8000Then access: http://localhost:8000
- First Check-in: Press the "Confirm Presence" button to start
- Configure Interval: Set how many minutes between each check-in (default: 30 min)
- Enable Notifications: Check the option to receive alerts
- Monitor Timer: Track remaining time on the main screen
- Regular Check-ins: Press the button before time runs out
- View History: See all completed check-ins
- Stop Monitoring: Press the stop button to halt tracking (creates a history entry)
- View Statistics: Calculate active/inactive time from a specific date
- Green: Check-in completed on time
- Yellow: Less than 5 minutes remaining
- Red blinking: Check-in overdue
- Progress bar: Shows elapsed time visually
- Gray: Stopped/interrupted session
- ✅ Chrome/Edge (Desktop and Mobile)
- ✅ Safari (iOS and macOS)
- ✅ Firefox (Desktop and Mobile)
- ✅ Samsung Internet
- ✅ Opera
- HTML5
- CSS3 (Responsive design)
- JavaScript (Vanilla)
- Service Worker (PWA)
- Web Notifications API
- LocalStorage API
deadmanSwitch/
├── index.html # Main page
├── styles.css # Styles
├── app.js # Application logic
├── manifest.json # PWA manifest
├── service-worker.js # Service Worker for caching
├── icon-192.png # Icon 192x192
├── icon-512.png # Icon 512x512
├── README.md # This file
└── SETUP.md # Setup instructions
All data is stored locally on your device. No information is sent to external servers.
- Activity monitoring for remote work
- Personal "dead man's switch" system
- Periodic task reminders
- Presence control
- Regular activity logging
- Accountability tracking
You can customize:
- Check-in interval (1 to 1440 minutes)
- Colors in
styles.cssfile - Texts and messages in
index.htmlandapp.js - Icons (replace
icon-192.pngandicon-512.png)
- Timer continues running even if you close the tab (data saved in LocalStorage)
- Notifications require browser permission
- To work offline, access the app online at least once
- History is limited to the 100 most recent entries
- Stop button creates a history entry and halts the timer
- Statistics calculate actual active time (max interval per check-in)
- Each check-in counts for a maximum of the configured interval
- Early check-ins cut the previous interval to actual elapsed time
- Stop events count for a maximum of the interval from the previous check-in
- Time before the first check-in is not counted as active
Free for personal and commercial use.