How mariglend/kettledesk works
Kettledesk is an offline-first Electron desktop app for personal trainers. Trainers manage clients and their appointments, then record attendance, sell packages and track payments; workout programmes and client progress support the ongoing coaching relationship. The UI also provides studio dashboards, statistics, team administration, settings and multilingual formatting. The documented boundary is an encrypted local store with optional Google Calendar sync and folder backups. Sampled source confirms the Electron/preload bridge, local encryption and selected domain behavior; other domain links reflect README capabilities rather than inspected implementations.
Main entry points: index.html Studio interface · store.js Local data access · preload.js Electron bridge · calendar.js Calendar views
Components 20
Desktop shell
- App window
main.js - Studio interface
index.html - App startup
js/boot.js - Shared UI logic
js/core.js - Electron bridge
preload.js
Studio operations
- Calendar views
js/calendar.js - Event recognition
js/events.js - Client records
js/clients.js - Packages and payments
js/money.js - Workout programmes
js/programs.js
Studio oversight
- Dashboard
js/dashboard.js - Studio statistics
js/stats.js - Team and settings
js/admin.js - Language formatting
js/i18n.js
Data and integrations
- Google Calendar adapter
js/google.js - Local data access
js/store.js - Encrypted local data
main.js
Other components
- Trainer
- Google Calendar
- Backup folder
Connections 23
- Trainer → Studio interface: uses
- App window → Studio interface: loads
- Studio interface → App startup: starts
- App startup → Shared UI logic: initializes
- Studio interface → Calendar views: opens calendar
- Calendar views → Event recognition: recognizes appointments
- Calendar views → Google Calendar adapter: syncs events
- Google Calendar adapter → Google Calendar: reads and updates
- Trainer → Client records: manages clients
- Trainer → Packages and payments: tracks sales
- Trainer → Workout programmes: creates programmes
- Trainer → Dashboard: reviews studio
- Dashboard → Studio statistics: opens statistics
- Trainer → Team and settings: manages team
- Studio interface → Language formatting: formats language
- Client records → Local data access: reads and saves
- Packages and payments → Local data access: reads and saves
- Workout programmes → Local data access: reads and saves
- Event recognition → Local data access: reads and saves
- Local data access → Electron bridge: requests storage
- Team and settings → Electron bridge: requests backup
- Electron bridge → Encrypted local data: invokes IPC
- Electron bridge → Backup folder: writes and reads