Current Features
Qprint is a full-stack print-on-demand platform. This document lists all features implemented and available today.
Customer Features
| Feature | Description |
|---|---|
| User registration & authentication | JWT-based login with secure password hashing |
| File upload | PDF, images (PNG/JPG/JPEG), Word (DOC/DOCX), PowerPoint (PPT/PPTX) |
| Print options | Copies, single/double sided, color/B&W, paper size (A4, Letter, etc.) |
| Private prints | Unique 6-character code for pickup |
| Queue prints | Send to a specific shopkeeper for printing |
| Payment integration | Razorpay (card, UPI, netbanking) |
| Wallet payments | Pre-load balance, instant payments, hybrid (wallet + Razorpay) |
| Cost calculation | Pre-payment cost estimate |
| File history & tracking | View uploads, status, queue position |
| Expense tracking | Track print spending |
| Shop favorites | Save preferred shopkeepers |
| Nearest shop finder | Location-based shop discovery |
| Withdraw prints | Cancel and get automatic refund |
| Password/username recovery | Email-based reset via Resend API |
| Profile management | Update account details |
| Delete account | Self-service account deletion with password confirmation |
| Map view | See shop locations on a map |
| Real-time queue position | Live updates on queue status |
| Download Apps page | Public 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
| Feature | Description |
|---|---|
| Shop registration | Create shop with name, address, location (lat/long) |
| Queue management | View and process print queue |
| Private print code entry | Enter customer code to fetch and print |
| Print job processing | Process single or batch prints |
| Windows silent printing | SumatraPDF CLI — no dialogs |
| Print verification | WMI-based completion check before confirming |
| Multi-file batch printing | Queue multiple prints to different printers |
| Shop status toggle | Mark shop open/closed; optional auto-close when app heartbeat and web activity are stale |
| Shop heartbeat | App sends heartbeat to keep shop "open"; sweeper auto-closes when both app and web are inactive |
| Earnings statistics | View revenue and commissions |
| Print history | Past jobs and status |
| Payout tracking | Track pending and completed payouts |
| Printer selection | Choose printer per job |
| File conversion | Word/PPT → PDF via LibreOffice (Windows) |
| Delete account | Self-service account deletion with password confirmation |
Supported File Types (Platform-Wide)
| Type | Extensions | Notes |
|---|---|---|
.pdf | Passthrough; no conversion | |
| Images | .png, .jpg, .jpeg | Converted to single-page PDF (fit to paper) |
| Word | .doc, .docx | Converted via LibreOffice (shopkeeper Windows) |
| PowerPoint | .ppt, .pptx | Converted via LibreOffice (shopkeeper Windows) |
- Max 20MB per file, 100MB total per upload batch.
Admin Features
| Feature | Description |
|---|---|
| User management | View users, user details, delete user accounts |
| Order management | View all payment orders |
| Payout management | Update payout status (single or bulk), export payouts |
| Manage payments | Per-shop payout history and mark-as-paid |
| App download links | Set Windows/Android/iOS download URLs and "coming soon" flags (shown on public Download Apps page) |
| Dashboard statistics | Platform analytics overview |
Platform Features
| Feature | Description |
|---|---|
| Multi-role system | Customer, Shopkeeper, Admin |
| Payment gateway | Razorpay integration |
| Email service | Resend API (recommended) or SMTP |
| File storage | Local (default) or AWS S3 |
| Database migrations | PostgreSQL with schema management |
| JWT authentication | Secure API access |
| CORS configuration | Configurable allowed origins |
| Webhook handling | Razorpay payment confirmations |
| Commission system | Configurable platform commission |
| Wallet service | Top-up, pay, refund, transaction history |
Security Features (Implemented)
| Component | Features |
|---|---|
| Backend | JWT 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 Web | httpOnly cookie auth, CSRF protection, security headers, generic error messages, delete account with password confirmation |
| Customer App | Secure token storage, certificate pinning, root/jailbreak detection, session timeout, delete account |
| Shopkeeper App | Secure 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