Skip to main content

Current Features

Qprint is a full-stack print-on-demand platform. This document lists all features implemented and available today.


Customer Features

FeatureDescription
User registration & authenticationJWT-based login with secure password hashing
File uploadPDF, images (PNG/JPG/JPEG), Word (DOC/DOCX), PowerPoint (PPT/PPTX)
Print optionsCopies, single/double sided, color/B&W, paper size (A4, Letter, etc.)
Private printsUnique 6-character code for pickup
Queue printsSend to a specific shopkeeper for printing
Payment integrationRazorpay (card, UPI, netbanking)
Wallet paymentsPre-load balance, instant payments, hybrid (wallet + Razorpay)
Cost calculationPre-payment cost estimate
File history & trackingView uploads, status, queue position
Expense trackingTrack print spending
Shop favoritesSave preferred shopkeepers
Nearest shop finderLocation-based shop discovery
Withdraw printsCancel and get automatic refund
Password/username recoveryEmail-based reset via Resend API
Profile managementUpdate account details
Delete accountSelf-service account deletion with password confirmation
Map viewSee shop locations on a map
Real-time queue positionLive updates on queue status
Download Apps pagePublic page with Windows/Android/iOS app links (admin-configurable)
Delete data (GDPR)Public /delete-data page for Play Store "Delete data" link requirement

Shopkeeper Features

FeatureDescription
Shop registrationCreate shop with name, address, location (lat/long)
Queue managementView and process print queue
Private print code entryEnter customer code to fetch and print
Print job processingProcess single or batch prints
Windows silent printingSumatraPDF CLI — no dialogs
Print verificationWMI-based completion check before confirming
Multi-file batch printingQueue multiple prints to different printers
Shop status toggleMark shop open/closed; optional auto-close when app heartbeat and web activity are stale
Shop heartbeatApp sends heartbeat to keep shop "open"; sweeper auto-closes when both app and web are inactive
Earnings statisticsView revenue and commissions
Print historyPast jobs and status
Payout trackingTrack pending and completed payouts
Printer selectionChoose printer per job
File conversionWord/PPT → PDF via LibreOffice (Windows)
Delete accountSelf-service account deletion with password confirmation

Supported File Types (Platform-Wide)

TypeExtensionsNotes
PDF.pdfPassthrough; no conversion
Images.png, .jpg, .jpegConverted to single-page PDF (fit to paper)
Word.doc, .docxConverted via LibreOffice (shopkeeper Windows)
PowerPoint.ppt, .pptxConverted via LibreOffice (shopkeeper Windows)
  • Max 20MB per file, 100MB total per upload batch.

Admin Features

FeatureDescription
User managementView users, user details, delete user accounts
Order managementView all payment orders
Payout managementUpdate payout status (single or bulk), export payouts
Manage paymentsPer-shop payout history and mark-as-paid
App download linksSet Windows/Android/iOS download URLs and "coming soon" flags (shown on public Download Apps page)
Dashboard statisticsPlatform analytics overview

Platform Features

FeatureDescription
Multi-role systemCustomer, Shopkeeper, Admin
Payment gatewayRazorpay integration
Email serviceResend API (recommended) or SMTP
File storageLocal (default) or AWS S3
Database migrationsPostgreSQL with schema management
JWT authenticationSecure API access
CORS configurationConfigurable allowed origins
Webhook handlingRazorpay payment confirmations
Commission systemConfigurable platform commission
Wallet serviceTop-up, pay, refund, transaction history

Security Features (Implemented)

ComponentFeatures
BackendJWT validation (32+ chars), CORS, rate limiting, file upload validation (MIME + magic bytes), security headers, password reset token hashing, webhook signature verification, secure account deletion
Frontend WebhttpOnly cookie auth, CSRF protection, security headers, generic error messages, delete account with password confirmation
Customer AppSecure token storage, certificate pinning, root/jailbreak detection, session timeout, delete account
Shopkeeper AppSecure token storage, certificate pinning, HTTP timeout, API URL config, PowerShell injection fix, path traversal sanitization, verbose logging, session timeout (30 min), token fallback restriction, file integrity verification, delete account

See Security Audit for full details.


Deployment & Integrations

  • Backend: Render-ready (Go)
  • Frontend: Vercel-ready (Next.js)
  • Mobile: Flutter (Android, iOS, Windows for shopkeeper)
  • Printing: SumatraPDF (required), LibreOffice (optional, for Word/PPT)

Last Updated: February 2026