TikTok Engagement Platform Development -- 2

Job ID: 40022172

Budget: $3,000 – $5,000 USD

Project Title: - Social Media Growth Platform (Full-Stack Build)

1. Project Overview
I have a complete high-fidelity frontend prototype built in React + Tailwind CSS. I need a senior developer to migrate this to Next.js (App Router) and build the complete Backend infrastructure.

The platform sells TikTok engagement via one-time purchases and subscriptions. It also features a User Dashboard, Digital Wallet system, and an Account Marketplace.

2. Preferred Tech Stack
Frontend: Next.js 14+ (App Router) with TypeScript.
Styling: Tailwind CSS (Files provided).
Database: PostgreSQL (via Supabase or Neon) OR MongoDB.
ORM: Prisma.
Auth: NextAuth.js (v5) or Clerk.
Payments: checkout.com and Stripe (Credit Cards) + CoinPayments/NowPayments (Crypto).
Email: Resend or SendGrid (Transactional emails).
3. Core Features & Backend Logic Required

A. Authentication & User Management
Sign Up/Login: Email/Password and Google OAuth.
Dashboard: Users must see their order history, active subscriptions, and wallet balance.
Admin Roles: Admin users must access the Admin Panel to manage orders, users, and site content.
B. The "SMM Bridge" (Critical Logic)
API Integration: When a user purchases a package (e.g., "1000 Likes"), the backend must automatically send an API request to a wholesale SMM (Social Media Marketing) Provider (e.g., JAP, Peakerr, or a custom provider API) to fulfill the order.
Status Sync: A cron job or webhook listener must sync the order status (Pending → Processing → Completed) from the SMM provider back to our database.
C. Automatic Likes/Views Subscription System
The "Scraper" Logic: For subscription users, the system must monitor their TikTok profile.
Trigger: When a new video is detected, the backend must automatically create an order for that video based on their subscription plan.
Limits: Logic to handle daily limits and subscription expiry.
D. Digital Wallet System
Top-Up: Users can deposit funds via Stripe/Crypto.
Ledger: Internal database logic to deduct funds when purchasing services or bidding on auctions.
Gift Cards: Logic to generate unique codes and redeem them for wallet credit.
E. Account Marketplace (Escrow)
Listings: CRUD operations for users to list accounts.
Bidding System: Real-time or optimistic UI updates for placing bids.
Escrow Logic: When a buyer purchases an account, funds move from their Wallet to a "Held" state until Admin approves the transfer.
F. Payment Processing
Webhooks: Secure implementation of Stripe Webhooks to listen for payment_intent.succeeded events to create orders/add wallet funds.
Crypto: Handling async crypto confirmations.
4. Admin Panel Capabilities
CMS: Ability to edit Blog posts, FAQs, and Pricing Packages from the Admin UI (save to DB).
User Management: Ability to ban users, manually adjust wallet balances, and view transaction logs.
Order Management: Ability to retry failed API orders or issue refunds.
5. Non-Functional Requirements
SEO: Utilize Next.js Server Side Rendering (SSR) for the Home, Blog, and Service pages.
Performance: Images must use next/image. Core Web Vitals must be green.
Security: Rate limiting on API routes, CSRF protection, and input validation (Zod).
6. Deliverables
Source code (Git repository).
Database schema setup script.
Environment variable template (.env.example).
Deployment instructions (Vercel + Database).
3 Critical Questions to Ask the Developer
Before hiring, ask them these questions to ensure they know what they are doing:

"How will you handle the Automatic Likes detection?"
Good Answer: "I will use a third-party TikTok Scraper API (like Apify or RapidAPI) combined with a Cron Job (scheduled task) that runs every 5-10 minutes to check for new posts."
Bad Answer: "I will build a scraper from scratch." (This will break constantly due to TikTok's anti-bot protection).
"How do you handle 'Race Conditions' in the wallet system?"
Good Answer: "I will use Database Transactions (ACID) to ensure that if a user clicks 'Pay' twice, the balance is only deducted once."
"How do you connect to the SMM Panel?"
Good Answer: "I will create a Service Layer in the backend that maps your local packages (e.g., 'Gold Package') to the SMM Provider's Service ID (e.g., 'ID: 4421') and sends a POST request upon successful payment webhook."