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-