Skip to content

About

AI-powered podcast platform that generates episodes with GPT-4o scripts, Stable Diffusion cover art, and Ukrainian text-to-speech — from a single text prompt.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎙️ Master Podcaster (Team Project)

An AI-powered podcast creation platform that generates episodes with AI-written scripts, AI-generated cover art, and Ukrainian text-to-speech — all from a simple text prompt.

Welcome Page

👥 Team Project

Backend & AI Services (My Role): Kotlin Ktor REST API, Python AI microservice (GPT-4o, Stable Diffusion 1.5, Coqui TTS), MySQL database integration, and JWT Authentication.

Frontend: Developed by teammate — React + Vite SPA.

Features

  • 🤖 AI Episode Generation — write a prompt, get a full podcast episode with audio
  • 🎨 AI Cover Art — Stable Diffusion generates unique podcast artwork
  • 🔊 Ukrainian TTS — natural speech synthesis via Coqui VITS model
  • 📝 Auto-Summarization — GPT-4o-mini creates episode summaries
  • 🔐 JWT Authentication — secure user accounts with role-based access
  • 🛡️ Moderation System — moderators can manage users and content
  • 🔍 Search & Discovery — browse and search public podcasts
  • 📱 Responsive UI — works on desktop and mobile
  • 🌙 Dark/Light Theme — toggleable color scheme

Screenshots

Podcast Page

Podcast page with AI-generated cover, episode summaries, and audio player

Mobile View

Responsive mobile layout

Architecture

┌──────────────┐     ┌───────────────────┐     ┌──────────────────┐
│   Frontend   │────▶│   ktorBackend     │────▶│    MySQL DB      │
│   React+Vite │     │   Ktor :8080      │     │                  │
│   :5173      │◀────│                   │◀────│  Users, Podcasts │
└──────────────┘     │   PythonAiService │     │  Episodes        │
                     └────────┬──────────┘     └──────────────────┘
                              │
                              ▼
                     ┌───────────────────┐     ┌──────────────────┐
                     │   pythonAI        │────▶│  media/          │
                     │   Flask :5000     │     │  ├── audio/*.wav │
                     │                   │     │  └── image/*.png │
                     │  GPT-4o • SD 1.5  │     └──────────────────┘
                     │  Coqui TTS        │
                     └───────────────────┘

Component Diagram

Tech Stack

Layer Technologies
Frontend React, Vite, JavaScript
Backend API Kotlin 2.1, Ktor 3.1, Netty
AI Service Python, Flask, PyTorch
Database MySQL 8 + JetBrains Exposed ORM
AI Models GPT-4o-mini, Stable Diffusion v1.5, Coqui TTS (uk/mai/vits)
Auth JWT + BCrypt

Project Structure

master-podcaster/
├── frontend/               # React + Vite SPA
├── backend/
│   ├── ktorBackend/        # Kotlin Ktor REST API
│   ├── pythonAI/           # Python AI microservice
│   └── media/              # Generated audio & images
├── doc/
│   ├── diagrams/           # PlantUML source files
│   └── images/             # Rendered diagrams & screenshots
└── LICENSE

Quick Start

1. Database

Start MySQL and create a database. Configure credentials in backend/ktorBackend/src/main/kotlin/config/config.kt.

2. Python AI Service

cd backend/pythonAI
echo "GITHUB_TOKEN=your_token" > .env
pip install flask openai python-dotenv torch diffusers transformers accelerate TTS
python main.py                          # http://localhost:5000

3. Ktor Backend

cd backend/ktorBackend
./gradlew run                           # http://localhost:8080

4. Frontend

cd frontend
npm install
npm run dev                             # http://localhost:5173

Documentation

License

The Unlicense — public domain.

About

AI-powered podcast platform that generates episodes with GPT-4o scripts, Stable Diffusion cover art, and Ukrainian text-to-speech — from a single text prompt.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages