A .NET Core document management system with intelligent document classification capabilities using ML.NET.
DocumentManagementML is an on-premises document management system with the following features:
- Secure document storage and retrieval
- Document versioning
- Metadata management
- Automated document classification through ML.NET
- Clean Architecture implementation
Version: 0.9.0 (Beta)
The project is in Phase 1 (Core Domain Layer) which is approximately 70% complete. We have successfully implemented:
- Core domain entities and repositories
- Basic service implementations
- Unit tests for key components
- Placeholder ML implementation
- Clean Architecture: The project follows a clean architecture pattern with clear separation of concerns.
- Document Classification: Uses ML.NET to classify documents based on their content.
- Versioning: Tracks document changes with full version history.
- Metadata Management: Flexible metadata system for document attributes.
- Secure Storage: Ensures documents are stored securely with access controls.
- API-First Design: RESTful API for all operations, supporting client applications.
The project is organized into several layers following Clean Architecture principles:
- Domain Layer: Core business entities and interfaces
- Application Layer: Business logic and services
- Infrastructure Layer: Technical implementations (DB, file storage, ML)
- API Layer: RESTful API endpoints
- Shared Layer: Common utilities and constants
- .NET 9.0 SDK (Preview)
- SQL Server (for production) or SQLite (for development)
- Visual Studio 2025 or Visual Studio Code with C# extensions
- Clone the repository
git clone https://github.com/your-repository/DocumentManagementML.git
cd DocumentManagementML- Install .NET 9.0 SDK
On Linux:
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 9.0On Windows:
# Run PowerShell as Administrator
Invoke-WebRequest -Uri https://dot.net/v1/dotnet-install.ps1 -OutFile dotnet-install.ps1
./dotnet-install.ps1 -Channel 9.0- Restore dependencies
dotnet restore- Configure the application
Update the connection string in src/DocumentManagementML.API/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DocumentManagementML;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}- Build the application
dotnet build- Run the application
cd src/DocumentManagementML.API
dotnet run- Verify the installation
Navigate to https://localhost:5001/swagger to access the Swagger UI for API documentation.
- Setup the database
cd src/DocumentManagementML.API
dotnet ef database update- Run the tests
dotnet testDocumentManagementML/
├── src/
│ ├── DocumentManagementML.Domain/ # Core domain entities and interfaces
│ ├── DocumentManagementML.Application/ # Application services and DTOs
│ ├── DocumentManagementML.Infrastructure/ # Implementation of repositories and external services
│ ├── DocumentManagementML.API/ # API controllers and configuration
│ └── DocumentManagementML.Shared/ # Shared utilities and constants
├── tests/
│ ├── DocumentManagementML.UnitTests/ # Unit tests for the application
│ └── DocumentManagementML.IntegrationTests/ # Integration tests
├── Project Documentation/ # Design documents and project plans
└── README.md # This file
-
Phase 1: Core Domain Layer (70% Complete)
- Domain entities
- Repository interfaces
- Basic file storage
- Unit tests
-
Phase 2: Application Services Layer (5% Complete)
- CRUD operations
- Exception handling
- Service implementations
- Transaction management
-
Phase 3: API Layer (10% Complete)
- REST API endpoints
- Validation
- Error handling
- Swagger documentation
-
Phase 4: ML Implementation (5% Complete)
- Document classification
- Text extraction
- Model training and evaluation
- Integration with document services
-
Phase 5: Deployment and Production (Planned)
- Containerization
- CI/CD pipeline
- Monitoring and logging
- Performance optimization
-
Phase 6: User Experience (Planned)
- Web UI
- Reporting
- Workflow automation
The project is currently in a private development phase. If you're interested in contributing, please contact the project maintainer.
This software is proprietary and confidential. Unauthorized copying or use is prohibited.
Copyright (c) 2025 Marco Santiago All Rights Reserved
This code is proprietary and confidential. Unauthorized copying, distribution, or use of this code, in any form, is strictly prohibited.