Docket
Barangay procurement and records — enter a transaction once, generate the COA document stack, and keep an auditable trail through print and submit.
Problem
Barangay procurement still runs on paper packets and ad hoc spreadsheets. Staff re-type the same supplier names, line items, and signatory blocks across PPMP, purchase request, canvass, PO, and disbursement forms. Docket centralizes registries and transactions so one encoded record drives the full document stack aligned to COA barangay financial management annexes.
What it covers
- Master registries for barangays, suppliers, units, and signatories — bad registry data leaks into every printed form
- PPMP through transaction lifecycle with procurement modes (bidding, negotiated, over-the-counter)
- Typst-rendered PDFs as canonical output; per-document preview, print, and bulk zip download
- Generated OpenAPI client (
@docket/client) — no hardcoded API URLs in the app - Soft deletes (
deleted_at), restrict FKs, andNUMERIC(15,2)money — no cascade, no floats - Multi-tenant deployment mode with JWT auth and role-based staff views
class DocumentType(StrEnum):
PPMP = "ppmp"
PURCHASE_REQUEST = "purchase_request"
CANVASS_FORM = "canvass_form"
ABSTRACT_OF_QUOTATION = "abstract_of_quotation"
PURCHASE_ORDER = "purchase_order"
INSPECTION_AND_ACCEPTANCE_REPORT = "inspection_and_acceptance_report"
REQUISITION_AND_ISSUE_SLIP = "requisition_and_issue_slip"
ACKNOWLEDGEMENT_RECEIPT = "acknowledgement_receipt"
DISBURSEMENT_VOUCHER = "disbursement_voucher"
OFFICIAL_RECEIPT = "official_receipt"
SUMMARY_LIST = "summary_list"
class DocumentStatus(StrEnum):
DRAFT = "draft"
GENERATED = "generated"
PRINTED = "printed"
SIGNED = "signed"
SUBMITTED = "submitted"
ARCHIVED = "archived"
VOID = "void"