Skip to main content

AI-Powered Team Orchestration Platform - Streamline product development and team collaboration with AI

Project description

InnoDay Platform

CI/CD Release Python License: AGPL v3 Code Style: Black

AI-powered development platform for managing tickets, boards, and repositories with Claude AI integration.

๐Ÿ“œ Licensing

InnoDay is dual-licensed to protect against unauthorized monetization while keeping the project open source:

Open Source License (AGPL v3)

  • โœ… Free for open source projects
  • โœ… Modifications must be shared
  • โœ… Network use requires source disclosure
  • ๐Ÿ“– Read full AGPL v3 license

Commercial License

Why AGPL v3? It prevents others from offering InnoDay as a paid service without contributing back, while allowing us to fund development through commercial licenses.

๐Ÿš€ Quick Start

# Clone and install
git clone git@github.com:havilandsoftware/innoday.git
cd innoday
./install.sh

# Initialize platform (new terminal)
innoday platform init  # Interactive setup wizard

See Platform Setup Guide for detailed instructions.

Manual Setup

# 1. Dependencies & database
uv sync  # Installs all dependencies including psycopg2-binary for PostgreSQL

# 2. Database setup
# For PostgreSQL (Supabase):
DATABASE_URL="postgresql://user:pass@host:port/db" uv run alembic upgrade head

# For SQLite (development):
uv run alembic upgrade head

# 3. Start API server (port 8002)
uv run python -m src.main api --port 8002 --reload

# 4. Initialize platform
PYTHONPATH=. uv run python -m src.cli.main platform init

# 5. Configure CLI (optional)
PYTHONPATH=. uv run python -m src.cli.main config init

4. Configure GitHub Integration

# Set GitHub token (get from https://github.com/settings/tokens)
export GITHUB_TOKEN="your-github-token"

# Register a GitHub repository
curl -X POST "http://localhost:8002/api/v1/organizations/{org-id}/repositories" \
  -H "Content-Type: application/json" \
  -H "x-integration-token: ${GITHUB_TOKEN}" \
  -d '{
    "name": "repo-name",
    "url": "https://github.com/owner/repo",
    "platform": "github",
    "sync_issues": true
  }'

# Sync repository issues
curl -X POST "http://localhost:8002/api/v1/organizations/{org-id}/repositories/{repo-id}/sync" \
  -H "x-integration-token: ${GITHUB_TOKEN}"

5. Configure Jira Integration (Optional)

# Configure Jira credentials
PYTHONPATH=. uv run python -m src.cli.main config integrations
# Select "jira" and enter your Jira URL, email, and API token

# Register a Jira board
PYTHONPATH=. uv run python -m src.cli.main board register --type jira \
  "https://your-domain.atlassian.net/jira/software/boards/123" \
  "Your Board Name"

# Sync board tickets
PYTHONPATH=. uv run python -m src.cli.main board sync {board-id}

6. Configure Notion Integration (Optional)

# Configure Notion credentials
# 1. Create integration at https://www.notion.so/my-integrations
# 2. Copy integration token (starts with 'secret_')
# 3. Share your database with the integration

PYTHONPATH=. uv run python -m src.cli.main config integrations
# Select "notion" and enter your integration token

# Register a Notion database
PYTHONPATH=. uv run python -m src.cli.main board register --type notion \
  "https://www.notion.so/your-database-id" \
  "Your Database Name"

# Sync database pages as tickets
PYTHONPATH=. uv run python -m src.cli.main board sync {board-id}

๐ŸŽฏ Quick Usage Examples:

# Service management
innoday status             # Check all services
innoday start api          # Start just the API
innoday logs agent         # View agent logs

# Ticket management  
innoday tickets list       # List all tickets
innoday tickets create "Fix login bug"
innoday tickets update 123 --status IN_PROGRESS

# AI Agent interaction
innoday agent chat "Create tasks for auth system"
innoday agent interactive  # Interactive chat mode

# Repository management (NEW)
innoday git list           # List Git registrations
innoday git sync {id}      # Sync repository issues
innoday git repo {id}      # View repository info
innoday git issues {id}    # View repository issues

๐Ÿ—‘๏ธ Easy Uninstall

To uninstall InnoDay:

# If you have the repository cloned:
./uninstall.sh

# Or run these commands manually:
rm -rf ~/.innoday
rm -f ~/.local/bin/innoday

# Note: Remove PATH entry from your shell config (~/.bashrc, ~/.zshrc, or ~/.profile)
# Look for: export PATH="$HOME/.local/bin:$PATH"

๐Ÿ› ๏ธ Alternative Installation Methods

Development Setup (No Installation)
# Clone repository
git clone https://github.com/havilandsoftware/innoday.git
cd innoday

# Use the bin wrapper (no installation needed!)
./bin/innoday --version

# Configure environment
cp .env.example .env
# Edit .env with your credentials

# Start services
./bin/innoday start all
Docker Compose
git clone https://github.com/havilandsoftware/innoday.git
cd innoday
docker compose up -d

Service URLs:

  • REST API: http://localhost:8002 (Docs)
  • Agent API: http://localhost:9000
  • Web UI: http://localhost:7860

โœจ Features That Make InnoDay Special

๐Ÿค– AI-Powered Team Orchestration

  • Smart Update Collection: Automatically gather and summarize team progress with AI assistance
  • Intelligent Meeting Preparation: AI-driven SCRUM facilitation and meeting insights
  • Optimal Workload Distribution: Machine learning-based task assignment and team balancing
  • Context-Aware Information Routing: Connect people to the right information at the right time
  • Claude AI Integration: Advanced conversation analysis with recency weighting and temporal patterns

๐Ÿ“ Project-Based Organization (NEW)

  • Unified Project Structure: Organize work with goals, scope, and clear boundaries
  • Scope Document Management: Version-controlled requirements with iterative refinement workflow
  • Project Update Tracking: Capture clarifications, feedback, and Q&A during scoping
  • Repository Layer Classification: Categorize repos by architecture (UI, API, Data, AI, Legacy)
  • Primary Repository Designation: Identify the main codebase for each project
  • Integrated Board Management: One board per project for ticket tracking
  • Project Overview Dashboard: Complete visibility across all project components

๐Ÿ”— Unified Multi-Platform Integration

  • Single Source of Truth: Seamlessly manage Jira, Trello, and GitHub from one interface
  • Real-Time Synchronization: Automatic bi-directional sync with intelligent duplicate detection
  • Universal Ticket Model: Work with tickets from any platform using consistent APIs
  • Board Registration System: Secure, token-based integration without storing credentials

๐Ÿข Enterprise-Ready Architecture

  • Organization-Based Multi-Tenancy: Complete data isolation with flexible membership roles
  • Platform Organization Protection: Special administrative entity that cannot be modified or deleted
  • Smart License Management: Usage-based tiers with real-time tracking and enforcement
  • Role-Based Access Control: Granular permissions (MEMBER, ADMIN, OWNER, DEVELOPER, PLATFORM)

๐ŸŽฏ Developer Experience

  • Comprehensive CLI: Rich command-line interface with secure credential storage and beautiful output
  • Modern API Design: FastAPI with automatic documentation, type safety, and async support
  • Three Service Architecture: Separate API, Agent, and UI services for flexible deployment
  • Container Execution Support: Run AI workloads in isolated Docker environments

๐Ÿ—๏ธ API Architecture (v1)

  • 144 RESTful Endpoints: Organized across 17 specialized routers
  • Organization-Scoped Resources: All operations under /api/v1/organizations/{org_id}/
  • Consolidated Routers: Reduced from 20+ files to 17 well-organized modules
  • Unified AI Operations: All Claude/AI functionality under /api/v1/ai/
  • Complete Workflows: Project management, board sync, repository tracking, and container execution

๐Ÿ›ก๏ธ Security & Compliance

  • Token Pass-Through: Integration credentials never stored in database
  • Secure Credential Management: System keyring integration for sensitive data
  • Audit Trail: Complete history for synchronization, license changes, and executions
  • API Protection: Platform organization endpoints restricted to authorized users

Installable Command Line Interface

  • Service Management: Start, stop, restart, and monitor all InnoDay services
  • Rich Terminal Output: Beautiful tables, colors, and progress indicators
  • Interactive Agent: Real-time AI conversation with thread persistence
  • Secure Credentials: System keyring integration for API keys
  • Multiple Formats: Table, JSON, and CSV output options
  • Session Management: Persistent conversation threads and configuration

๐Ÿ“‹ Prerequisites

  • Python 3.11+ (Required for full functionality and type safety)
  • uv package manager (Install Guide)
  • Database: PostgreSQL (production) or SQLite (development)
    • PostgreSQL requires psycopg2-binary (automatically installed via uv sync)
  • Integration Accounts: Jira, Trello, GitHub, Claude AI, Slack (optional)

๐Ÿ“– Documentation

๐Ÿ› ๏ธ Installation & Setup

1. Environment Setup

# Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"

# Clone repository
git clone https://github.com/havilandsoftware/innoday.git
cd innoday

# Setup virtual environment and dependencies
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv sync

2. Configuration

# Copy environment template
cp .env.example .env

# Configure required variables in .env:
# TRELLO_API_KEY=your_trello_api_key
# TRELLO_TOKEN=your_trello_token  
# DATABASE_URL=sqlite:///./innoday.db  # or PostgreSQL URL

# For integration testing (optional)
cp .env.test.example .env.test
# See docs/INTEGRATION_TESTING.md for test configuration

Get API Credentials:

3. Running Services

# Use CLI for service management (recommended)
uv run innoday start all             # Start all services
uv run innoday start api             # Start API only
uv run innoday status                # Check service status

# Or run services directly
uv run python -m src.main api --reload          # REST API with auto-reload
uv run python -m src.main agent --reload        # AI Agent API with auto-reload  
uv run python -m src.main ui                    # Web Interface
uv run python -m src.main agent --cli           # Interactive CLI Agent

4. CLI Usage

# Service Management
innoday start all                    # Start all services
innoday stop api                     # Stop specific service
innoday restart agent                # Restart service
innoday status                       # Check service status
innoday logs ui                      # View service logs

# Configuration
innoday config init                  # Interactive setup
innoday config show                  # View current config
innoday config set api-url http://localhost:8002

# Agent Interaction
innoday agent chat "Help me plan the sprint"    # Send message
innoday agent chat "Continue work" --refresh    # Fresh conversation
innoday agent interactive                       # Interactive mode
innoday agent interactive --refresh             # Interactive, fresh start

# Project Management
innoday project create "Customer Portal" --description "Q1 features"
innoday project add-repo https://github.com/org/frontend --layer ui
innoday project list                 # List all projects
innoday project overview             # Show project dashboard

# Scope Management (NEW)
innoday scope create PROJECT_ID "Build e-commerce platform"
innoday scope get PROJECT_ID         # View current scope
innoday scope update PROJECT_ID SCOPE_ID --estimated-hours 320
innoday scope add-update PROJECT_ID question "What payment methods?"
innoday scope list-updates PROJECT_ID --pending-only
innoday scope finalize PROJECT_ID SCOPE_ID
innoday scope update-status PROJECT_ID active "Scope approved"

# Ticket Management
innoday tickets list                 # List all tickets
innoday tickets create "New feature" # Create ticket
innoday sync trello-board BOARD_ID   # Sync from Trello

# Authentication & Credentials  
innoday auth login                   # Setup authentication
innoday --help                       # Show all commands

๐Ÿงช Development & Testing

Running Tests

# Full test suite
uv run python -m pytest tests/ -v

# Specific test categories
uv run python -m pytest tests/test_api* -v      # API tests
uv run python -m pytest tests/test_cli* -v      # CLI tests  
uv run python -m pytest tests/test_agent* -v    # Agent tests

# Coverage report
uv run python -m pytest tests/ --cov=src --cov-report=html

Code Quality

# Format code
uv run black src/ tests/
uv run isort src/ tests/

# Lint code
uv run flake8 src/ tests/
uv run bandit -r src/

# Type checking
uv run mypy src/

๐Ÿ—๏ธ Architecture

InnoDay follows a modular architecture with clear separation of concerns:

src/
โ”œโ”€โ”€ api/              # REST API & external integrations
โ”œโ”€โ”€ agent/            # AI agent with HuggingFace integration
โ”œโ”€โ”€ cli/              # Command-line interface
โ”œโ”€โ”€ domain/           # Core business models (User, Ticket, Organization, Project)
โ”œโ”€โ”€ middleware/       # RBAC, authentication, validation
โ”œโ”€โ”€ routers/          # FastAPI route handlers  
โ”œโ”€โ”€ services/         # Business logic layer (ProjectService, etc.)
โ”œโ”€โ”€ tools/            # AI-powered automation utilities
โ”œโ”€โ”€ ui/               # Gradio web interface
โ””โ”€โ”€ main.py          # Service dispatcher

Key Technologies:

  • FastAPI: Modern, fast web framework with automatic API docs
  • SQLModel: Type-safe ORM with Pydantic integration
  • HuggingFace: AI agent capabilities and model integration
  • Gradio: Interactive web interface for AI interactions
  • Rich: Beautiful terminal output and CLI experience

Platform Organization

InnoDay uses a special Platform Organization that serves as the system administrator:

  • Singleton Entity: Only one platform organization exists per InnoDay instance
  • Special Privileges: Members with PLATFORM role have cross-organization access
  • Protected Entity: Cannot be modified or deleted through standard API endpoints
  • System Configuration: Holds platform-wide settings and billing information
  • First-time Setup: Automatically created during innoday config init

The platform organization ensures proper system administration while maintaining security boundaries between client organizations. All system-level operations and platform management require PLATFORM role membership.

๐Ÿ”’ Security & Licensing

Role-Based Access Control

  • Admin Users: Full system access, user management, license control
  • Member Users: Standard ticket and project access
  • Developer Users: Repository and project management capabilities
  • Organization Isolation: Multi-tenant data separation and security

Licensing Tiers

  • Pro: 1 user, 1 project, 3 tickets/day, email support
  • Max: 5 users, 5 projects, unlimited tickets, priority support
  • Unlimited: No restrictions, priority support

Haviland Software Clients

  • Free License: Included with Haviland Software services
  • Full Access: Complete platform capabilities for employees

๐Ÿšข CI/CD & Deployment

The project includes comprehensive GitHub Actions workflows:

Release Process:

  1. Update version in src/version.py
  2. Add changelog entry
  3. Create and push version tag
  4. GitHub Actions handles release automation

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Standards:

  • Python 3.11+ for type safety and performance
  • Black code formatting and isort imports
  • Comprehensive test coverage (pytest)
  • Type hints with mypy validation
  • Clear documentation and examples

๐Ÿ“ž Support

๐Ÿ“„ License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.


Built with โค๏ธ by Haviland Software

Haviland Software

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

innoday-0.59.0b0.tar.gz (407.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

innoday-0.59.0b0-py3-none-any.whl (446.7 kB view details)

Uploaded Python 3

File details

Details for the file innoday-0.59.0b0.tar.gz.

File metadata

  • Download URL: innoday-0.59.0b0.tar.gz
  • Upload date:
  • Size: 407.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for innoday-0.59.0b0.tar.gz
Algorithm Hash digest
SHA256 8ef4b29b2a6985f2d01f0febc03e0020c8fab6911589bde8fbfde7e4a262e8fb
MD5 ccc5dd5f855ef6d58f20428e7000825f
BLAKE2b-256 a5c377d014769422a65f36522ec0ad677c29ed71be060ac1c29c77d439e17a97

See more details on using hashes here.

File details

Details for the file innoday-0.59.0b0-py3-none-any.whl.

File metadata

  • Download URL: innoday-0.59.0b0-py3-none-any.whl
  • Upload date:
  • Size: 446.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for innoday-0.59.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 6abc6e7495029d2089176eb45dfa873fabf2b773927c3ccc86e7a68aa7f239e1
MD5 262f8e2d2d0042034339e3f03e5e31d1
BLAKE2b-256 467209b22220f8e0f78dc5b7432dcd289d75e478db3ec7997b9788ab13f7fb85

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page