MarketAlly.AIPlugin.Extensions/MarketAlly.ProjectDetector
David Friedel 5cccf3c374 Initial commit - MarketAlly.AIPlugin extension modules
Includes:
- MarketAlly.AIPlugin.Analysis
- MarketAlly.AIPlugin.ClaudeCode
- MarketAlly.AIPlugin.Context
- MarketAlly.AIPlugin.DevOps
- MarketAlly.AIPlugin.Learning
- MarketAlly.AIPlugin.Refactoring
- MarketAlly.AIPlugin.Security
- MarketAlly.AIPlugin.All
- MarketAlly.ProjectDetector
- Test projects

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 22:14:33 +00:00
..
Detectors Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
MarketAlly.ProjectDetector.csproj Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
ProjectAnalysis.cs Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
ProjectDetectorOptions.cs Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
ProjectFileLocator.cs Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
ProjectType.cs Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
ProjectTypeDetector.cs Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
README.md Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00
icon_pd.png Initial commit - MarketAlly.AIPlugin extension modules 2025-12-27 22:14:33 +00:00

README.md

MarketAlly.ProjectDetector

A comprehensive project type detection library for various programming languages and frameworks.

Overview

MarketAlly.ProjectDetector provides intelligent detection of project types based on file structure, dependencies, and configuration files. It supports detection for:

  • .NET projects (Web API, Blazor, MAUI, WPF, Console, etc.)
  • Node.js projects (React, Vue, Angular, Next.js, Express)
  • Python projects (Django, Flask, generic Python)
  • Java projects (Maven, Gradle)
  • Other languages (Go, Rust)
  • Specialized projects (Functions, Workflows, Tools, Plugins)
  • Container and Infrastructure projects

Usage

using MarketAlly.ProjectDetector;
using Microsoft.Extensions.Logging;

// Create detector with logger
var logger = loggerFactory.CreateLogger<ProjectTypeDetector>();
var detector = new ProjectTypeDetector(logger);

// Detect project type
var projectType = detector.DetermineProjectType("MyProject", "/path/to/project");

Project Types

The library defines the following project types in the ProjectType enum:

Standard Types

  • Standalone - Single-purpose applications
  • API - RESTful APIs and web services
  • WebApp - Web applications with UI
  • MobileApp - Mobile applications (MAUI, Xamarin)
  • Library - Reusable libraries and packages
  • Service - Background services and workers
  • Tests - Test projects

Specialized Types

  • Database - Database and migration projects
  • Function - Serverless functions (Azure Functions, AWS Lambda)
  • Tool - Command-line tools and utilities
  • Plugin - Plugin and extension projects
  • Infrastructure - Infrastructure as Code projects
  • ContainerApp - Containerized applications
  • ChatBot - Bot framework projects
  • Workflow - Workflow and orchestration projects

Language-Specific Types

  • Node.js: ReactApp, VueApp, AngularApp, NextJsApp, NodeJsApi, NodeJsApp
  • Python: DjangoApp, FlaskApp, PythonApp
  • Java: JavaMavenProject, JavaGradleProject
  • Other: GoApp, RustApp, SwiftApp, KotlinApp

Desktop Types

  • WpfApp - Windows Presentation Foundation
  • WinFormsApp - Windows Forms
  • AvaloniaApp - Cross-platform Avalonia
  • ElectronApp - Electron desktop apps

Game Development

  • UnityProject
  • UnrealProject
  • GodotProject

Detection Process

  1. File Analysis: Examines project files (.csproj, package.json, pom.xml, etc.)
  2. Dependency Analysis: Checks installed packages and references
  3. Structure Analysis: Looks at folder structure and file patterns
  4. Confidence Scoring: Each detector provides a confidence score
  5. Priority Selection: Returns the highest priority match

Architecture

The library uses a detector pattern where each project type has its own detector implementing IProjectTypeDetector. Detectors are evaluated in priority order:

  1. Solution files (highest priority)
  2. Container projects
  3. Specific frameworks (MAUI, React, Django)
  4. Technology-specific (Functions, Workflows)
  5. General categories (API, WebApp)
  6. Fallback detectors (lowest priority)

Integration

This library is designed to be shared between:

  • MarketAlly.AIPlugin
  • RefactorIQ
  • Other MarketAlly ecosystem projects

License

Copyright (c) MarketAlly. All rights reserved.