Skip to content

A cross-platform desktop application built with Electron and SQLite for managing and synchronizing project directories with Vectorizer workspaces (local or remote).

License

Notifications You must be signed in to change notification settings

hivellm/vectorizer-sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Vectorizer Sync

TypeScript Electron License GitHub release

A cross-platform desktop application built with Electron and SQLite for managing and synchronizing project directories with Vectorizer workspaces (local or remote).

✨ Key Features

  • πŸ—‚οΈ Project Directory Management: Select and manage multiple project directories with intuitive UI
  • πŸ“ Workspace Configuration Export: Export workspace.yml files in Vectorizer format for local use
  • ☁️ Cloud Synchronization: Automatic file synchronization to HiveHub Cloud (when enabled)
  • πŸ”„ Real-Time File Monitoring: File system watcher detects changes and syncs automatically
  • 🚫 Smart File Filtering: Automatic exclusion of modules, builds, and large files (>100KB)
  • πŸ“Š Quota Management: Respect HiveHub plan limits with real-time quota monitoring
  • πŸ”” Notification System: Receive alerts from HiveHub and internal notifications
  • πŸ’Ύ Local Data Storage: All data stored in SQLite in user's home directory (persistent across updates)
  • πŸ”§ Configuration Import/Export: Import and export application configurations
  • πŸ–₯️ Cross-Platform: Native support for Windows, macOS, and Linux
  • πŸ”’ Secure Storage: API tokens and credentials stored in OS keychain/credential store

πŸš€ Quick Start

Prerequisites

  • Node.js: 20.x or later
  • npm or pnpm: Package manager
  • Windows: Windows 10 or later
  • macOS: macOS 10.15 (Catalina) or later
  • Linux: Ubuntu 20.04+, Fedora 33+, or equivalent

Development Setup

# Clone repository
git clone https://github.com/hivellm/vectorizer-sync.git
cd vectorizer-sync

# Install dependencies
npm install

# Run in development mode
npm run dev

Building from Source

# Build for current platform
npm run build

# Build for specific platform
npm run build:win
npm run build:mac
npm run build:linux

# Build for all platforms
npm run build:all

Production Installation

Windows:

  • Download installer from releases
  • Run .exe installer
  • Application installed to C:\Users\<username>\AppData\Local\vectorizer-sync\

macOS:

  • Download .dmg from releases
  • Open DMG and drag to Applications
  • Application installed to /Applications/vectorizer-sync.app

Linux:

  • Download AppImage, DEB, or RPM from releases
  • Install using package manager or run AppImage directly

πŸ“Š Performance

Metric Value
File Change Detection < 5 seconds
Database Queries < 100ms (simple queries)
Application Startup < 3 seconds
Memory Usage < 500MB (normal operation)
Test Coverage 95%+ (target)

πŸ”„ Feature Comparison

Feature Vectorizer Sync Manual Setup Other Tools
Workspace Export βœ… Automatic ❌ Manual ⚠️ Partial
Cloud Sync βœ… Automatic ❌ Manual ⚠️ Limited
File Filtering βœ… Smart ❌ Manual ⚠️ Basic
Quota Monitoring βœ… Real-time ❌ Manual ❌ None
Cross-Platform βœ… Windows/macOS/Linux βœ… All ⚠️ Limited
Local Storage βœ… SQLite ❌ None ⚠️ Varies
Notifications βœ… Integrated ❌ None ⚠️ Basic
Configuration βœ… Import/Export ❌ Manual ⚠️ Limited

🎯 Use Cases

  • Project Management: Manage multiple Vectorizer workspaces from a single interface
  • Team Collaboration: Sync project files to HiveHub Cloud for team access
  • Local Development: Export workspace.yml for local Vectorizer instances
  • Automated Workflows: Automatic file synchronization on changes
  • Documentation Sync: Keep documentation synchronized across environments

πŸ”§ Workspace Configuration

Vectorizer Sync exports workspace.yml files in the Vectorizer format:

global_settings:
  file_watcher:
    enabled: true
    auto_discovery: true
    enable_auto_update: true
    exclude_patterns: []
    hot_reload: true
    watch_paths:
      - /workspace

projects:
  - name: my-project
    path: /workspace/my-project
    description: My Project
    collections:
      - name: source-code
        description: Source code
        include_patterns:
          - "src/**/*.ts"
          - "src/**/*.tsx"
        exclude_patterns:
          - "node_modules/**"
          - "dist/**"

See Workspace Format Documentation for complete specification.

πŸ“š Documentation

πŸ”„ HiveHub Cloud Integration

Authentication (Future)

Vectorizer Sync will support OAuth 2.0 authentication with HiveHub Cloud:

  • Secure token storage in OS keychain
  • Automatic token refresh
  • Account management UI
  • Session management

Sync Features

  • Automatic Sync: Files sync automatically when changes are detected
  • Quota Monitoring: Real-time quota usage and warnings
  • Conflict Resolution: Handle sync conflicts intelligently
  • Batch Operations: Efficient batch uploads for multiple files

See HiveHub API Documentation for API details.

🚫 File Filtering

Vectorizer Sync automatically excludes:

  • Module Directories: node_modules/, vendor/, packages/, etc.
  • Build Artifacts: dist/, build/, out/, .next/, etc.
  • Large Files: Files larger than 100KB (configurable)
  • Binary Files: .exe, .dll, .so, .dylib, etc.
  • Temporary Files: *.tmp, *.temp, *.cache, etc.

See File Filtering Documentation for complete rules.

πŸ’Ύ Data Storage

All application data is stored locally in SQLite:

  • Windows: C:\Users\<username>\vectorizer-sync\database.db
  • macOS: ~/vectorizer-sync/database.db
  • Linux: ~/vectorizer-sync/database.db

Stored Data:

  • Project configurations
  • Workspace settings
  • File metadata
  • Sync history
  • User preferences
  • Notifications

See Database Schema Documentation for schema details.

πŸ§ͺ Testing

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Run specific test suite
npm run test:unit
npm run test:integration
npm run test:e2e

Test Coverage Target: 95%+

πŸ”§ Development

See Development Guide for detailed development instructions.

Project Structure

vectorizer-sync/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/              # Electron main process
β”‚   β”‚   β”œβ”€β”€ index.ts        # Main entry point
β”‚   β”‚   β”œβ”€β”€ database/       # Database management
β”‚   β”‚   β”œβ”€β”€ sync/           # Sync engine
β”‚   β”‚   β”œβ”€β”€ watcher/        # File system watcher
β”‚   β”‚   └── api/            # HiveHub API client
β”‚   β”œβ”€β”€ renderer/           # Electron renderer (React)
β”‚   β”‚   β”œβ”€β”€ components/     # React components
β”‚   β”‚   β”œβ”€β”€ pages/          # Page components
β”‚   β”‚   β”œβ”€β”€ hooks/          # React hooks
β”‚   β”‚   β”œβ”€β”€ store/          # State management
β”‚   β”‚   └── utils/          # Utility functions
β”‚   └── shared/             # Shared code
β”‚       β”œβ”€β”€ types/           # TypeScript types
β”‚       └── constants/       # Constants
β”œβ”€β”€ tests/                   # Test files
β”œβ”€β”€ docs/                    # Documentation
β”œβ”€β”€ scripts/                 # Build scripts
└── public/                  # Static assets

🀝 Contributing

Contributions are welcome! Please follow these guidelines:

  1. Follow coding standards (see Development Guide)
  2. Write tests for new features (95%+ coverage target)
  3. Ensure all tests pass
  4. Update documentation as needed
  5. Submit pull request

πŸ“„ License

Apache License 2.0 - See LICENSE for details

πŸ—ΊοΈ Roadmap

See Status Documentation for current status and roadmap.

Current Status: Documentation Phase (v0.1.0 Pre-release)

Planned Features:

  • βœ… Documentation (Complete)
  • ⏳ Core Infrastructure (Planned)
  • ⏳ Project Management (Planned)
  • ⏳ Workspace Export (Planned)
  • ⏳ File Synchronization (Planned)
  • ⏳ HiveHub Integration (Planned)
  • ⏳ Notification System (Planned)

πŸ†˜ Support

For issues and questions:

πŸ”— Related Projects

  • Vectorizer - High-performance vector database and search engine
  • HiveHub Cloud - Cloud platform for Vectorizer workspaces

About

A cross-platform desktop application built with Electron and SQLite for managing and synchronizing project directories with Vectorizer workspaces (local or remote).

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published