| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
A modern, enterprise-grade document processing platform built with .NET 8 and Blazor that leverages AWS Bedrock AI for intelligent document analysis, classification, and metadata extraction.
The application follows Clean Architecture principles with clear separation of concerns:
DocumentProcessor/
├── src/
│ ├── DocumentProcessor.Core/ # Domain entities and interfaces
│ ├── DocumentProcessor.Infrastructure/ # Data access, AI services, external integrations
│ ├── DocumentProcessor.Application/ # Business logic and services
│ └── DocumentProcessor.Web/ # Blazor UI and API endpoints
└── tests/
└── DocumentProcessor.Tests/ # Unit and integration tests
Clone the repository
git clone https://github.com/yourusername/document-processor.git
cd document-processorConfigure AWS Credentials
Set up your AWS credentials using one of these methods:
Configure Application Settings
Update src/DocumentProcessor.Web/appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DocumentProcessorDB;Trusted_Connection=True;"
},
"BedrockOptions": {
"Region": "us-west-2",
"ClassificationModelId": "anthropic.claude-3-haiku-20240307-v1:0",
"ExtractionModelId": "anthropic.claude-3-sonnet-20240229-v1:0",
"MaxTokens": 2000,
"Temperature": 0.3
}
}Set up the database
dotnet ef database update -p src/DocumentProcessor.Infrastructure -s src/DocumentProcessor.WebRun the application
dotnet run --project src/DocumentProcessor.WebAccess the application
Navigate to https://localhost:7266 or http://localhost:5197
src/
├── DocumentProcessor.Core/ # Domain layer
│ ├── Entities/ # Domain models
│ │ ├── Document.cs # Main document entity
│ │ ├── Classification.cs # Classification results
│ │ ├── DocumentMetadata.cs # Extracted metadata
│ │ └── ProcessingQueue.cs # Queue management
│ └── Interfaces/ # Core contracts
│ ├── IDocumentProcessor.cs
│ ├── IAIProcessor.cs
│ └── IDocumentRepository.cs
│
├── DocumentProcessor.Infrastructure/ # Infrastructure layer
│ ├── AI/ # AI processing services
│ │ ├── BedrockAIProcessor.cs # AWS Bedrock integration
│ │ └── DocumentContentExtractor.cs # Content extraction
│ ├── Data/ # EF Core context
│ │ └── ApplicationDbContext.cs
│ ├── Repositories/ # Data access
│ └── BackgroundTasks/ # Queue processing
│
├── DocumentProcessor.Application/ # Application layer
│ └── Services/ # Business logic
│ ├── DocumentProcessingService.cs
│ └── BackgroundDocumentProcessingService.cs
│
└── DocumentProcessor.Web/ # Presentation layer
├── Components/ # Blazor components
│ ├── Pages/ # Page components
│ │ ├── Dashboard.razor # Main dashboard
│ │ ├── DocumentUpload.razor # Upload interface
│ │ └── DocumentList.razor # Document management
│ └── Layout/ # Layout components
├── Hubs/ # SignalR hubs
└── wwwroot/ # Static assets
Configure storage in appsettings.json:
{
"DocumentStorage": {
"Provider": "LocalFileSystem",
"LocalFileSystem": {
"RootPath": "uploads",
"MaxFileSizeInMB": 100,
"AllowedExtensions": [".pdf", ".doc", ".docx", ".txt", ".rtf", ".odt"]
},
"S3": {
"BucketName": "document-processor-bucket",
"Region": "us-east-1",
"UsePresignedUrls": true
},
"FileShare": {
"NetworkPath": "\\\\fileserver\\documents",
"MaxFileSizeInMB": 100
}
}
}{
"BedrockOptions": {
"Region": "us-west-2",
"ClassificationModelId": "anthropic.claude-3-haiku-20240307-v1:0",
"ExtractionModelId": "anthropic.claude-3-sonnet-20240229-v1:0",
"SummarizationModelId": "anthropic.claude-3-haiku-20240307-v1:0",
"MaxTokens": 2000,
"Temperature": 0.3,
"TopP": 0.9,
"MaxRetries": 3,
"RetryDelayMilliseconds": 1000,
"EnableDetailedLogging": true,
"UseSimulatedResponses": false
}
}Run the test suite:
# Run all tests
dotnet test
# Run with coverage
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
# Run specific test project
dotnet test tests/DocumentProcessor.TestsFROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["src/DocumentProcessor.Web/DocumentProcessor.Web.csproj", "DocumentProcessor.Web/"]
RUN dotnet restore "DocumentProcessor.Web/DocumentProcessor.Web.csproj"
COPY . .
WORKDIR "/src/DocumentProcessor.Web"
RUN dotnet build "DocumentProcessor.Web.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DocumentProcessor.Web.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DocumentProcessor.Web.dll"]Deploy to AWS using Elastic Beanstalk or ECS:
# Using AWS CLI for Elastic Beanstalk
eb init -p docker document-processor
eb create production
eb deployThe application includes built-in monitoring capabilities:
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, questions, or suggestions:
Real-time dashboard with processing statistics, activity charts, and system health monitoring
Intuitive drag-and-drop interface for uploading documents with progress tracking
Comprehensive document list with status indicators and quick actions
Powerful search capabilities to find documents by various criteria
View and edit extracted metadata from processed documents
Additional documentation can be found in the /docs directory:
Built with ❤️ using .NET 8 and AWS Bedrock AI
For more information, visit our documentation or contact the maintainers.
| Back | FazBrowse Home | New Git URL |