S&T Marketplace
S&T Marketplace: shop products from verified sellers, pay with mobile money or your wallet and follow your delivery live.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
SamaanShare is a modern peer-to-peer rental marketplace that enables individuals in Pakistan to monetize their underutilized items by renting them to others. Instead of buying expensive equipment for occasional use, users can rent from their neighbors—saving money while reducing waste.
Target Market: Pakistan (PKR Currency, Asia/Karachi Timezone)
For Owners
• Expensive items (cameras, tools, gaming consoles) sit idle 90% of the time
• No trusted platform to safely rent items to strangers
• Cash-only transactions feel risky檢視完整 README ↗A Peer-to-Peer Rental Marketplace for Pakistan
SamaanShare is a modern peer-to-peer rental marketplace that enables individuals in Pakistan to monetize their underutilized items by renting them to others. Instead of buying expensive equipment for occasional use, users can rent from their neighbors—saving money while reducing waste.
Target Market: Pakistan (PKR Currency, Asia/Karachi Timezone)
Initial Launch Cities: Karachi, Lahore, Islamabad
Pakistan lacks a dedicated rental marketplace with:
SamaanShare provides a trusted platform where:
| Layer | Technology | Purpose |
|---|---|---|
| Framework | Next.js 15 | Full-stack React framework with App Router |
| Language | TypeScript | Type-safe development |
| Styling | Tailwind CSS | Utility-first CSS |
| Components | shadcn/ui | Accessible, customizable UI components |
| Database | PostgreSQL | Reliable, scalable relational database |
| ORM | Prisma | Type-safe database client |
| Authentication | Auth.js v5 | Secure authentication (Email + Google OAuth) |
| Images | Cloudinary | Image storage, optimization, and CDN |
| Validation | Zod | Runtime type validation |
| State | Zustand | Lightweight client state management |
| Hosting | Vercel | Serverless deployment platform |
┌─────────────────────────────────────────────────────────────┐
│ CLIENT LAYER │
│ (Browser - Desktop, Mobile, Tablet) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ EDGE / CDN LAYER │
│ (Vercel Edge Network) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ APPLICATION LAYER │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ App Router │ │ Server Actions │ │
│ │ (RSC Pages) │ │ (Mutations) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ Admin Dashboard │ │
│ └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ SERVICE LAYER │
│ │
│ ┌─────────────────────────────────────────┐ │
│ │ Payment Abstraction Layer │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ Offline │ │JazzCash │ │ Safepay │ │ │
│ │ │ (MVP) │ │(Future) │ │(Future) │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ DATA LAYER │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ PostgreSQL │ │ Cloudinary │ │
│ │ (Database) │ │ (Images) │ │
│ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────┘
samaanshare/
├── docs/ # Architecture documentation
│ ├── PRD.md # Product Requirements
│ ├── ARCHITECTURE.md # Technical Architecture
│ ├── DATABASE.md # Database Schema
│ ├── API.md # API Design
│ ├── PROJECT_STRUCTURE.md # Folder Organization
│ ├── ROADMAP.md # Development Phases
│ └── ENGINEERING_GUIDELINES.md # Coding Standards
│
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── (auth)/ # Auth routes (login, register)
│ │ ├── (main)/ # Main app routes
│ │ ├── admin/ # Admin dashboard
│ │ └── api/ # API routes (webhooks)
│ │
│ ├── components/ # React components
│ │ ├── ui/ # shadcn/ui primitives
│ │ ├── forms/ # Form components
│ │ └── [feature]/ # Feature-specific components
│ │
│ ├── lib/ # Utilities and services
│ │ ├── actions/ # Server actions
│ │ ├── db/ # Database utilities
│ │ ├── payments/ # Payment abstraction
│ │ └── utils/ # Helper functions
│ │
│ ├── hooks/ # Custom React hooks
│ ├── stores/ # Zustand stores
│ └── types/ # TypeScript types
│
├── prisma/
│ ├── schema.prisma # Database schema
│ └── migrations/ # Database migrations
│
├── public/ # Static assets
├── README.md # This file
├── TODO.md # Development backlog
├── CHANGELOG.md # Version history
└── LICENSE # MIT License
| Phase | Status | Description |
|---|---|---|
| Documentation | ✅ Complete | PRD, Architecture, Database, Guidelines |
| Phase 0: Foundation | ✅ Complete | Next.js 15, Prisma, Auth.js v5, Tailwind |
| Phase 1: Authentication | ✅ Complete | Register, login, Google, password reset, email confirmation, profile |
| Phase 2: Marketplace | ✅ Complete | Browse, search, filters, sorting, wishlist |
| Phase 3: Listings | ✅ Complete | CRUD, signed Cloudinary uploads, availability calendar |
| Phase 4: Booking | ✅ Complete | Request, offline payment, full lifecycle, notifications |
| Phase 5: Reviews | ✅ Complete | Two-way reviews with reciprocal release |
| Trust & Safety | ✅ Complete | Reporting, trust score, identity verification, handover records, damage claims |
| Phase 6: Admin | ✅ Complete | Users, listing moderation, bookings, reports, analytics |
| Phase 7: Polish | 🚧 In progress | Error tracking and accessibility done; production deploy outstanding |
Current Version: Pre-release. Deployed to staging; not yet in production — see TODO.md for what remains, which is mostly waiting on a domain.
.nvmrc and enforced by enginesgit clone https://github.com/Muhammad-Saad-Awan/Rentify-SamaanShare-.git
cd Rentify-SamaanShare-
npm install # also generates the Prisma client via postinstall
cp .env.example .env.local # then fill in DATABASE_URL and AUTH_SECRET
npm run db:migrate # apply migrations
npm run db:seed # categories and cities - required
npm run db:seed:demo # optional: demo listings, development only
npm run dev
Only DATABASE_URL and AUTH_SECRET are required. Cloudinary, Google, Resend and
Sentry are each optional and the app degrades honestly without them — no Google
button, no password-reset link, no image upload, no error reporting. .env.example
says what happens in each case.
openssl rand -base64 32 # a usable AUTH_SECRET
npm run check # lint, type-check, format check, unit tests
npm run test:e2e # Playwright: builds, then runs against a real database
npm run build:analyze # bundle treemap
npm run check is what CI should run. The end-to-end suite needs a seeded
database, like the verify:* scripts do; see playwright.config.ts for why there
is no meaningful version of it that runs against nothing.
Comprehensive documentation is available in the /docs directory:
| Document | Description |
|---|---|
| PRD.md | Product Requirements Document |
| ARCHITECTURE.md | Technical Architecture |
| DATABASE.md | Database Schema Design |
| API.md | API & Server Actions Design |
| PROJECT_STRUCTURE.md | Folder Organization |
| ROADMAP.md | Development Phases |
| ENGINEERING_GUIDELINES.md | Coding Standards |
Contributions are welcome! Please read our contributing guidelines (coming soon) before submitting a PR.
git checkout -b feature/amazing-feature)git commit -m 'feat: add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Project: SamaanShare - Peer-to-Peer Rental Marketplace
Repository: github.com/Muhammad-Saad-Awan/Rentify-SamaanShare-