A comprehensive web application for managing Electronic Program Guides (EPG) for TV channels and streaming services. Built specifically for Indian language channels with support for schedule copying, program management, and multi-channel operations.
Live Demo: https://epg-builder-nu.vercel.app
- πΊ Channel Management - Add, edit, and organize TV channels with language and category support
- π¬ Program Library - Manage program content with metadata, duration, and categorization
- π Schedule Management - Create and manage program schedules with recurring support
- π Schedule Copying - Copy schedules between channels with smart time adjustments
- π Program Copying - Duplicate programs between channels with conflict resolution
- π₯ User Authentication - Secure login system for multiple clients
- Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Marathi, Gujarati, Punjabi, Oriya, Assamese, English
- Language-based filtering and categorization
- Cultural calendar integration ready
- Responsive Design - Works seamlessly on desktop, tablet, and mobile
- Modern UI - Built with shadcn/ui components and Tailwind CSS
- Intuitive Navigation - Clean dashboard with easy access to all features
- Real-time Updates - Instant feedback for all operations
- Node.js 18+
- npm or yarn
- PostgreSQL database (Supabase recommended)
# Clone the repository
git clone https://github.com/shihan84/epg-builder.git
cd epg-builder
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your database URL
# Initialize database
npm run db:push
# Start development server
npm run devCreate a .env file in the root directory:
# PostgreSQL Database (Supabase)
DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-ID].supabase.co:5432/postgres"
# Application Configuration (Optional for development)
NEXTAUTH_SECRET="your-secret-key-here"
NEXTAUTH_URL="http://localhost:3000"
# Node Environment
NODE_ENV="development"src/
βββ app/ # Next.js App Router
β βββ api/ # API endpoints
β β βββ auth/ # Authentication routes
β β βββ channels/ # Channel management
β β βββ programs/ # Program management
β β βββ schedules/ # Schedule management
β β βββ dashboard/ # Dashboard stats
β βββ dashboard/ # Dashboard pages
β βββ login/ # Login page
β βββ register/ # Registration page
β βββ setup/ # Setup page
β βββ page.tsx # Landing page
βββ components/ # React components
β βββ ui/ # shadcn/ui components
βββ hooks/ # Custom React hooks
βββ lib/ # Utilities and configurations
βββ db.ts # Database client
βββ utils.ts # Helper functions
βββ socket.ts # WebSocket setup
- Multi-language Support - Add channels in various Indian languages
- Categorization - Organize channels by type (Entertainment, News, Sports, etc.)
- Metadata Management - Channel logos, descriptions, and streaming URLs
- Active/Inactive Toggle - Enable/disable channels without deletion
- Rich Metadata - Title, description, duration, category, genre, rating
- Image Support - Program thumbnails and posters
- Content Organization - Filter by category, genre, and language
- Status Management - Active/inactive program status
- Flexible Scheduling - One-time and recurring schedules
- Recurring Patterns - Select specific days for weekly programs
- Time Management - Precise start/end time controls
- Conflict Detection - Built-in overlap prevention
- Schedule Copying - Copy schedules between channels with date adjustment
- Program Copying - Duplicate programs with automatic conflict resolution
- Bulk Operations - Select multiple items for batch copying
- Smart Time Calculation - Automatic time offset adjustments
- Connect Repository - Link your GitHub repository to Vercel
- Configure Environment - Set up environment variables in Vercel dashboard
- Deploy - Automatic deployment on every push to main branch
# Build for production
npm run build
# Start production server
npm start- Netlify - Connect repository and configure build settings
- Railway - Deploy with one-click from GitHub template
- Digital Ocean - Use App Platform for seamless deployment
DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-ID].supabase.co:5432/postgres"
NODE_ENV="production"# Push schema changes to database
npm run db:push
# Generate Prisma client
npm run db:generate
# View database (optional)
npm run db:studio# Run linting
npm run lint
# Type checking
npm run type-check- Authentication:
/api/auth/login,/api/auth/register,/api/auth/logout - Channels:
/api/channels(GET, POST),/api/channels/[id](PUT, DELETE) - Programs:
/api/programs(GET, POST),/api/programs/[id](PUT, DELETE) - Schedules:
/api/schedules(GET, POST),/api/schedules/[id](PUT, DELETE) - Copy Operations:
/api/schedules/copy,/api/programs/copy - Setup:
/api/setup/test-user(create demo user)
- Multi-channel Management - Manage multiple channels from a single dashboard
- Schedule Planning - Create weekly/monthly program schedules
- Template Reuse - Save schedule patterns for repeated use
- Bulk Operations - Copy schedules between similar channels
- Content Organization - Manage program libraries with rich metadata
- Schedule Automation - Set up recurring program schedules
- Channel Branding - Customize channel information and logos
- Multi-language Support - Handle content in various Indian languages
- Client Management - Multiple client accounts with isolated data
- Schedule Sharing - Copy proven schedules between client channels
- Program Duplication - Quickly populate new channels with existing content
- Reporting - Track channel and program statistics
- Create Supabase Project - Go to supabase.com
- Get Database URL - From project settings β database β connection string
- Configure Environment - Add
DATABASE_URLto your deployment platform
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Documentation: Check this README and inline code comments
- Issues: Open an issue on GitHub for bug reports or feature requests
- Discussions: Use GitHub Discussions for general questions
- β‘ Next.js 15 - React framework with App Router
- π TypeScript 5 - Type-safe development
- π¨ Tailwind CSS 4 - Utility-first CSS framework
- π§© shadcn/ui - High-quality accessible components
- π― Lucide React - Beautiful icon library
- π TanStack Table - Powerful data tables
- ποΈ Prisma - Modern ORM with PostgreSQL
- π bcryptjs - Password hashing
- π REST API - Clean API endpoints
- β‘ Vercel - Serverless deployment platform
- ποΈ Supabase - PostgreSQL database hosting
- π¦ GitHub Actions - CI/CD pipeline
Built with β€οΈ for the Indian TV broadcasting community. Streamline your EPG management with modern web technology.
Live Demo: https://epg-builder-nu.vercel.app
Last Updated: September 2025