Developing Guide
Welcome to the Developing section of the Concept Mapping Tool documentation. This section contains information for developers working on the codebase, including component documentation, architecture details, setup instructions, development guides, and planning documents.
Sections
Components
- Components Overview - React component API documentation
- Core components (ConceptNode, ConceptEditor, RelationshipEdge, etc.)
- Layout components (AppLayout, Sidebar, SearchBox)
- Presence components (PresenceAvatar, PresenceCursor, EditingHighlight)
Architecture
- Architecture Overview - System design and technical architecture
- Data model and schema design
- State management patterns
- InstantDB integration
- Real-time synchronization
- Layout algorithms
- Performance considerations
API Reference
- API Reference - TypeDoc-generated API documentation for all components, hooks, and utilities
Setup & Configuration
- Building the Project - Getting started: cloning, tools, and building
- Docusaurus Setup - Documentation site setup and configuration
- InstantDB Setup - Database setup and configuration
Contributing
- Contributing Guide - How to contribute: forking, pull requests, and issues
Development Guides
- React Flow Optimization - Performance optimization analysis and solutions
- Sharing System Review - Comprehensive review of the sharing system
Planning Documents
- Command Pattern Plan - Implementation plan for command pattern
- Concept Map Comparison Plans - Comparison plans from different AI models
- Perspective Edit Plan - Planning document for perspective editing
- Implementation Plan - Overall project implementation plan
- Questions & Answers - Project questions and clarifications
Getting Started
If you're new to the project, start with the Building the Project guide to get your development environment ready.
Contributing
We welcome contributions! See the Contributing Guide for information on:
- Forking the repository
- Submitting pull requests
- Reporting bugs and feature requests via GitHub Issues
- Tackling open issues
When contributing to the project:
- Review the relevant development guides
- Follow the patterns and best practices documented here
- Update documentation when making significant changes