-
-
Landing "swipe" page, showing basic dispute details. Users can either swipe right/left on the card, or can select ignore/dispute buttons.
-
Example of dispute message generated upon "swiping right"
-
Pending page, displaying status of disputes.
-
Example of history tab showing past disputes
-
Image displaying part of statistics page, showing statistics on money saved, and results of disputes.
-
Another picture of the statistics page. Provides more statistics of consumer disputes.
-
Settings page, with basic information and option to connect to various delivery services.
Inspiration
Restaurant owners lose thousands to disputed delivery platform charges. To request a refund, restaurant owners have to go through a tedious process for each refund request, needing to write a small description why they want to challenge the charges. For immigrant restaurant owners, writing these descriptions with limited english skills may be challenging. We built RQC to automate recovery—upload CSVs, review disputes intuitively, generate personalized letters via AI, and track status centrally. One platform handles DoorDash, Grubhub, and Uber Eats. Our goal: help restaurants reclaim refunds with minimal effort while learning industry patterns.
What it does
RQC ingests error-charge CSVs from delivery platforms, displays disputes via swipe-card interface, auto-generates dispute letters using Claude AI, tracks status (pending/drafted/submitted/resolved), and syncs across mobile and web. Restaurants review disputes, send letters, and monitor outcomes—all in one dashboard.
How we built it
Node.js/TypeScript backend with Express API, Supabase PostgreSQL database, Claude AI integration. React Native mobile app with gesture-based swipe cards. Next.js web dashboard. CSV parser normalizes multi-platform formats into unified dispute model. Real-time API endpoints sync data across clients.
Challenges we ran into
Different CSV formats per platform required robust normalization. Next.js workspace detection with multiple lockfiles. Environment variable coordination across services. Mobile-web sync consistency. Personalizing AI letters naturally for diverse dispute types.
Accomplishments that we're proud of:
Multi-platform support working seamlessly. AI letter generation that sounds natural. Intuitive swipe-card UX. Production-ready backend with bulk operations. Full-stack deployment operational.
What we learned
CSV normalization is foundational. TypeScript catches bugs early. Proper database design prevents conflicts. Expo + React Native delivers smooth animations. AI truly transforms tedious tasks into seconds.
What's next for RQC (Restaurant Quality Cancellations)
Email auto-submission to platforms. Success rate analytics. Multi-restaurant management. ML-driven highest-success dispute types. Webhook notifications. Document/photo uploads. POS system integrations.
Built With
- anthropic
- api
- asyncstorage
- axios
- csv-parse
- expo.io
- express.js
- gesture
- handler
- javascript
- multer
- native
- next.js
- node.js
- postgresql
- react
- reanimated
- supabase
- typescript

Log in or sign up for Devpost to join the conversation.