Skip to content

MidnightRambo/TickTaskPro

Repository files navigation

TickTaskPro Logo

TickTaskPro

A secure, offline-only task manager with a customizable Eisenhower Matrix

License: MIT Electron React TypeScript


πŸ“₯ For End Users

Download & Install

Download the latest release β†’

macOS (Apple Silicon)

  1. Download TickTaskPro-X.X.X-mac-arm64.dmg
  2. Open the DMG file
  3. Drag TickTaskPro to your Applications folder
  4. Launch from Applications

Note: On first launch, you may need to right-click β†’ Open if macOS blocks the app (unsigned developer).

Windows (64-bit)

  1. Download TickTaskPro-X.X.X-win-x64.exe
  2. Run the installer
  3. Choose installation directory (or use default)
  4. Launch TickTaskPro from Start Menu or Desktop

✨ Features

🎯 Customizable Eisenhower Matrix

  • Define your own rules for automatic task placement
  • Drag-and-drop between quadrants
  • Manual override with persistent placement
  • AND/OR logic for complex rule combinations

⚑ Quick Add with Smart Parsing

  • Natural language date parsing ("tomorrow at 2pm", "next Friday")
  • Inline tags with # syntax
  • Auto-completion for existing tags
  • Keyboard shortcut: ⌘/Ctrl + N

πŸ” Recurring Tasks

  • Daily, weekly, monthly, yearly patterns
  • Custom recurrence intervals
  • Automatic creation of next instance on completion

🏷️ Lists & Tags

  • Organize tasks in custom lists with colors & icons
  • Color-coded tags for visual organization
  • Tag manager for bulk operations
  • Filter by lists, tags, and due dates

βš™οΈ User-Editable Defaults

  • Default priority for new tasks
  • Default due date rules
  • Auto-apply tags based on patterns
  • Dark/Light theme

πŸ”” Smart Reminders

  • Desktop notifications for upcoming tasks
  • Background scheduler checks every minute
  • Click notification to jump to task

πŸ’Ύ Backup & Export

  • One-click backup to JSON
  • Import/restore from backup files
  • All data included: tasks, lists, tags, settings, rules

πŸ” Privacy-First

  • 100% offline operation
  • Local SQLite database
  • No telemetry or cloud sync
  • Your data never leaves your machine

⌨️ Keyboard Shortcuts

Shortcut Action
⌘/Ctrl + N Quick add task
⌘/Ctrl + F Focus search
Esc Close modal/drawer
Enter Submit quick add

πŸ“Š Eisenhower Matrix Rules

The matrix engine evaluates tasks against rules in this order:

  1. Do First (Urgent & Important)
  2. Schedule (Important, Not Urgent)
  3. Delegate (Urgent, Not Important)
  4. Eliminate (Neither)

Condition Types

Condition Type Operators
Priority is, is not, is one of
Due Date within X days, after X days, overdue, no due date
Tag includes, does not include
List is, is not

πŸ’½ Data Storage

All data is stored locally in SQLite:

  • macOS: ~/Library/Application Support/TickTaskPro/ticktask.db
  • Windows: %APPDATA%/TickTaskPro/ticktask.db
  • Linux: ~/.config/TickTaskPro/ticktask.db

πŸ› οΈ For Developers

Tech Stack

Concern Technology
Runtime Electron 33
UI React 18 + TypeScript 5
Styling TailwindCSS + Framer Motion
Database SQLite (better-sqlite3)
State Zustand
Date Parsing chrono-node
Drag & Drop react-beautiful-dnd
Build Vite + electron-builder

Prerequisites

  • Node.js 18+ (20 recommended)
  • npm or yarn
  • Python 3 (for native module compilation)
  • (macOS) Xcode Command Line Tools
  • (Windows) Visual Studio Build Tools

Setup

# Clone the repository
git clone https://github.com/MidnightRambo/TickTaskPro.git
cd TickTaskPro

# Install dependencies
npm install

# Rebuild native modules for Electron
npm run postinstall

Development

# Start development server with hot reload
npm run dev

# Or start with Electron immediately
npm run electron:dev

The app will open with:

  • Frontend: http://localhost:5173
  • Hot reload enabled for both frontend and Electron main process

Building

# Build installers for your current platform
npm run dist

# Build for macOS (ARM64)
npm run dist:mac

# Build for Windows (x64)
npm run dist:win

# Output directory: release/

Publishing

The GitHub Actions workflow automatically builds and releases on push to main:

# Tag a new version
npm version patch  # or minor, major

# Push to GitHub
git push origin main --follow-tags

Artifacts are uploaded to GitHub Releases automatically.

Project Structure

TickTaskPro/
β”œβ”€β”€ electron/
β”‚   β”œβ”€β”€ main.ts          # Electron main process
β”‚   β”œβ”€β”€ preload.ts       # Preload script (IPC bridge)
β”‚   └── database.ts      # SQLite initialization & migrations
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ EisenhowerMatrix.tsx
β”‚   β”‚   β”œβ”€β”€ TaskCard.tsx
β”‚   β”‚   β”œβ”€β”€ TaskDrawer.tsx
β”‚   β”‚   β”œβ”€β”€ QuickAddModal.tsx
β”‚   β”‚   β”œβ”€β”€ RulesEditor.tsx
β”‚   β”‚   β”œβ”€β”€ SettingsModal.tsx
β”‚   β”‚   β”œβ”€β”€ TagManager.tsx
β”‚   β”‚   β”œβ”€β”€ Sidebar.tsx
β”‚   β”‚   β”œβ”€β”€ ListView.tsx
β”‚   β”‚   └── Topbar.tsx
β”‚   β”œβ”€β”€ store/
β”‚   β”‚   └── index.ts     # Zustand store
β”‚   β”œβ”€β”€ types/
β”‚   β”‚   └── index.ts     # TypeScript types
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── date.ts      # Date utilities
β”‚   β”œβ”€β”€ App.tsx
β”‚   β”œβ”€β”€ main.tsx
β”‚   └── index.css
β”œβ”€β”€ assets/
β”‚   └── icons/           # App icons (icns, ico, png, svg)
β”œβ”€β”€ .github/
β”‚   └── workflows/
β”‚       └── release.yml  # CI/CD pipeline
β”œβ”€β”€ package.json
β”œβ”€β”€ vite.config.ts
β”œβ”€β”€ tailwind.config.js
└── tsconfig.json

Available Scripts

Script Description
npm run dev Start Vite dev server
npm run electron:dev Start app in dev mode with hot reload
npm run dist Build installer for current platform
npm run dist:mac Build macOS DMG (local)
npm run dist:win Build Windows installer (local)
npm run typecheck Run TypeScript type checking
npm run preview Preview production build

IPC Handlers

All database operations use Electron IPC:

// Example: Get all tasks
const tasks = await window.electron.db.tasks.getAll()

// Example: Create a task
await window.electron.db.tasks.create({
  id: uuid(),
  title: 'My task',
  priority: 'high',
  // ...
})

Available handlers:

  • db:tasks:* - Task CRUD operations
  • db:lists:* - List management
  • db:tags:* - Tag management
  • db:settings:* - Settings operations
  • db:rules:* - Eisenhower rules
  • backup:export / backup:import / backup:restore
  • notification:show

πŸš€ CI/CD Pipeline

Every push to main triggers:

  1. βœ… Build on macOS and Windows runners
  2. βœ… Package installers with electron-builder
  3. βœ… Create/update GitHub Release with artifacts
  4. βœ… Upload artifacts to workflow (30-day retention)

Release naming: vX.Y.Z (based on package.json version)


πŸ“„ License

MIT Β© MidnightRambo


πŸ™ Credits

Built with ❀️ using:


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published