Fabriku
Fabriku — 생산·재고·판매 관리, 웹사이트로 제품·서비스 전시·주문·고객 요청 관리
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 riskyREADME 전문 보기 ↗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-