Thank you for your interest in contributing to the CodeMatrix visualizer! This document provides guidelines and information for contributors.
- Node.js 18+ and npm for package management
- Git for version control
- A modern web browser (Chrome, Firefox, Safari, or Edge)
- Code editor (VS Code recommended)
# Clone the repository
git clone https://github.com/hypernetix/codematrix.git
cd codematrix
# Install dependencies for both the package and app
npm install
# Start the development server
npm run devThe application will start at http://localhost:3000.
git checkout -b feature/your-feature-nameUse descriptive branch names:
feature/add-heatmap-viewfix/self-referencing-edgesdocs/update-json-formatfeat/export-diagram-pdf
Follow the coding standards and patterns used in the project.
- Test the visualizer with your changes:
npm run dev- Build the package to ensure no build errors:
cd packages/code-matrix-visualizer
npm run build- Test with different CodeMatrix JSON files to ensure compatibility
Follow a structured commit message format:
<type>(<module>): <description>
<type>: change category (see table below)<module>(optional): the area touched (e.g., spec, examples, schemas)<description>: concise, imperative summary
Accepted commit types:
| Type | Meaning |
|---|---|
| feat | New feature |
| fix | Bug fixes |
| tech | Technical change or refactoring |
| docs | Documentation updates |
| test | Adding or modifying tests |
| style | Formatting changes (whitespace, code formatting, etc.) |
| chore | Misc tasks (tooling, scripts, dependencies) |
| perf | Performance improvements |
| breaking | Backward incompatible changes |
Examples:
feat(visualizer): add export diagram as PDF feature
fix(edges): filter out self-referencing edges
docs(readme): update JSON format specification
perf(layout): optimize grid layout algorithm
Best practices:
- Keep the title concise (ideally < 50 chars)
- Use imperative mood (e.g., "Fix schema", not "Fixed schema")
- Make commits atomic (one logical change per commit)
- Add details in the body when necessary (what/why, not how)