Skip to content
/ SWEN3 Public

Document management system for archiving documents in a FileStore, with automatic OCR (queue for OC-recognition), tagging and full text search (ElasticSearch).

Notifications You must be signed in to change notification settings

ANcpLua/SWEN3

Repository files navigation

Alexander Nachtann, Jasmin Mondre and Stephanie Rauscher

2024/2025 SWKOM

A document management system with features including archiving, OCR processing, tagging, and full-text search.

Sprint Overview and Technologies

Sprint 1: REST Service API

  • ASP.NET Core 8
  • Swagger/OpenAPI (Swashbuckle.AspNetCore)
  • API Controller(minimal api)

Sprint 2: Web-UI Integration

Sprint 3: DAL (Persistence)

  • Entity Framework Core (Microsoft.EntityFrameworkCore)
  • PostgreSQL (Npgsql.EntityFrameworkCore.PostgreSQL) to persist
  • BL(domainmodel) entities
  • Unit Tests with a happy and unhappy path
  • Mapping using Automapper
  • Minimal API
  • Docker working

Sprint 4: Message Broker

  • RabbitMQ (RabbitMQ.Client)
  • MassTransit (MassTransit, MassTransit.RabbitMQ)

Sprint 5: Worker Services

  • Hangfire (Hangfire.AspNetCore)
  • TesseractOCR (Tesseract)

Sprint 6: ElasticSearch

  • NEST (Elasticsearch.Net, NEST)

Sprint 7: Integration-Test

The best way to avoid failure is to fail constantly

Cross-Cutting Concerns

  • Logging: Serilog (Serilog.AspNetCore)
  • Exception Handling: Global exception middleware
  • Validation: FluentValidation
  • Mapping: AutoMapper
  • Dependency Injection: Autofac

Key Use Cases

  1. Upload document
  2. Search for a document

Getting Started (Sprint 1)

  1. Clone the repository
  2. Navigate to the project directory
  3. Run docker-compose up --build
  4. Access the API at http://localhost:8081
  5. Swagger documentation: http://localhost:8081/swagger

API Endpoints (Sprint 1)

http://localhost:8081/swagger

  • GET /documents
  • GET /documents/{id}
  • POST /documents
  • PUT /documents/{id}
  • DELETE /documents/{id}
  • GET /documents/search (placeholder for future implementation)

Sprint 2: Web-UI Integration (Sprint 2)

Blazor WebAssembly hardcoded endpoint to api controller (Microsoft.AspNetCore.Components.WebAssembly)

About

Document management system for archiving documents in a FileStore, with automatic OCR (queue for OC-recognition), tagging and full text search (ElasticSearch).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published