@page docs_index Documentation Index

# Quadrix Documentation

**Project**: Quadrix - Dendritic Structure Analysis
**Version**: 0.1.0
**License**: See LICENSE file

## Overview

Quadrix is a library and applications for analyzing neuronal dendritic structures
using quadric-based geometric methods.

## Documentation Structure

### User Guides

- @subpage quickstart "Quick Start Guide" - Getting started guide
- @subpage quick_reference "Quick Reference" - Quick command reference
- @subpage gui_applications "GUI Applications" - Desktop and web GUI usage

### Features

- @subpage database "Database Features" - Database module documentation
- @subpage hexplot_cli "Hexplot CLI" - Hexplot command-line tools
- @subpage intersections "Self-Intersection Detection" - Intersection detection features
- @subpage swc_batch_processing "Batch SWC Processing" - Batch processing
- @subpage swc_import "SWC Import" - SWC file import
- @subpage batch_import_apps "Batch Import in Apps" - Batch import applications

### Architecture

- @subpage edge_contraction "Edge Contraction" - Simplification algorithm
- @subpage implementation "Implementation Summary" - Implementation summary

### Development

- @subpage install "Installing Rust and Just" - Installing Rust and Just
- @subpage build "Build Dependencies" - Build dependencies and setup
- @subpage performance "Performance Optimizations" - Performance optimizations
- @subpage testing "Test Report" - Testing strategy and reports

### API Documentation

- [doxygen/](doxygen/) - Generated API documentation (run `doxygen` to generate)

## Building the Project

See [BUILD.md](BUILD.md) for detailed build instructions.

Quick start:
```bash
# Build all binaries
make build-all

# Build specific features
make build-database
make build-web
make build-hexplot

# Run tests
make test-all
```

## Generating Documentation

### API Documentation (Doxygen)
```bash
# Generate Doxygen documentation
doxygen

# View generated docs
open docs/doxygen/html/index.html
```

### Markdown Documentation

All markdown files in this directory are compatible with Doxygen and can be
included in the generated documentation.

## Main Components

### Library (`src/`)
- **Core**: Vector operations, vertices, edges, dendrites
- **Quadrix**: Persistent quadrix, eigenvalue computation
- **I/O**: SWC file loading, CSV export
- **Algorithms**: Simplification, batch processing
- **Database**: SQLite-based persistence
- **Web**: Web server and API

### Binaries (`src/bin/`)
- **quadrix**: Desktop GUI application
- **hexplot**: Static PNG hexagonal plots
- **hexplot_interactive**: Interactive HTML plots
- **database_cli**: Database management tool
- **process_swc_directory**: Batch SWC processor
- **dendrite_server**: Web server
- **swc_info**: SWC file information tool

## Feature Flags

The project uses Cargo features for optional functionality:

- `python-bindings`: Python integration via PyO3
- `plotting`: Static plot generation
- `interactive`: Interactive HTML plots
- `database`: SQLite database support
- `web`: Web server and API (includes database)

## Quick Reference

### Common Commands

```bash
# Build with specific features
cargo build --features database
cargo build --features web
cargo build --features plotting,interactive

# Run specific binary
cargo run --bin hexplot --features plotting -- --help
cargo run --bin database_cli --features database -- --help

# Generate documentation
doxygen
cargo doc --no-deps --open

# Code quality
cargo clippy --all-features
cargo fmt
cargo test --all-features
```

## Contributing

See the main [README.md](../README.md) for contribution guidelines.

## References

- Main README: [../README.md](../README.md)
- Changelog: [../CHANGELOG.md](../CHANGELOG.md)
- Makefile: [../Makefile](../Makefile)
- Cargo Configuration: [../Cargo.toml](../Cargo.toml)
