Initial Ralph scaffold

This commit is contained in:
Debian
2026-01-11 07:51:30 +00:00
commit ce0e5f1769
21 changed files with 2858 additions and 0 deletions

12
docs/idea-dump.md Normal file
View File

@@ -0,0 +1,12 @@
# Original Idea
AutoScheduler: Self-Hosted GTD Task Scheduler with ConnectWise Integration
AutoScheduler is a self-hosted web application that implements the Getting Things Done methodology with automatic calendar scheduling. It ingests tasks from multiple sources: a manual capture inbox, email (via IMAP or Microsoft Graph API), and read-only sync from ConnectWise Manage (service tickets, project tickets, and projects assigned to the user). Projects imported from ConnectWise with zero tickets surface as planning tasks requiring work breakdown. The system supports full GTD constructs: Inbox for capture, Next Actions with context labels (@desk, @phone, @errand, @homelab, @anywhere), Waiting For items with optional follow-up dates, Someday/Maybe for uncommitted ideas, Reference Material attachments on projects, and Tickler/Deferred items that surface to inbox on a specified date. All task priorities are manually assigned by the user; ConnectWise priority/SLA data is displayed for reference only.
The scheduling engine pulls from CalDAV-compatible calendars (Nextcloud, Google Calendar via API, or Microsoft Graph for Outlook) and places actionable tasks into available time slots. Scheduling respects user-defined working hours per day-of-week, with work-context tasks constrained to work hours and personal tasks schedulable outside them. The engine batches tasks by context when possible (consecutive @phone calls, grouped deep work blocks) while respecting deadlines and manual priority rankings. When calendar conflicts arise from new meetings, displaced tasks automatically reschedule to the next available slot. Users can manually override any placement via drag-drop, and lock specific tasks to fixed time slots. A recurring Weekly Review block is auto-scheduled, with a dedicated review interface showing all active projects, next actions per project, unprocessed inbox items, waiting-for items, and the someday/maybe list.
The personal life domain covers four areas: Homelab (Proxmox, networking, 3D printing, NAS projects), Daily Routines (meals, exercise, supplements), House (maintenance, errands, cleaning), and Professional Development (Microsoft Azure certification study). Work domain tasks flow from ConnectWise Manage and email, processed through the GTD inbox. The tech stack should prioritise self-hosting simplicity: containerised deployment (Docker Compose), SQLite or PostgreSQL for persistence, and a React or Vue SPA frontend with a calendar week view. Authentication via local accounts or OIDC. Notifications for rescheduling events via webhook or email.
Capture Methods
The system must support multiple task capture mechanisms for the GTD inbox: a quick-add form in the web UI for manual entry, a REST API endpoint for external integrations (iOS Shortcuts, CLI scripts, browser extensions), an email-to-inbox address or IMAP folder monitor that converts emails to inbox items, and optionally a Telegram/Signal bot or webhook receiver for mobile capture. Inbox items arrive as raw text with optional metadata (source, timestamp, attached links) and remain unprocessed until the user clarifies them into actionable tasks, projects, reference material, or trash during the processing workflow.