A comprehensive hybrid synchronization system for ClickUp that maintains a local MySQL database with bidirectional sync capabilities.
- β Hybrid Sync: Bidirectional synchronization between ClickUp and local database
- π Real-time Updates: Webhook support for instant synchronization
- π‘οΈ Conflict Resolution: Intelligent handling of simultaneous edits
- π Dashboard Interface: React-based UI for task management
- π Audit Trail: Complete change history tracking
- β‘ Performance Optimized: Strategic indexing and caching
- π³ Docker Ready: Full containerization support
-
Clone and Setup
git clone <repository> cd clickup-sync ./setup.sh
-
Configure Environment
cp config/.env.example .env # Edit .env with your ClickUp API token and database credentials -
Deploy
./scripts/deploy.sh development
-
Access Dashboard
- Frontend: http://localhost:3001
- Backend API: http://localhost:3000
- Health Check: http://localhost:3000/health
- Sync Control:
sync_config,sync_operations,sync_conflicts - Workspace Structure:
teamsβspacesβfoldersβlistsβtasks - Task Management: Full metadata, assignees, comments, attachments
- Time Tracking: Complete time entry management
- Audit System: Change history and conflict resolution
POST /api/sync/pull- Pull data from ClickUpPOST /api/sync/push- Push local changes to ClickUpGET /api/sync/status- Get sync status and statistics
GET /api/tasks- List tasks with filteringGET /api/tasks/:id- Get task detailsPOST /api/tasks- Create new taskPUT /api/tasks/:id- Update task
GET /api/conflicts- List pending conflictsPOST /api/conflicts/:id/resolve- Resolve conflict
POST /webhook/clickup- ClickUp webhook endpoint
- Pull Sync: Fetches data from ClickUp API
- Push Sync: Sends local changes to ClickUp
- Webhook Processing: Real-time event handling
- Conflict Detection: Timestamp-based conflict identification
- Retry Logic: Exponential backoff for failed operations
# Database
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=clickup_sync
# ClickUp API
CLICKUP_API_BASE_URL=https://api.clickup.com/api/v2
CLICKUP_WEBHOOK_SECRET=your_webhook_secret
# Application
NODE_ENV=development
PORT=3000
JWT_SECRET=your_jwt_secret
# Sync Settings
SYNC_INTERVAL_MINUTES=15
MAX_RETRY_ATTEMPTS=3- Generate API token in ClickUp settings
- Configure webhook URL:
https://yourdomain.com/webhook/clickup - Set webhook events:
taskCreated,taskUpdated,taskDeleted,commentPosted
./scripts/deploy.sh development./scripts/deploy.sh productioncd database
node migrate.js
node seed.jscurl http://localhost:3000/health./scripts/monitor.sh./database/backup.shcd backend
npm testcd database
node migrate.js- Application logs:
./logs/app.log - Error logs:
./logs/error.log - Monitor logs:
./logs/monitor.log
-
Sync Conflicts
- Check
/api/conflictsendpoint - Use dashboard conflict resolution UI
- Manual resolution via database if needed
- Check
-
API Rate Limits
- Monitor rate limiting in logs
- Adjust
SYNC_INTERVAL_MINUTESif needed - Implement request queuing for high-volume scenarios
-
Database Connection Issues
- Verify database credentials
- Check database server status
- Review connection pool settings
-
Webhook Failures
- Verify webhook URL accessibility
- Check webhook secret configuration
- Monitor webhook event logs
For issues and feature requests, please check the documentation or create an issue in the repository.
MIT License - see LICENSE file for details.