How pkouzou/catcollector works
Cat Collector imports images from TheCatAPI, stores image files and cat metadata, and exposes retrieval/filtering through an API plus a Blazor UI for triggering imports and viewing recent cats. The principal flow runs through import jobs, application services, external download/API clients, local storage, and SQL-backed repositories; retrieval follows a separate query path. Relationships among sampled modules are supported by the source index, while broader product capabilities are documented in the README; unsampled implementation details are not inferred.
Main entry points: CatImportService.cs Import jobs · Program.cs Blazor web app · EFCoreCatRepository.cs Cat repository · CatCollectorDbContext.cs SQL database
Components 18
API surface
- Import endpoints
CatCollector.Api/Controllers/CatImportsController.cs - Cat endpoints
CatCollector.Api/Controllers/CatsController.cs
Application workflows
- Import jobs
CatCollector.Application/Services/CatImportService.cs - Cat queries
CatCollector.Application/Services/CatService.cs
Infrastructure
- TheCatAPI client
CatCollector.Infrastructure/Clients/CatApiClient.cs - Image downloader
CatCollector.Infrastructure/Services/HttpFileDownloadService.cs - Local image storage
CatCollector.Infrastructure/Services/LocalFileStorageService.cs - Filesystem access
CatCollector.Infrastructure/Services/FileSystemService.cs - Cat repository
CatCollector.Infrastructure/Repositories/EFCoreCatRepository.cs - Tag repository
CatCollector.Infrastructure/Repositories/EFCoreTagRepository.cs - Import-job repository
CatCollector.Infrastructure/Repositories/EFCoreCatImportRepository.cs - SQL database
CatCollector.Infrastructure/Data/CatCollectorDbContext.cs
Blazor UI
- Import UI service
CatCollector.Blazor/Services/CatImportService.cs - Cat-view UI service
CatCollector.Blazor/Services/CatService.cs - Blazor web app
CatCollector.Blazor/Program.cs
Other components
- User
- API consumer
- TheCatAPI
Connections 20
- API consumer → Import endpoints: requests imports
CatCollector.Api/Controllers/CatImportsController.cs - API consumer → Cat endpoints: requests cats
CatCollector.Api/Controllers/CatsController.cs - Import endpoints → Import jobs: dispatches
CatCollector.Api/Controllers/CatImportsController.cs - Cat endpoints → Cat queries: dispatches
CatCollector.Api/Controllers/CatsController.cs - Import jobs → TheCatAPI client: fetches cat data
CatCollector.Application/Services/CatImportService.cs - Import jobs → Image downloader: downloads images
CatCollector.Application/Services/CatImportService.cs - Import jobs → Local image storage: stores images
CatCollector.Application/Services/CatImportService.cs - Import jobs → Cat repository: persists cats
CatCollector.Application/Services/CatImportService.cs - Import jobs → Tag repository: uses tags
CatCollector.Application/Services/CatImportService.cs - Import jobs → Import-job repository: tracks jobs
CatCollector.Application/Services/CatImportService.cs - Cat queries → Cat repository: queries cats
- TheCatAPI client → TheCatAPI: calls API
- Local image storage → Filesystem access: reads and writes
CatCollector.Infrastructure/Services/LocalFileStorageService.cs - Cat repository → SQL database: queries and saves
CatCollector.Infrastructure/Repositories/EFCoreCatRepository.cs - Tag repository → SQL database: queries and saves
- Import-job repository → SQL database: queries and saves
- User → Blazor web app: uses UI
README.md - Blazor web app → Import UI service: triggers imports
- Blazor web app → Cat-view UI service: views cats
- User → TheCatAPI: import source
README.md