PayVidi - Secure File Sharing Platform for Creators
PayVidi is a full-stack web application that enables creators (freelancers) to securely share their work with clients, collect feedback, and process payments before delivering final files. The platform features client preview sharing, comment systems, and integrated payment processing.
PayVidi - Secure File Sharing Platform for Creators
Overview
PayVidi is a full-stack web application that enables creators (freelancers) to securely share their work with clients, collect feedback, and process payments before delivering final files. The platform features client preview sharing, comment systems, and integrated payment processing.
System Architecture
Frontend Architecture
- Framework: React 18 with TypeScript
- Build Tool: Vite for fast development and optimized builds
- Routing: Wouter for lightweight client-side routing
- State Management: TanStack Query (React Query) for server state management
- UI Framework: Shadcn/ui components built on Radix UI primitives
- Styling: Tailwind CSS with CSS custom properties for theming
- Payment Integration: Stripe React components for secure payment processing
Backend Architecture
- Runtime: Node.js with Express.js server
- Language: TypeScript with ES modules
- Database: PostgreSQL with Drizzle ORM
- Authentication: Express sessions with bcrypt password hashing
- File Storage: Local file system with multer for uploads
- Payment Processing: Stripe API integration
- Email Service: Nodemailer for transactional emails
Database Schema
- Users: Freelancers, clients, and admins with role-based access
- Projects: Work items with status tracking and client association
- Comments: Timeline and position-based feedback system
- Payments: Stripe payment tracking with commission calculation
- Downloads: Secure file access with expiration and usage limits
Key Components
Authentication & Authorization
- Session-based authentication with role-based access control
- Three user roles: admin, freelancer, client
- Protected routes and API endpoints based on user permissions
Project Management
- Project lifecycle: draft → preview_shared → approved → paid → completed
- File upload system supporting multiple media types (video, audio, images, documents)
- Preview URL generation for client access
Payment Processing
- Stripe integration for secure payment handling
- Commission-based revenue model
- Automatic file access generation post-payment
- Email notifications with download links
File Management
- Secure file uploads with type validation and size limits
- Preview file generation for client review
- Final file delivery after payment confirmation
- Time-limited download tokens with usage tracking
Data Flow
- Project Creation: Freelancer creates project with client details and pricing
- File Upload: Freelancer uploads preview and final files
- Client Preview: Client accesses preview via secure URL with email verification
- Feedback Loop: Client can comment on timeline or specific positions in media
- Approval: Client approves project, triggering payment flow
- Payment: Stripe processes payment with commission calculation
- File Delivery: Download links sent via email with expiration and usage limits
External Dependencies
Core Dependencies
- Database: Neon Database (PostgreSQL serverless)
- Payment Processing: Stripe for payment intents and webhooks
- Email Service: SMTP provider (Gmail/SendGrid) via Nodemailer
- File Storage: Local filesystem (can be extended to cloud storage)
Development Tools
- Drizzle Kit: Database migrations and schema management
- ESBuild: Production build bundling
- TSX: TypeScript execution for development
Deployment Strategy
Production Build
- Frontend: Vite builds optimized static assets to
dist/public - Backend: ESBuild bundles server code to
dist/index.js - Database: Drizzle migrations applied via
db:pushcommand
Environment Configuration
- Development:
npm run dev- TSX server with Vite dev middleware - Production:
npm run start- Node.js serving bundled application - Database: PostgreSQL connection via
DATABASE_URLenvironment variable - Stripe: API keys configured via environment variables
Hosting Requirements
- Node.js 20+ runtime environment
- PostgreSQL database instance
- SMTP service for email delivery
- SSL certificate for secure payment processing
Changelog
Changelog:
- June 17, 2025. Initial setup
User Preferences
Preferred communication style: Simple, everyday language.
Related Documents
GOOBY - Closing Store Marketplace
A marketplace platform for discovering and purchasing inventory from closing retail stores, focused on the NY, NJ, CT, and PA areas.
Lua Code Obfuscator/Deobfuscator
This is a full-stack web application that provides Lua code obfuscation and deobfuscation services specifically designed for Roblox scripts. The application features a professional Monaco code editor with dual-pane interface, comprehensive obfuscation settings, and file upload/download functionality. Built with a modern React frontend and Node.js/Express backend.
GREEN NODE - Project Overview
Full-stack recycling platform connecting waste generators with verified collectors in Cochabamba, Bolivia.
ADN Systems DMR Peer Server
ADN Systems DMR Peer Server is a fork of FreeDMR, implementing a Digital Mobile Radio (DMR) network server. Launched in April 2024 by international amateur radio enthusiasts, it operates on an Open Bridge Protocol (OBP) fostering a decentralized network architecture. The system handles DMR voice and data communication, acting as a conference bridge/reflector that routes traffic between connected systems (repeaters, hotspots, peers) based on configurable bridge rules.