A Web3-powered short-form video platform that resurrects dead social media platforms (Vine, Clubhouse, Quora Spaces) with blockchain technology, creator monetization, and decentralized content verification.
Built for Kiroween Hackathon | 95% Complete - MVP Ready
- π¬ Short-form video uploads (6-60 seconds)
- πΎ Local storage (free, no cloud costs)
- π IPFS pinning via Pinata
- π° Token-based rewards (DTC - DeadTrendCreator tokens)
- πΌοΈ NFT minting for content ownership
- β‘ Real-time engagement via Socket.IO
- π» Like, share, comment with live updates
- π¨ Spooky UI theme with ghost animations
- π MetaMask integration
- π Creator dashboard with analytics
- Node.js 18+
- MetaMask browser extension
- Firebase project (free tier)
- Pinata account (free tier)
- Clone the repository:
git clone https://github.com/yourusername/DeadTrendTracker.git
cd DeadTrendTracker- Install dependencies:
npm install
cd frontend && npm install
cd ../backend && npm install- Configure environment variables:
Frontend (frontend/.env):
VITE_API_URL=http://localhost:5000
VITE_FIREBASE_API_KEY=your-firebase-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id
VITE_POLYGON_RPC_URL=https://polygon-mainnet.g.alchemy.com/v2/your-key
VITE_CREATOR_TOKEN_ADDRESS=0x...
VITE_CONTENT_NFT_ADDRESS=0x...
VITE_REWARD_POOL_ADDRESS=0x...Backend (backend/.env):
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_CLIENT_EMAIL=your-service-account@project.iam.gserviceaccount.com
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"
PINATA_API_KEY=your-pinata-api-key
PINATA_SECRET_KEY=your-pinata-secret-key
POLYGON_RPC_URL=https://polygon-mainnet.g.alchemy.com/v2/your-key
CREATOR_TOKEN_ADDRESS=0x...
CONTENT_NFT_ADDRESS=0x...
REWARD_POOL_ADDRESS=0x...
PORT=5000
API_URL=http://localhost:5000- Start the servers:
# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
cd frontend
npm run dev- Open your browser:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
- Connect MetaMask - Click "Connect Wallet" in the header
- Upload Videos - Go to Upload page, select video (6-60 seconds), add details
- Browse Feed - See all videos, hover to preview, click to watch
- Engage - Like (π»), Share (π), Comment (π¬) on videos
- Dashboard - View your videos, stats, and token balance
- React 18 + TypeScript
- Tailwind CSS
- Web3.js
- Socket.io-client
- React Router
- Vite
- Node.js + Express
- TypeScript
- Socket.IO
- Firebase Admin SDK
- Pinata SDK (IPFS)
- Multer (file uploads)
- Solidity smart contracts
- Polygon Mainnet
- OpenZeppelin libraries
- Hardhat
- Web3.js
- Local filesystem (videos)
- IPFS via Pinata
- Firebase Firestore (metadata)
DeadTrendTracker/
βββ frontend/
β βββ src/
β β βββ components/ # React components
β β β βββ VideoCard.tsx
β β β βββ VideoFeed.tsx
β β β βββ VideoPlayer.tsx
β β β βββ VideoUpload.tsx
β β β βββ CreatorDashboard.tsx
β β β βββ WalletConnect.tsx
β β βββ hooks/ # Custom hooks
β β β βββ useWeb3.ts
β β βββ pages/ # Page components
β β β βββ VideoPlayerPage.tsx
β β βββ styles/ # CSS
β βββ package.json
βββ backend/
β βββ src/
β β βββ routes/ # API endpoints
β β β βββ videos.ts
β β β βββ blockchain.ts
β β βββ utils/ # Utilities
β β β βββ localStorage.ts
β β β βββ ipfs.ts
β β β βββ blockchain.ts
β β β βββ validation.ts
β β βββ socket/ # Socket.IO handlers
β β βββ middleware/ # Express middleware
β β βββ config/ # Configuration
β βββ contracts/ # Solidity contracts
β β βββ CreatorToken.sol
β β βββ ContentNFT.sol
β β βββ RewardPool.sol
β βββ test/ # Contract tests
β βββ uploads/ # Local video storage
βββ .kiro/ # Kiro specs
βββ specs/
βββ video-platform-core/
βββ requirements.md
βββ design.md
βββ tasks.md
- Upload videos with validation (6-60 seconds)
- Local storage (free, no cloud costs)
- IPFS pinning for decentralization
- Automatic NFT minting (optional)
- Like videos with instant updates
- Share videos with clipboard copy
- Comment with live feed
- Ghost animations on engagement
- Socket.IO broadcasting
- View all your videos
- Track engagement metrics
- Check token balance
- See IPFS hashes
- View NFT token IDs
- Dark haunting theme
- Purple and green accents
- Ghost float animations
- Glow effects
- Responsive design
# Smart contract tests
cd backend
npx hardhat test
# Backend tests
cd backend
npm test
# Run all tests
npm testPOST /api/videos/upload- Upload videoGET /api/videos/feed- Get video feedGET /api/videos/:id- Get video by IDPOST /api/videos/:id/like- Like videoPOST /api/videos/:id/share- Share videoPOST /api/videos/:id/comment- Comment on videoGET /api/videos/creator/:address- Get creator's videos
GET /api/blockchain/balance/:address- Get token balancePOST /api/blockchain/claim-rewards- Claim rewards
Deployed on Polygon Mainnet:
- CreatorToken (DTC):
0xd9145CCE52D386f254917e481eB44e9943F39138 - ContentNFT:
0xf8e81D47203A594245E36C48e151709F0C19fBe8 - RewardPool:
0xD7ACd2a9FD159E69Bb102A1ca21C9a3e3A5F771B
Frontend (Vercel):
- Set Root Directory to
frontend - Add environment variables from
frontend/.env - Deploy!
Backend (Render):
- Set Root Directory to
backend - Add environment variables from
backend/.env - Deploy!
π Full deployment guide: See VERCEL_DEPLOYMENT.md π§ Having issues?: See VERCEL_FIX.md
- Frontend: Vercel (Static hosting)
- Backend: Render (Node.js server)
- Storage: IPFS via Pinata
- Database: Firebase Firestore
- Blockchain: Polygon Mainnet
MIT License - See LICENSE file for details
Contributions welcome! Please feel free to submit a Pull Request.
Built with π» for the Kiroween Hackathon
- Kiro IDE for the amazing development experience
- OpenZeppelin for secure smart contract libraries
- Polygon for fast and cheap transactions
- Pinata for IPFS pinning services
- Firebase for database and storage
Happy haunting! ππ»