India's #1 platform for earning cashback by posting genuine product reviews on Amazon & Flipkart.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewOpen http://localhost:5173 in your browser.
| Role | Password | |
|---|---|---|
| Admin | admin@reviewcash.in | admin123 |
| User | rahul@example.com | test123 |
| User | priya@example.com | test123 |
reviewcash/
├── public/
│ └── favicon.svg
├── src/
│ ├── main.jsx # Entry point
│ ├── App.jsx # Root router
│ │
│ ├── theme/
│ │ └── index.js # Design tokens
│ │
│ ├── data/
│ │ └── seedData.js # Demo products, users, orders
│ │
│ ├── utils/
│ │ └── helpers.js # currency(), today(), uid(), STATUS_CONFIG
│ │
│ ├── context/
│ │ └── AppContext.jsx # Global state (useReducer + Context)
│ │
│ ├── hooks/
│ │ └── useApp.js # useApp() convenience hook
│ │
│ ├── styles/
│ │ └── global.css # CSS variables, animations, resets
│ │
│ ├── components/
│ │ ├── ui/ # Primitive UI components
│ │ │ ├── Badge.jsx
│ │ │ ├── Button.jsx
│ │ │ ├── Card.jsx
│ │ │ ├── Field.jsx
│ │ │ ├── SelectField.jsx
│ │ │ ├── Modal.jsx
│ │ │ ├── Toast.jsx
│ │ │ └── index.jsx # StatCard, EmptyState, TabBar, Banner, etc.
│ │ │
│ │ ├── layout/
│ │ │ ├── Navbar.jsx
│ │ │ └── Footer.jsx
│ │ │
│ │ ├── home/
│ │ │ └── HomeSections.jsx # Hero, HowItWorks, Featured, Trust
│ │ │
│ │ ├── products/
│ │ │ └── ProductCard.jsx
│ │ │
│ │ ├── dashboard/
│ │ │ ├── DashboardOverview.jsx
│ │ │ └── DashboardTabs.jsx # Submit, Orders, Reviews, Cashback, Profile
│ │ │
│ │ └── admin/
│ │ ├── AdminProducts.jsx
│ │ └── AdminManagers.jsx # Orders, Reviews, Cashback, Users
│ │
│ └── pages/
│ ├── HomePage.jsx
│ ├── ProductPages.jsx # ProductsPage + ProductDetailPage
│ ├── AuthPages.jsx # LoginPage + RegisterPage
│ ├── DashboardPage.jsx
│ ├── AdminPage.jsx
│ └── admin/
│ └── AdminDashboard.jsx
│
├── index.html
├── vite.config.js
├── package.json
└── README.md
- Browse → Find a product with cashback offer
- Buy → Purchase from Amazon/Flipkart via product link
- Submit Order → Upload order confirmation screenshot + Order ID
- Admin Verifies → Within 24 hours
- Mark Delivered → When you receive the product
- Post Review → Write a genuine 4★/5★ review on the platform
- Submit Review Proof → Upload review screenshot
- Admin Approves → Within 48 hours
- Cashback Released → Scheduled for 20 days
- Receive Payment → Admin marks paid with UTR reference
- Login with admin credentials
- Dashboard → See pending counts and alerts
- Orders → Verify/reject order proofs
- Reviews → Approve/reject review submissions (triggers cashback creation)
- Cashback → Mark scheduled payments as paid with transaction reference
- Products → Add/edit/enable/disable products
- Users → View all registered users
This demo uses in-memory state. For production, replace the AppContext reducer actions with API calls:
// Example: Replace local dispatch with API call
const submitOrder = async (orderData) => {
const res = await fetch('/api/orders', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}` },
body: JSON.stringify(orderData),
})
const order = await res.json()
dispatch({ type: 'ADD_ORDER', payload: order })
}- Backend: Node.js + Express or Next.js API routes
- Database: PostgreSQL (with Prisma ORM)
- Auth: JWT + bcrypt
- Storage: AWS S3 (for screenshots)
- Payments: Razorpay Payouts or Cashfree for UPI/IMPS
- Queue: Bull + Redis (for 20-day cashback automation)
- Hosting: Vercel (frontend) + Railway/Render (backend)
- React 18 with Hooks
- Vite (build tool)
- CSS Variables + Google Fonts
- No external UI libraries — fully custom components