How averoseee/receiptapp works
DokumenUsaha is an offline, single-business desktop administration app. The main workflow starts at the Flet UI, where users manage business details, customers, catalog items, invoices, and quotations; invoice drafts can be created directly, while quotations have draft and status-related service capabilities. Services validate and calculate document data, repositories persist it in SQLite, and the database layer initializes and migrates the store. The README describes payment rules as database-only and PDF/export as unavailable. Some view/service wiring is inferred from documented capabilities; unsampled internals are not expanded.
Main entry points: main.py App entry · invoice_service.py Invoice service · quotation_service.py Quotation service · database.py SQLite database
Components 22
Desktop interface
- App entry
main.py - Profile page
app/views/business_profile_view.py - Customer page
app/views/customer_view.py - Catalog page
app/views/catalog_view.py - Invoice page
app/views/invoice_view.py - Quotation page
app/views/quotation_view.py
Business records
- Profile service
app/services/business_profile_service.py - Profile repository
app/repositories/business_profile_repository.py - Business images
app/services/business_image_service.py - Customer service
app/services/customer_service.py - Customer repository
app/repositories/customer_repository.py - Catalog service
app/services/catalog_service.py - Catalog repository
app/repositories/catalog_repository.py
Documents
- Invoice service
app/services/invoice_service.py - Invoice repository
app/repositories/invoice_repository.py - Quotation service
app/services/quotation_service.py - Quotation repository
app/repositories/quotation_repository.py - Document calculator
app/services/document_calculator.py - Number service
app/services/document_number_service.py - Number repository
app/repositories/document_number_repository.py
Persistence
- SQLite database
app/database/database.py
Other components
- Business user
Connections 39
- Business user → App entry: uses
- App entry → SQLite database: initializes
- App entry → Profile page: builds
- App entry → Customer page: builds
- App entry → Catalog page: builds
- App entry → Invoice page: builds
- App entry → Quotation page: builds
- Business user → Profile page: edits profile
- Business user → Customer page: manages customers
- Business user → Catalog page: manages catalog
- Business user → Invoice page: creates drafts
- Business user → Quotation page: manages quotations
- Profile page → Profile service: submits profile
- Profile service → Profile repository: reads and writes
- Business images → Profile service: reads and saves profile
- Profile page → Business images: saves images
- Customer page → Customer service: manages records
- Customer service → Customer repository: reads and writes
- Catalog page → Catalog service: manages items
- Catalog service → Catalog repository: reads and writes
- Invoice page → Invoice service: requests operations
- Invoice service → Invoice repository: reads and writes
- Invoice service → Document calculator: calculates totals
- Invoice service → Customer repository: checks customer
- Invoice service → Catalog repository: checks catalog
- Quotation page → Quotation service: requests operations
- Quotation service → Quotation repository: reads and writes
- Quotation service → Document calculator: calculates totals
- Quotation service → Customer repository: checks customer
- Quotation service → Catalog repository: checks catalog
- Invoice service → Number service: allocates number
- Quotation service → Number service: allocates number
- Number service → Number repository: allocates counter
- Profile repository → SQLite database: queries
- Customer repository → SQLite database: queries
- Catalog repository → SQLite database: queries
- Invoice repository → SQLite database: queries
- Quotation repository → SQLite database: queries
- Number repository → SQLite database: queries