How danielistyo/pm-wa works
PM-WA manages WhatsApp group task lists through private-message commands, group replies, scheduled reminders, and an optional authenticated web interface. The principal workflow is to create and populate a list, publish its summary to a group, accept authorized done/todo replies, and send reminders for due tasks. The database persists lists, tasks, assignees, and message mappings; formatting supports group summaries and reminder messages. The README is empty, so capability coverage and relationships are based on the sampled source and source index; unsampled command and web behaviors are represented only where their paths are clear.
Main entry points: client.go WhatsApp client · db.go SQLite database · handler.go Reply processing · pulse.go Reminder scheduler
Components 22
Event entry
- Event dispatcher
main.go - WhatsApp client
bot/client.go
List management
- Private commands
cmd/handler.go - List and task operations
cmd
Group updates
- Reply processing
reply/handler.go - Reply parser
reply/parser.go - Summary formatting
format/summary.go
Reminders
- Reminder scheduler
scheduler/pulse.go - Pulse formatting
format/pulse.go
Persistence
- SQLite database
db/db.go - Task storage
db/task.go - Task-list storage
db/tasklist.go - Message mappings
db/message_map.go
Web interface
- Web server
web/server.go - List web handlers
web/handlers.go - Web authentication
web/auth.go - Reminder picker
web/static/reminder-picker.js - Assignee picker
web/static/assignee-picker.js
Other components
- WhatsApp user
- WhatsApp group
- Web user
- WhatsApp service
Connections 29
- WhatsApp user → WhatsApp client: sends messages
- WhatsApp client → Event dispatcher: emits events
main.go - Event dispatcher → Private commands: routes private messages
main.go - Event dispatcher → Reply processing: routes group replies
main.go - Event dispatcher → Reminder scheduler: starts scheduler
main.go - Private commands → List and task operations: dispatches commands
cmd/handler.go - Private commands → SQLite database: reads and writes
- Private commands → WhatsApp client: sends responses
cmd/handler.go - Reply processing → Reply parser: parses reply
reply/handler.go - Reply processing → SQLite database: reads and updates
reply/handler.go - Reply processing → Summary formatting: formats summary
reply/handler.go - Reply processing → WhatsApp client: posts group update
reply/handler.go - WhatsApp client → WhatsApp group: sends messages
- Reminder scheduler → SQLite database: loads due tasks
scheduler/pulse.go - Reminder scheduler → Pulse formatting: formats reminders
scheduler/pulse.go - Reminder scheduler → WhatsApp client: sends reminders
scheduler/pulse.go - Reminder scheduler → Message mappings: saves sent mapping
scheduler/pulse.go - SQLite database → Task storage: uses task queries
- SQLite database → Task-list storage: uses list queries
- SQLite database → Message mappings: uses mapping queries
- Web user → Web server: requests pages
web/server.go - Web server → Web authentication: guards routes
web/server.go - Web server → List web handlers: routes requests
web/server.go - List web handlers → SQLite database: reads and writes
web/handlers.go - List web handlers → WhatsApp client: publishes summaries
web/handlers.go - List web handlers → Reminder picker: serves static assets
- List web handlers → Assignee picker: serves static assets
- Web user → Reminder picker: edits schedules
- WhatsApp client → WhatsApp service: connects to
bot/client.go