Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Extract provider, description and price automatically; light invoice ledger view

Abierto
#237 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
10/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
typescript

Línea de trabajo

The issue says the work shipped the same day, so first check whether any follow-up remains. Read backend/src/invoices/extract.ts and backend/src/routes/emailDocuments.ts for extraction and intake behavior, then inspect the portal invoice ledger described in the issue. Done means the requested provider, description, and price extraction and dense ledger view are in place without overwriting operator-corrected drafts.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

backend enhancement frontend

Request (user intake, 2026-10-04)

Review all invoices and the intake process. Two complaints:

  1. Provider extraction is poor — rows show "Unidentified provider" or raw
    identifiers like "VAT/GST Number DE…". The operator wants name, title and
    price extracted from a forwarded invoice automatically.
  2. The invoice review table is too heavy. Wanted: a dense ledger view like the
    published expense sheet (Date sent, Date paid, Provider, What, Price $,
    Price EUR, Statement, Count) — not the current 4-column review queue.

../dapier may be updated if processing needs it.

Findings

  • The dapier intake contract already carries the email subject and from,
    and backend/src/routes/emailDocuments.ts already auto-processes invoice
    intakes on arrival — the gap is that extractInvoiceText ignored those
    signals and only parsed two PDF layouts (AWS, Stripe), with an issuer
    heuristic that happily returned "VAT/GST Number …" lines.
  • No dapier change is required; normalization lives dataops-side.

Shipped (same day)

  • Extraction (backend/src/invoices/extract.ts): email subject/sender hints
    with a canonical provider catalog; "receipt/invoice from X" anchor; issuer
    plausibility + credibility filters (field-label lines and payment-processor
    noise rejected); generic labeled total/date/currency/invoice-number parsing
    incl. European comma decimals; subject-derived description. Governance kept:
    extraction never invents amountEur/paymentEvidence.
  • Untouched pending drafts are re-extracted automatically when a duplicate
    arrives; new POST /invoices/{id}/reextract action (portal + CLI) upgrades
    old bad rows on demand. Operator-corrected drafts are never overwritten.
  • Portal: the heavy table is replaced by a dense invoice ledger (sheet columns,
    pending first, negative prices, row-click review, compact reprocess form,
    re-extract button on eligible drafts); 44px mobile row floor kept.

Refs #232

Lenguaje dominante
TypeScript
Estrellas
2
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

  • Incluye un Dockerfile o un archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de DataTalksClub/dataops

Todos los issues de DataTalksClub/dataops

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.