Skip to content

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.

Notifications You must be signed in to change notification settings

shihan84/epg-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Ί EPG Manager - Electronic Program Guide Management System

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.

✨ Status: Production Ready πŸš€

Live Demo: https://epg-builder-nu.vercel.app


🎯 Key Features

🎯 Core Functionality

  • πŸ“Ί 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

🌐 Indian Language Support

  • Hindi, Tamil, Telugu, Kannada, Malayalam, Bengali, Marathi, Gujarati, Punjabi, Oriya, Assamese, English
  • Language-based filtering and categorization
  • Cultural calendar integration ready

🎨 User Interface

  • 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

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • PostgreSQL database (Supabase recommended)

Installation

# 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 dev

Environment Variables

Create 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"

πŸ“ Project Structure

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

🎨 Key Features Explained

Channel Management

  • 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

Program Library

  • 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

Schedule Management

  • 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

Copy Features

  • 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

πŸš€ Deployment

Vercel (Recommended)

  1. Connect Repository - Link your GitHub repository to Vercel
  2. Configure Environment - Set up environment variables in Vercel dashboard
  3. Deploy - Automatic deployment on every push to main branch
# Build for production
npm run build

# Start production server
npm start

Other Platforms

  • Netlify - Connect repository and configure build settings
  • Railway - Deploy with one-click from GitHub template
  • Digital Ocean - Use App Platform for seamless deployment

Environment Variables for Production

DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-ID].supabase.co:5432/postgres"
NODE_ENV="production"

πŸ”§ Development

Database Management

# Push schema changes to database
npm run db:push

# Generate Prisma client
npm run db:generate

# View database (optional)
npm run db:studio

Code Quality

# Run linting
npm run lint

# Type checking
npm run type-check

API Endpoints

  • 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)

🎯 Use Cases

For TV Channel Operators

  • 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

For Streaming Services

  • 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

For Content Distributors

  • 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

πŸ—„οΈ Database Setup

Supabase (Recommended)

  1. Create Supabase Project - Go to supabase.com
  2. Get Database URL - From project settings β†’ database β†’ connection string
  3. Configure Environment - Add DATABASE_URL to your deployment platform

PostgreSQL (Self-hosted)

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

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

πŸ“Š Technology Stack

🎯 Core Framework

  • ⚑ Next.js 15 - React framework with App Router
  • πŸ“˜ TypeScript 5 - Type-safe development
  • 🎨 Tailwind CSS 4 - Utility-first CSS framework

🧩 UI Components

  • 🧩 shadcn/ui - High-quality accessible components
  • 🎯 Lucide React - Beautiful icon library
  • πŸ“Š TanStack Table - Powerful data tables

πŸ—„οΈ Database & Backend

  • πŸ—„οΈ Prisma - Modern ORM with PostgreSQL
  • πŸ” bcryptjs - Password hashing
  • 🌐 REST API - Clean API endpoints

πŸš€ Deployment

  • ⚑ Vercel - Serverless deployment platform
  • πŸ—„οΈ Supabase - PostgreSQL database hosting
  • πŸ“¦ GitHub Actions - CI/CD pipeline

πŸŽ‰ Ready for Production!

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

About

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.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published