QLess — Skip the Line, Shop Smarter
About the Project
What Inspired Us
Standing in checkout lines feels outdated in a world where almost everything else is instant. Americans spend 37 billion hours per year waiting in lines, which comes out to:
$$ \frac{37 \times 10^9 \text{ hours}}{330 \times 10^6 \text{ people}} \approx 112 \text{ hours/person/year} $$
That is nearly five full days every year spent waiting.
We asked a simple question:
What if checkout didn’t exist at all?
That question led to QLess — a mobile self-checkout system that lets customers scan items, pay instantly, and leave the store with a verified QR code.
What We Learned
Technical Skills
- React Native + Expo for cross-platform mobile development
- Stripe PaymentIntents and webhooks for secure payments
- MongoDB + Mongoose for scalable data modeling
- Time-limited QR verification to prevent fraud
- Skia graphics for modern glassmorphism UI
Business Insights
- Self-checkout is a \$100B+ market
- Trust and verification are critical for retailers
- Small delays scale into major inefficiencies
How We Built It
System Architecture
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Mobile App │ ─▶ │ Backend API │ ─▶ │ MongoDB │
│ (React Native) │ │ (Express.js) │ │ (Atlas) │
└─────────────────┘ └────────┬────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Stripe │
│ (Payments) │
└─────────────────┘
User Flow
- Scan — Scan product barcodes using the phone camera
- Cart — Items added with real-time pricing
- Pay — Secure checkout via Stripe
- Go — Generate a QR code validated at exit
What’s Next
- NFC-based product scanning
- Store analytics dashboards
- Live inventory integration
- Multi-language support
- Loyalty and rewards programs
The best interface is no interface.
The best checkout is no checkout.
Built With
- asyncstorage
- bcrypt
- css
- expo-camera
- expo-haptics
- expo.io
- express-rate-limit
- express-rate-limit-cloud-&-database:-mongodb-atlas-apis:-stripe-payments-api
- express.js
- git
- helmet
- javascript
- jwt
- mongodb
- mongodb-atlas
- mongoose
- node.js
- npm
- qr-code-generation
- react-native
- react-native-qrcode-svg-backend:-node.js
- react-navigation
- rest-api
- rest-api-tools:-git
- stripe
- stripe-react-native-sdk
- typescript
Log in or sign up for Devpost to join the conversation.