How dmikushin/printing_kiosk works
Simple Printing Kiosk is a Flask web app for submitting print jobs and, in the sampled routes, controlling a separate scanning service. The main workflow accepts an upload, optionally selects PDF pages, records the job, and hands the file to a configured print command that uses CUPS. A separate scan workflow submits scan settings, polls for completion, saves the result, and offers downloads. The README documents printing and CUPS; scanner behavior is evident in the sampled views. Other route details are omitted where the excerpt is incomplete.
Main entry points: views.py Flask routes · lp-brother-dcp1510 Print command · database.py Database session · index.html Print page
Components 14
Web interface
- Flask routes
simple_print_server/views.py - Print page
simple_print_server/templates/index.html - Scanner page
simple_print_server/templates/scanner.html
Print workflow
- App configuration
config.py - Page-range parser
simple_print_server/page_range.py - PDF utilities
simple_print_server/views.py - Print command
scripts/lp-brother-dcp1510 - CUPS queue
Scan workflow
- Scanner API
- Saved scans
data
Persistence
- Print records
simple_print_server/models.py - Database session
simple_print_server/database.py - SQLite database
data/sqlite.db
Other components
- Kiosk user
Connections 14
- Kiosk user → Flask routes: submits requests
- Flask routes → Print page: renders
- Flask routes → Scanner page: renders
- Flask routes → Page-range parser: parses ranges
- Flask routes → PDF utilities: counts and extracts
- Flask routes → App configuration: reads settings
- Flask routes → Print command: launches command
- Print command → CUPS queue: queues job
- Flask routes → Print records: creates record
- Flask routes → Database session: adds and commits
- Database session → SQLite database: reads and writes
- Flask routes → Scanner API: starts, polls, fetches
- Scanner API → Flask routes: returns scan data
- Flask routes → Saved scans: saves and serves