Skip to content

Latest commit

History

497 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

MinKy - Team Knowledge Intelligence Platform

Turn tacit knowledge into searchable, connected team intelligence

Features | Quick Start | Architecture | API Reference | Documentation | Contributing


Overview

MinKy is a knowledge intelligence platform designed for small teams (3-9 members) that transforms tacit knowledge into explicit, searchable assets. Unlike traditional document management systems that rely on manual tagging and categorization, MinKy uses AI to understand, connect, and surface relevant knowledge through natural language conversations.

The Problem

  • Team knowledge is scattered across Slack, emails, documents, and individual minds
  • Manual tagging is inconsistent and rarely maintained
  • Finding relevant past decisions or solutions requires knowing where to look
  • When team members leave, their knowledge leaves with them

The Solution

MinKy captures knowledge from various sources, uses AI to understand context and relationships, stores it with vector embeddings, and enables natural language search through RAG (Retrieval-Augmented Generation).


Features

Phase 1: Knowledge Understanding (Current)

  • AI Document Analysis: Claude analyzes uploaded documents to extract topics, summaries, and insights
  • Vector Embeddings: Documents stored with pgvector for semantic similarity search
  • Automatic Connections: Related documents linked based on content similarity, not manual tags

Phase 2: Conversational Search (In Progress)

  • Natural Language Q&A: Ask questions in plain language, get answers with source citations
  • RAG-Powered Search: Combines vector search with AI generation for accurate responses
  • Context-Aware Responses: Understands your team's terminology and context

Phase 3: Knowledge Connections (Planned)

  • Knowledge Graph: Visualize relationships between documents and concepts
  • Smart Recommendations: "People who found this useful also looked at..."
  • Gap Detection: Identify undocumented areas in your knowledge base

Additional Features

  • Multi-Source Ingestion: Markdown, Safari Clipper, Slack messages
  • Korean Language Support: Full Korean NLP with MeCab integration
  • OCR Processing: Extract text from images and scanned documents
  • Real-Time Collaboration: WebSocket-based collaborative editing
  • Analytics Dashboard: Track knowledge usage and team engagement
  • Document Workflows: Approval processes with customizable templates
  • Version Control: Full document history with diff and restore

Quick Start

Prerequisites

  • Rust 1.75+ (for backend)
  • Node.js 18+ (for frontend)
  • PostgreSQL 15+ with pgvector extension
  • OpenSearch 2.x (optional, for full-text search)

1. Clone the Repository

git clone https://github.com/hephaex/minky.git
cd minky

2. Set Up the Database

# Create PostgreSQL database
createdb minky
# Enable pgvector extension
psql minky -c "CREATE EXTENSION vector;"

3. Configure Environment

# Copy example configuration
cp minky-rust/.env.example minky-rust/.env
# Edit with your settings
nano minky-rust/.env

Key configuration options:

DATABASE_URL=postgres://user:password@localhost:5432/minkyJWT_SECRET=your-secure-secret-keyANTHROPIC_API_KEY=sk-ant-...# For AI featuresOPENAI_API_KEY=sk-...# For embeddings

4. Run Database Migrations

cd minky-rust
cargo install sqlx-cli
sqlx migrate run

5. Start the Backend

cd minky-rust
cargo run
# Server starts at http://localhost:8000

6. Start the Frontend

cd frontend
npm install
npm start
# App opens at http://localhost:3000

7. Verify Installation

# Check backend health
curl http://localhost:8000/health
# Expected response:# {"status":"healthy","version":"0.1.0"}

For detailed setup instructions, see Docs/GETTING_STARTED.md


Architecture

+-------------------+ +-------------------+ +-------------------+
| Frontend | | Rust Backend | | PostgreSQL |
| (React) |<--->| (Axum) |<--->| + pgvector |
| | | | | |
+-------------------+ +--------+----------+ +-------------------+
|
+--------------+--------------+
| | |
+-----v----+ +------v-----+ +-----v-----+
| Claude | | OpenSearch | | OpenAI |
| (AI) | | (Search) | | Embedding |
+----------+ +------------+ +-----------+

Technology Stack

LayerTechnologyPurpose
FrontendReact 18Single-page application
BackendRust + AxumHigh-performance API server
DatabasePostgreSQLPrimary data storage
Vector DBpgvectorSemantic embeddings
SearchOpenSearchFull-text search
AIClaude APIDocument understanding, Q&A
EmbeddingOpenAI APIVector generation

Key Components

  • Document Pipeline: Ingest -> AI Analysis -> Embed -> Store -> Index
  • RAG Search: Query -> Vector Search -> Context Assembly -> AI Generation
  • Real-time: WebSocket for collaborative editing

For detailed architecture, see Docs/ARCHITECTURE.md


Project Structure

minky/
├── minky-rust/ # Rust backend (Active)
│ ├── src/
│ │ ├── models/ # Data models (40+ types)
│ │ ├── routes/ # API endpoints (25+ routes)
│ │ ├── services/ # Business logic (20+ services)
│ │ └── middleware/ # Auth, rate limiting
│ └── migrations/ # SQL migrations
│
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # UI components
│ │ ├── pages/ # Page views
│ │ ├── services/ # API clients
│ │ └── hooks/ # Custom React hooks
│ └── public/
│
├── app/ # Python backend (Legacy)
├── Docs/ # Documentation
└── .claude/ # Claude Code agents & tools

API Reference

Authentication

EndpointMethodDescription
/api/auth/registerPOSTRegister new user
/api/auth/loginPOSTUser login
/api/auth/refreshPOSTRefresh access token
/api/auth/meGETGet current user profile

Documents

EndpointMethodDescription
/api/documentsPOSTCreate document
/api/documentsGETList documents (pagination, search)
/api/documents/:idGETGet document with AI analysis
/api/documents/:idPUTUpdate document
/api/documents/:idDELETEDelete document

Knowledge Search (RAG)

EndpointMethodDescription
/api/search/askPOSTNatural language Q&A
/api/search/semanticPOSTVector similarity search
/api/search/koreanPOSTKorean text search

Embeddings

EndpointMethodDescription
/api/embeddingsPOSTGenerate embedding
/api/embeddings/document/:idPOSTEmbed document
/api/embeddings/searchPOSTSearch by embedding

AI Analysis

EndpointMethodDescription
/api/understanding/:idGETGet document understanding
/api/understanding/:id/analyzePOSTAnalyze document
/api/ai/suggestionsPOSTGet AI suggestions

Additional Endpoints

Tags & Categories
EndpointMethodDescription
/api/tagsGETList all tags
/api/tagsPOSTCreate tag
/api/tags/:slugGET/PUT/DELETETag CRUD
/api/categoriesGET/POSTCategory management
Comments & Ratings
EndpointMethodDescription
/api/documents/:id/commentsGET/POSTDocument comments
/api/comments/:idPUT/DELETEComment CRUD
/api/documents/:id/ratingGET/POST/DELETEDocument ratings
Workflows
EndpointMethodDescription
/api/documents/:id/workflowGETGet workflow info
/api/documents/:id/workflow/actionPOSTPerform workflow action
/api/workflows/pendingGETPending reviews
/api/workflow-templatesGET/POSTWorkflow templates
Admin & Security
EndpointMethodDescription
/api/admin/usersGETList users (admin)
/api/admin/statsGETSystem statistics
/api/security/statusGETSecurity status
/api/security/logsGETSecurity logs

Full API documentation: Docs/API_DOCUMENTATION.md


Environment Variables

Required

VariableDescription
DATABASE_URLPostgreSQL connection string
JWT_SECRETJWT signing key (min 32 chars)

Optional

VariableDefaultDescription
HOST127.0.0.1Server bind address
PORT8000Server port
DATABASE_MAX_CONNECTIONS10Connection pool size
JWT_EXPIRATION_HOURS24Token expiration
OPENSEARCH_URL-OpenSearch server
OPENAI_API_KEY-For embeddings
ANTHROPIC_API_KEY-For AI analysis
RUST_LOGinfoLogging level

Documentation

DocumentDescription
GETTING_STARTED.mdDetailed setup guide
ARCHITECTURE.mdSystem architecture deep-dive
API_DOCUMENTATION.mdAPI reference
SECURITY.mdSecurity guidelines
CLAUDE.mdProject context for AI assistants

Development

Running Tests

# Backend testscd minky-rust
cargo test# Frontend testscd frontend
npm test

Code Quality

# Rust linting
cargo clippy
# Rust formatting
cargo fmt
# Frontend lintingcd frontend
npm run lint

Development Commands (Claude Code)

This project includes Claude Code agents for development automation:

/pm # Start PM agent for task management
/next # Get next priority task
/ci start # Start CI/CD session
/health # Check system health
/review # Request code review

Contributing

We welcome contributions! Please see our contribution guidelines:

Development Workflow

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

Commit Convention

feat: New feature
fix: Bug fix
refactor: Code refactoring
docs: Documentation
test: Tests
chore: Maintenance

Code Standards

  • Rust: Follow cargo clippy recommendations
  • React: ESLint + Prettier formatting
  • Tests: Aim for 80% coverage
  • Documentation: Update docs with code changes

Roadmap

  • Phase 0: Rust backend migration, Agent system
  • Phase 1: Document Understanding (Current)
    • pgvector integration
    • Document analysis pipeline
    • RAG search API
  • Phase 2: Conversational Search
    • Chat interface
    • Streaming responses
  • Phase 3: Knowledge Connections
    • Knowledge graph visualization
    • Auto-linking
  • Phase 4: Tacit Knowledge Capture
    • Slack integration
    • Conversation mining

Legacy Python Backend

The original Python/Flask backend is available in the app/ directory for reference. It includes:

  • Flask API with 140+ endpoints
  • SQLAlchemy ORM
  • JWT authentication
  • Korean NLP support
  • OpenSearch integration

The Rust backend (minky-rust/) is the active development target with improved performance and type safety.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments


Built with care for teams who value their collective knowledge.

About

Markdown service for Korean

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages