Skip to content

Oktuple Backend Documentation

Overview

Oktuple is a comprehensive, real-time project management platform designed to be the most efficient and scalable solution for modern development teams. The system provides intelligent data synchronization, seamless integration capabilities, and real-time collaboration features.

Vision Summary

Oktuple aims to deliver a robust, real-time project management system that enables teams to:

  • Collaborate Effectively: Real-time updates and seamless communication
  • Scale Efficiently: Handle growing teams and complex project structures
  • Integrate Seamlessly: Connect with existing tools and workflows
  • Search Intelligently: Find information quickly across all project data
  • Customize Freely: Adapt the system to specific team needs

The platform targets sub-second response times, 99.9% uptime, and provides a modern microservices architecture with horizontal scaling capabilities. Built with TypeScript for type safety, Hono for performance, and Prisma for database efficiency, Oktuple represents a new paradigm in project management systems.

Architecture Principles

  1. Microservices: Separate concerns between project management and data sync
  2. Event-Driven: Real-time updates through WebSocket and logical replication
  3. Type Safety: Full TypeScript implementation
  4. Scalability: Horizontal scaling capabilities
  5. Fault Tolerance: Robust error handling and recovery
  6. Performance: Caching and optimized search capabilities
  7. Real-time Architecture: WebSocket-based live updates with logical replication
  8. Search Engine: Typesense for comprehensive search capabilities

System Components

Core Services

PMN - Project Management API

PMN is a modern, scalable backend API built with:

  • Framework: Hono (lightweight, fast web framework)
  • Database: PostgreSQL with Prisma ORM
  • Cache: Redis for performance optimization
  • Search: Elasticsearch for full-text search capabilities
  • Language: TypeScript for type safety
  • Authentication: Casdoor integration
  • Real-time: WebSocket support for live updates

Key Features:

  • Project hierarchy management (ENodes)
  • Issue tracking and management
  • Role-based access control
  • Template system for project structures
  • File attachment handling
  • Comment and collaboration features
  • Reporting and analytics
  • Excel import/export capabilities

Syncer - Data Synchronization Service

Syncer is a specialized service that provides:

  • Real-time Sync: PostgreSQL logical replication to Elasticsearch and Typesense
  • Search Engine Support: Simultaneous sync to multiple search engines
  • WebSocket Integration: Real-time notifications
  • Fault Tolerance: Automatic reconnection and error handling
  • Queue Management: Redis-based message queuing with BullMQ

Supported Data Types:

  • Project nodes (ENodes)
  • Issues and tasks
  • Addons and metadata
  • User relationships and permissions

External Services & Integrations

Identity & Access Management

  • Casdoor: IAM (Identity and Access Management) service providing user authentication, authorization, and single sign-on capabilities

File Management

  • Clourage: File storage service handling file uploads, storage, and retrieval for project attachments and documents

Communication & Notifications

  • Novu: Notification service managing multi-channel notifications including email, SMS, and push notifications
  • Reminder Service: Dedicated service for scheduling and managing project reminders and deadline notifications
  • Sure Send: Email/SMS service with failover mechanisms ensuring reliable message delivery

Workspace Management

  • Bounteco: Workspace management service handling team organization, workspace configuration, and user management across different project environments

Technology Stack

Backend (PMN)

  • Runtime: Node.js 18+
  • Framework: Hono
  • Database: PostgreSQL + Prisma
  • Cache: Redis
  • Search: Elasticsearch
  • Validation: Zod
  • Testing: Vitest
  • Code Quality: ESLint + Prettier

Data Sync (Syncer)

  • Runtime: Node.js 18+
  • Database: PostgreSQL with logical replication
  • Search Engine: Typesense
  • Queue: Redis + BullMQ
  • Real-time: WebSocket
  • Testing: Vitest

Documentation Structure

This documentation is organized into several key areas:

  • Architecture: System design and component relationships
  • Security: Authentication, authorization, and data protection
  • Frontend: UI considerations and integration points
  • Testing: Quality assurance and testing strategies
  • Future Roadmap: Planned features and improvements

For detailed information about each component, please refer to the specific sections in this documentation.