Updated `PROJECT_STATUS.md` to reflect the current progress, including updates to the project status, phase overview, and milestones. Added a new section summarizing completed milestones (Phases 1-2.5) and detailed progress for Phase 3. Created `STATUS_UPDATE_17_01_2025.md` to document the latest project status, including the availability of the DevExpress Universal License, completed phases, and a step-by-step plan for the next sprint. Highlighted action items such as cleaning up the Application Layer and implementing the `DevExpressPdfProcessor` using TDD. These changes ensure alignment between the roadmap and the actual project status while providing clear next steps for stakeholders.
204 lines
6.6 KiB
Markdown
204 lines
6.6 KiB
Markdown
# DocumentOperator - Projekt Status & Zeitplan
|
|
# DocumentOperator - Project Status
|
|
|
|
> **Stand:** 17.01.2025 | **Phase:** 4 (Application Layer - NEXT) | **Fortschritt:** ~30% | **Go-Live:** KW 8 (Ende Februar)
|
|
|
|
---
|
|
|
|
## ?? Projekt
|
|
REST API für PDF-Operationen (Validierung, Konkatenation, Stempel, Attachments) - Multi-Tenant DMS
|
|
**Stack:** .NET 8, DevExpress PDF, MediatR, EF Core + SQLite, Redis, Polly
|
|
|
|
---
|
|
|
|
## ?? Phasen (11 Total, ~25-30 Tage)
|
|
|
|
| Phase | Name | Status | Deadline |
|
|
|-------|------|--------|----------|
|
|
| 1-3 | Foundation + Domain + Infrastructure | ? Fertig | - |
|
|
| 4 | Application Layer (MediatR) | ?? **AKTUELL** | KW 4 |
|
|
| 5 | API Layer (REST Endpoint) | ? | KW 4 |
|
|
| 5.5 | Health Checks + Resilience | ? | KW 4 |
|
|
| 6 | Weitere Features (4x) | ? | KW 5-6 |
|
|
| 6.5 | Async Processing (Queue) | ? | KW 6 |
|
|
| 7 | Swagger & Docs | ? | KW 6 |
|
|
| 8 | **Multi-Tenancy (DB + Redis)** | ? | **KW 7** |
|
|
| 9 | File Storage (lokal) | ? | KW 7 |
|
|
| 10 | Logging & Monitoring | ? | KW 7 |
|
|
| 11 | Production Deployment | ? | KW 8 |
|
|
|
|
---
|
|
|
|
## ? Abgeschlossen
|
|
- Solution-Struktur (Clean Architecture, 4 Projekte)
|
|
- Domain Layer (Value Objects, Enums, Exceptions)
|
|
- **DevExpressPdfProcessor** (TDD, 6 Tests grün, PDF-Validierung funktioniert)
|
|
|
|
---
|
|
|
|
## ?? Diese Woche (KW 4)
|
|
**Phase 4-5:** Erster funktionierender API-Endpoint (`POST /api/v1/documents/validate`)
|
|
- MediatR Setup + ValidationBehavior
|
|
- REST Endpoint + Exception Middleware
|
|
- Swagger UI
|
|
|
|
---
|
|
|
|
## ?? Kritisch für Production
|
|
- **KW 6:** Async Processing (Queue) - verhindert HTTP Timeouts bei großen PDFs
|
|
- **KW 7:** Multi-Tenancy (EF Core + SQLite) - API-Key Management, Redis Cache
|
|
|
|
**Deliverables:**
|
|
- ? Alle CRUD-Operationen (ValidatePdf, ExtractAttachments)
|
|
- ? Multi-Tenancy (DB-based, API-Key Management)
|
|
- ? Health Checks (/health Endpoint)
|
|
- ? Resilience (Polly)
|
|
- ? Swagger Documentation
|
|
- ? Production-ready Logging (Correlation IDs)
|
|
|
|
---
|
|
|
|
### Milestone 3: Full Feature Set ??
|
|
**Ziel:** Alle Features + Async Processing + File Storage
|
|
**Phasen:** Alle 11 Phasen abgeschlossen
|
|
**Zeitaufwand:** ~24-30 Arbeitstage
|
|
**ETA:** Ende KW 8 / Anfang KW 9
|
|
|
|
**Deliverables:**
|
|
- ? Alle PDF-Operationen (ValidatePdf, ExtractAttachments, ConcatenatePdfs, ApplyStamp, EmbedCertificate)
|
|
- ? Async Processing (In-Memory Queue für große Operationen)
|
|
- ? Lokale Temp-Ordner (File Storage mit automatischem Cleanup)
|
|
- ? Logging & Monitoring (Seq, File Logging)
|
|
- ? IIS Deployment-ready
|
|
- ? Rate-Limiting (Redis-based)
|
|
|
|
---
|
|
|
|
## ?? Empfehlung für Projekt-Planung
|
|
|
|
### Option 1: Agile Iterationen (Empfohlen ?)
|
|
**Strategie:** 3 Milestones iterativ ausrollen
|
|
|
|
**Vorteile:**
|
|
- ? Frühes Feedback (MVP nach 2 Wochen testbar)
|
|
- ? Risiken früh erkannt (DevExpress Integration in Milestone 1)
|
|
- ? Flexibel (Anforderungen können sich ändern)
|
|
|
|
**Zeitplan:**
|
|
- **Sprint 1 (2 Wochen):** Milestone 1 (MVP) - Phase 1-5
|
|
- **Sprint 2 (3 Wochen):** Milestone 2 (Production-Ready) - Phase 5.5, 6, 7, 8
|
|
- **Sprint 3 (1-2 Wochen):** Milestone 3 (Full Feature Set) - Phase 6.5, 9, 10, 11
|
|
|
|
**Gesamtdauer:** ~6 Wochen
|
|
|
|
---
|
|
|
|
### Option 2: Wasserfall (Nicht empfohlen ??)
|
|
**Strategie:** Alle Phasen komplett abarbeiten, dann erst testen
|
|
|
|
**Nachteile:**
|
|
- ? Spätes Feedback (erst nach 6 Wochen testbar)
|
|
- ? Risiken spät erkannt
|
|
- ? Keine Flexibilität
|
|
|
|
**Gesamtdauer:** ~6-7 Wochen (gleich, aber höheres Risiko)
|
|
|
|
---
|
|
|
|
## ?? Ressourcen-Bedarf
|
|
|
|
### Entwickler
|
|
- **Aktuell:** 1 Entwickler (außerhalb der Kernarbeitszeit)
|
|
- **Empfehlung:** 1 Entwickler ausreichend (bei agilen Sprints)
|
|
- **Alternative:** 2 Entwickler = Halbierung der Zeit (~3 Wochen statt 6)
|
|
|
|
### Infrastruktur (Production)
|
|
- **Lokaler File Server** (für Temp-Ordner) - ODER Shared Network Drive bei Multi-Server
|
|
- **Redis Server** (für Tenant-Caching, Rate-Limiting)
|
|
- **SQL Server** (optional, aktuell SQLite) - erst bei > 10.000 Requests/Sekunde
|
|
|
|
### Kosten-Schätzung
|
|
- **Redis Cache (Basic):** ~15 EUR/Monat (optional: In-Memory Cache für Single-Server)
|
|
- **Seq (Self-Hosted):** Kostenlos (oder Seq Cloud: ~20 EUR/Monat)
|
|
- **File Storage:** Kostenlos (lokale Festplatte)
|
|
|
|
**Gesamt:** ~0-35 EUR/Monat (abhängig von Redis + Seq Cloud)
|
|
|
|
---
|
|
|
|
## ? Nächste Schritte (diese Woche)
|
|
|
|
### Priorität 1: Phase 3 abschließen
|
|
- [ ] DevExpressPdfProcessor.cs implementieren (TDD Green Phase)
|
|
- [ ] Alle Tests grün machen
|
|
- [ ] Code Review
|
|
|
|
**Zeitaufwand:** 1-2 Tage
|
|
**ETA:** Dienstag/Mittwoch
|
|
|
|
---
|
|
|
|
### Priorität 2: Phase 4 starten (Application Layer)
|
|
- [ ] MediatR Setup
|
|
- [ ] ValidatePdf Feature (Query, Handler, Validator)
|
|
|
|
**Zeitaufwand:** 2-3 Tage
|
|
**ETA:** Ende der Woche (Freitag)
|
|
|
|
---
|
|
|
|
### Priorität 3: Milestone 1 erreichen (MVP)
|
|
- [ ] Phase 5 (API Layer)
|
|
- [ ] Erster testbarer Endpoint via Swagger
|
|
|
|
**Zeitaufwand:** 2 Tage
|
|
**ETA:** Anfang nächste Woche (Montag/Dienstag)
|
|
|
|
---
|
|
|
|
## ?? Fragen / Entscheidungen erforderlich
|
|
|
|
1. **Redis Server:**
|
|
Ist Redis-Instanz verfügbar? (Benötigt für Phase 8 - Tenant-Caching, Phase 11 - Rate-Limiting)
|
|
**Alternative:** In-Memory Cache für Dev, Redis erst für Production
|
|
|
|
2. **Deployment-Ziel:**
|
|
IIS? Docker/Kubernetes?
|
|
**Impact:** Beeinflusst Phase 11 (Production Deployment)
|
|
**Empfehlung:** IIS (Windows Server) - einfachste Lösung für .NET 8 APIs
|
|
|
|
3. **Priorität Async Processing (Phase 6.5):**
|
|
Ist In-Memory Queue-basiertes Async Processing Pflicht oder Nice-to-have?
|
|
**Impact:** Kann Zeit sparen (~2 Tage), wenn nicht benötigt
|
|
**Hinweis:** In-Memory Queue = nicht persistent (Server-Neustart löscht Jobs)
|
|
|
|
4. **Multi-Server Setup:**
|
|
Wird Load Balancer mit mehreren API-Instanzen benötigt?
|
|
**Impact:** Multi-Server = Shared Network Drive statt lokale Temp-Ordner notwendig
|
|
**Empfehlung:** Single-Server Setup vorerst (einfacher)
|
|
|
|
---
|
|
|
|
## ?? Fazit & Empfehlung
|
|
|
|
**Projekt-Status:** ? Auf gutem Weg (25% abgeschlossen)
|
|
**Architektur:** ? Solide (Clean Architecture, TDD, Vertical Slices)
|
|
**Technologie-Stack:** ? Modern (.NET 8, Minimal APIs, Polly, EF Core) - **OHNE Azure-Abhängigkeiten**
|
|
**Risiken:** ?? Gering (mit Polly Resilience abgefedert)
|
|
|
|
**Empfehlung:**
|
|
1. ? **Phase 3 abschließen** (diese Woche)
|
|
2. ? **Milestone 1 (MVP) erreichen** (nächste Woche)
|
|
3. ? **Agile Iterationen** nutzen (3 Sprints à 2-3 Wochen)
|
|
4. ? **Frühes Feedback** einholen (nach Milestone 1)
|
|
|
|
**ETA für Production-Ready (Milestone 2):** Ende KW 7 / Anfang KW 8 (bei 1 Entwickler)
|
|
|
|
**Änderung (22.06.2026):** Azure Services (Blob Storage, Storage Queue) vollständig entfernt - stattdessen lokale Temp-Ordner + In-Memory Queue (einfacher, keine Cloud-Abhängigkeiten). Alle Azure-Referenzen in der Dokumentation bereinigt.
|
|
|
|
---
|
|
|
|
**Erstellt von:** DocumentOperator Entwicklungsteam
|
|
**Datum:** 22.06.2026
|
|
**Version:** 1.3 (Azure-Referenzen vollständig entfernt)
|