尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Nigeria's most trusted property marketplace with 5-layer verification, escrow payments, and estate management tools.
src/
├── app/ # Next.js App Router pages
│ ├── (public)/ # Public routes (landing, listings, auth)
│ ├── (dashboard)/ # Protected dashboard routes
│ │ ├── dashboard/ # Role-specific dashboards
│ │ ├── tenant/ # Tenant portal
│ │ ├── agent/ # Agent portal
│ │ ├── admin/ # Admin console
│ │ └── estate-manager/ # Estate manager B2B
│ └── api/ # API routes
├── components/
│ ├── ui/ # Base UI components (shadcn/ui)
│ ├── layout/ # Layout components (sidebar, topbar)
│ ├── listings/ # Listing-specific components
│ ├── verification/ # Verification wizard components
│ ├── agreements/ # Agreement components
│ └── orgs/ # Organisation components
├── lib/ # Core utilities & clients
│ ├── prisma.ts # Prisma singleton
│ ├── auth.ts # Clerk auth helpers
│ ├── utils.ts # Utility functions
│ ├── validators.ts # Zod schemas
│ ├── paystack.ts # Paystack client
│ ├── cloudinary.ts # Cloudinary upload helpers
│ ├── prembly.ts # Prembly identity verification
│ ├── termii.ts # Termii SMS client
│ ├── email.ts # Email templates & sender
│ ├── verification.ts # 5-layer verification state machine
│ └── fees.ts # Fee calculation logic
├── hooks/ # Custom React hooks
├── types/ # TypeScript type definitions
└── styles/ # Global styles
prisma/
├── schema.prisma # Database schema
└── seed.ts # Development seed data
# Clone and install dependencies
cd propati-nextjs
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your credentials
# Set up database
npm run prisma:generate
npm run prisma:migrate
npm run prisma:seed
# Start development server
npm run dev
See .env.example for all required variables. Key variables:
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL connection string (Supabase pooler) |
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY | Clerk publishable key |
CLERK_SECRET_KEY | Clerk secret key |
PAYSTACK_SECRET_KEY | Paystack secret key |
PAYSTACK_WEBHOOK_SECRET | Paystack webhook signing secret |
CLOUDINARY_CLOUD_NAME | Cloudinary cloud name |
CLOUDINARY_API_KEY / CLOUDINARY_API_SECRET | Cloudinary credentials |
PREMBLY_API_KEY | IdentityPass/Prembly API key |
TERMII_API_KEY / TERMII_SENDER_ID | Termii SMS credentials |
SMTP_* | Email SMTP configuration |
npm run dev # Start dev server
npm run build # Production build
npm run start # Start production server
npm run lint # Run ESLint
npm run typecheck # Run TypeScript type checking
npm run test # Run Vitest tests
npm run test:ui # Run Vitest with UI
npm run prisma:generate # Generate Prisma client
npm run prisma:migrate # Run migrations (dev)
npm run prisma:migrate:prod # Deploy migrations (prod)
npm run prisma:studio # Open Prisma Studio
npm run prisma:seed # Seed database
npm run db:push # Push schema changes
npm run db:reset # Reset database
The schema includes 24 tables covering:
See DATABASE_SCHEMA.md for complete documentation.
in_escrow# Unit & integration tests
npm run test
# E2E tests (requires dev server running)
npx playwright test
# Production
npm run prisma:migrate:prod
Proprietary - PropatiBox 2024
Built with ❤️ for the Nigerian property market.