Prerequisites
Required
| Tool | Version | Purpose |
|---|---|---|
| .NET SDK | 8.0+ | Core application |
| Node.js | 18+ | Web frontend |
| pnpm | Latest | Package management |
| Neo4j | 5.x | Graph database |
| Git | Latest | Version control |
Optional (for GPU development)
| Tool | Version | Purpose |
|---|---|---|
| Rust | 1.70+ | GPU layout server |
| Metal SDK | Latest | macOS GPU |
| Vulkan SDK | Latest | Linux/Windows GPU |
Step 1: Clone the Repository
Step 2: Set Up Neo4j
- Docker (Recommended)
- Neo4j Desktop
Step 3: Configure Environment
Step 4: Build and Test
Step 5: Set Up Frontend
Step 6: Set Up GPU Server (Optional)
Running the Full Stack
Option A: start.sh Script
- Neo4j (if not running)
- GraphPU server
- API server
- Web frontend
Option B: Manual Start
Terminal 1 - API:Project Structure
IDE Setup
Visual Studio Code
Recommended extensions:- C# Dev Kit
- ESLint
- Prettier
- rust-analyzer (for GPU development)
JetBrains Rider
- Open
CodeGraph.sln - Enable “Restore NuGet packages on build”
- Configure Neo4j connection in run configuration
Visual Studio
- Open
CodeGraph.sln - Set
src/adapters/driving/apias startup project - Configure environment variables in launchSettings.json
Debugging
API Server
Frontend
Tests
Common Tasks
Adding a New Overlay Plugin
- Create project in
plugins/ - Implement
IOverlayPlugin - Register in
Program.cs - Add tests
Adding an API Endpoint
- Add method to appropriate controller in
src/adapters/driving/api/Controllers/ - Add corresponding port method if needed
- Add tests
- Update API documentation
Modifying the Frontend
- Edit files in
src/adapters/driving/web/src/ - Hot reload will update automatically
- Add tests in
__tests__/
Troubleshooting
Build fails with package errors
Build fails with package errors
Neo4j connection refused
Neo4j connection refused
- Check Neo4j is running:
docker psor Neo4j Desktop - Verify credentials in
.env - Check port 7687 is not blocked
Frontend won't start
Frontend won't start
GPU server won't build
GPU server won't build
- Ensure Rust is installed:
rustc --version - macOS: Xcode command line tools installed
- Linux: Vulkan SDK installed
Getting Help
- Check existing issues on GitHub
- Ask in GitHub Discussions
- Review the architecture docs
- Read the codebase - it’s well documented!