An interactive Gamma Exposure (GEX) analysis tool for financial research, rebuilt from the ground up with a modern, cross-platform .NET stack.
This is the next-generation version of the GEX Visualizer, migrating from a JavaScript/Python implementation to a high-performance, self-contained application using .NET MAUI and Blazor WebAssembly.
GexVisor analyzes Gamma Exposure (GEX) across options markets to provide insights into market dynamics and potential volatility drivers. The tool visualizes complex derivatives data through interactive charts and simulation tools.
- Framework: .NET MAUI (cross-platform desktop/mobile)
- UI: Blazor WebAssembly (components and layouts)
- Language: C# (.NET 10.0 LTS)
- Data Store: Client-side SQLite (embedded database)
- Charting: SVG rendering via Blazor components
- .NET 10 SDK (10.0.102 or later)
- Node.js 18+
- Visual Studio 2022, Visual Studio Code, or JetBrains Rider
- Git
- Clone the repository:
git clone https://github.com/iAmGiG/GexVisor.git
cd GexVisor- Restore dependencies:
dotnet restore- Build the project:
dotnet build- Run the application:
# Run Blazor WebAssembly app (UI only - uses static demo data)
dotnet run --project src/GexVisor.UI
# OR run the full application with API backend
dotnet run --project src/GexVisor.ApiThe application will be available at https://localhost:5001 (or the port shown in the console output).
GexVisor/
├── src/ # Source code
│ ├── GexVisor.UI/ # Blazor WebAssembly UI
│ ├── GexVisor.Core/ # Core models and business logic
│ └── GexVisor.Api/ # ASP.NET Core API backend
├── tests/ # Unit and integration tests
│ ├── GexVisor.UI.Tests/ # UI component and service tests
│ └── GexVisor.Core.Tests/ # Core business logic tests
├── tools/ # Utility scripts
│ └── export_data.py # SQLite → JSON data export
├── docs/ # Documentation
│ └── research-visuals/ # Interactive research visualizations
├── .editorconfig # Code style settings
├── GexVisor.NET.sln # Solution file
├── CONTRIBUTING.md # Development guide
└── README.md # This file
This project enforces code quality through:
- EditorConfig: Consistent formatting across editors (.NET, Markdown, YAML, JSON)
- Pre-commit hooks: Automatic validation before commits (Husky.Net)
- GitHub Actions: CI pipeline (linting, build, code quality)
See CONTRIBUTING.md for detailed development instructions.
# Run all tests
dotnet test
# Run specific test project
dotnet test tests/GexVisor.Core.Tests # Core business logic tests (17 tests)
dotnet test tests/GexVisor.UI.Tests # UI component tests (101 tests)
# Build for release
dotnet build --configuration Release
# Watch mode for development
dotnet watch --project src/GexVisor.UITest Coverage (118 total):
- Core Tests (17): JournalFramework, OptionsLog P&L calculations
- UI Tests (101): Services, components, comparison dashboard, caching
Branch naming convention:
feature/description- New featuresfix/description- Bug fixesenhancement/description- Improvements to existing featuresresearch/description- Research or experimental work
See CONTRIBUTING.md for commit message guidelines.
This project uses GitHub CLI (gh) for streamlined issue and PR management:
# Create an issue
gh issue create --title "Bug: Description" --label "bug" --body "Details..."
# List open issues
gh issue list --state open --limit 20
# Close an issue with a comment
gh issue close 123 --comment "Fixed in commit abc1234"
# Create a pull request
gh pr create --title "Feature: Description" --body "Changes made..."
# View PR details
gh pr view 456Note: The TaskBoard (/tasks) integrates with GitHub Projects v2, allowing you to sync
local tasks with your GitHub project board. See
docs/GITHUB_INTEGRATION.md for setup instructions.
- Project infrastructure and CI/CD
- .editorconfig and pre-commit hooks
- .NET 10 LTS upgrade
- GEX data models (GexDataPoint, GexTimeline, GexState)
- GexStateService - reactive state management
- GexDataService - JSON data loading
- GexHeader component - metrics display
- GexSidebar component - controls and parameters
- PriceSparkline component - interactive price history
- GexChart component - dual-mode SVG rendering with axis labels
- Keyboard shortcuts (Space, arrows, Home/End, R, F, ?)
- Real-time data simulation (auto-play timer)
- Client-side data persistence (localStorage) (#44)
- Keyboard shortcuts help overlay (#34)
- Pattern annotations for LLM training data (#66)
- Research Arcade page with research visualizations
- Export Chart as PNG (#33)
- Research Notebook - document observations and findings (#64)
- Paper Trading Journal - track theoretical trades (#65)
- Backtest Results Tracker with comparison (#67)
- Research Task Board - Kanban-style task management (#68)
- GitHub Projects integration - Kanban board sync (#69-73)
- Accessibility improvements - ARIA labels (#35)
- UI consistency - unified patterns across all pages
- Mobile responsive layout (#32)
- CSS migration to shared variables (#17)
- GitVersion semantic versioning (#10)
- Pattern validation progress tracker (#78)
- Regime transition timeline (#79)
- DateOnly type migration (#90)
- OptionsLog P&L bug fix (#91)
- OptionsLog unit tests - 17 comprehensive tests (#93)
- DateRange DateOnly refactoring (#94)
- SQLite WASM integration (#18) - research complete, awaiting database
- StatusMapper pattern optimization (#95)
- Add SQLite database as static asset (#11)
The TaskBoard (/tasks) integrates with GitHub Projects v2, allowing you to sync research
tasks with your GitHub project boards:
- OAuth Authentication - Secure device flow login
- Project Selector - Choose from your GitHub Projects v2 boards
- Dynamic Kanban - View tasks organized by GitHub's status columns
- Unified View - Normalize statuses across different project naming conventions
- Custom Mappings - Override auto-detected status mappings
- Navigate to
/tasks - Click "GitHub: Connect" and follow OAuth flow
- Select a project from the dropdown
- Switch between tabs:
- Local Tasks - Your local task board
- GitHub: {Project} - GitHub's native columns
- Unified View - Normalized 3-column view (Backlog/In Progress/Done)
See docs/GITHUB_INTEGRATION.md for detailed setup and architecture documentation.
GexVisor includes interactive research visualizations showcasing the analysis tools
and methodologies. Access them at /docs/research-visuals/.
Contributions welcome! Please review CONTRIBUTING.md for:
- Development setup
- Code standards and naming conventions
- Pre-commit hooks and GitHub Actions workflow
- Testing requirements
- Commit message guidelines
- Pull request process
Phase: Active Development - Infrastructure
The GEX Visualizer and all research journal features are complete:
- GEX Visualizer (
/gex) - Interactive gamma exposure visualization - Research Arcade (
/arcade) - Research visualizations hub - Research Notebook (
/notebook) - Document observations and hypotheses - Paper Trading (
/trading) - Log theoretical trades with P&L tracking - Backtest Results (
/backtests) - Compare strategy performance - Research Tasks (
/tasks) - Kanban-style task board
Currently working on SQLite WASM integration for persistent data storage.
This project is licensed under the MIT License. See LICENSE file for details.
Review the CONTRIBUTING.md guide or check existing issues for discussion threads.