Skip to content

asna-154/Podcraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ™οΈ PodCraft β€” Agentic AI Podcast Episode Planning System

PodCraft is an intelligent, agentic AI-based podcast episode planning system designed to automate and streamline the pre-production phase of podcast creation. It helps podcasters research topics, analyze guest backgrounds, and organize complete episode plans β€” all from a single platform.

This project was developed as part of the Software Engineering (CSC291) course at COMSATS University, Islamabad.


πŸ“Œ Table of Contents


πŸ“– Overview

Podcast creators often spend hours on manual research, unstructured planning, and scattered digital tools before recording an episode. PodCraft solves this by using autonomous AI agents that:

  • Analyze podcast niche and guest information
  • Research relevant, trending topics
  • Generate structured episode plans
  • Allow bookmarking and refining of research topics

The system is built as a cross-platform web dashboard with a complete MVC architecture.


βœ… Modules Implemented

Module Description
Module 1 β€” User Authentication & Profile Management Registration, login, JWT-based sessions, account lockout, password recovery, profile and notification settings
Module 2 β€” User Intent & Guest Analyzer Episode niche/topic intake, tone selection, guest profile management with AI-generated guest summaries
Module 3 β€” Topic Research Agent AI-simulated topic research, relevance scoring, category filtering, bookmarking, and rejection of topics

Full use cases, functional requirements, and SRS documentation are available in the project report.


πŸ› οΈ Tech Stack

Frontend

  • React JS (v18+)
  • React Router DOM
  • Axios
  • React Toastify

Backend

  • Node.js
  • Express JS
  • JWT (jsonwebtoken)
  • bcryptjs

Database

  • MongoDB (Atlas)
  • Mongoose ODM

Architecture

  • MVC (Model-View-Controller)

πŸ—οΈ Architecture

Client (React) ⇄ REST API (Express) ⇄ MongoDB (Mongoose)
  • Models β€” Mongoose schemas for User, Episode, and Research
  • Controllers β€” Business logic for auth, episodes, and research
  • Routes β€” Express route definitions
  • Middleware β€” JWT-based route protection

πŸ“‚ Project Structure

podcraft/
β”œβ”€β”€ Backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── db.js
β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ authController.js
β”‚   β”‚   β”œβ”€β”€ episodeController.js
β”‚   β”‚   └── researchController.js
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   └── authMiddleware.js
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ User.js
β”‚   β”‚   β”œβ”€β”€ Episode.js
β”‚   β”‚   └── Research.js
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ authRoutes.js
β”‚   β”‚   β”œβ”€β”€ episodeRoutes.js
β”‚   β”‚   └── researchRoutes.js
β”‚   └── server.js
β”‚
β”œβ”€β”€ frontend/
β”‚   └── podcraft-frontend/
β”‚       β”œβ”€β”€ src/
β”‚       β”‚   β”œβ”€β”€ components/
β”‚       β”‚   β”‚   └── common/
β”‚       β”‚   β”‚       └── Navbar.js
β”‚       β”‚   β”œβ”€β”€ context/
β”‚       β”‚   β”‚   └── AuthContext.js
β”‚       β”‚   β”œβ”€β”€ pages/
β”‚       β”‚   β”‚   β”œβ”€β”€ Login.js
β”‚       β”‚   β”‚   β”œβ”€β”€ Register.js
β”‚       β”‚   β”‚   β”œβ”€β”€ Dashboard.js
β”‚       β”‚   β”‚   β”œβ”€β”€ EpisodePage.js
β”‚       β”‚   β”‚   β”œβ”€β”€ ResearchPage.js
β”‚       β”‚   β”‚   β”œβ”€β”€ ProfilePage.js
β”‚       β”‚   β”‚   └── EpisodeHistoryPage.js
β”‚       β”‚   β”œβ”€β”€ utils/
β”‚       β”‚   β”‚   └── api.js
β”‚       β”‚   └── App.js
β”‚
└── docs/
    β”œβ”€β”€ Podcraft_Scope.pdf
    β”œβ”€β”€ Podcraft_SRS.pdf
    β”œβ”€β”€ Podcraft_SRS_Presentation.pptx
    β”œβ”€β”€ Podcraft_Scope_Presentation.pptx
    β”œβ”€β”€ Podcraft_SDS.pdf
    β”œβ”€β”€ Podcraft_TestCases.pdf
    └── Podcraft-Final-Report-Presentation.pptx

πŸš€ Getting Started

Prerequisites

  • Node.js (v18+)
  • npm
  • MongoDB Atlas account (or local MongoDB instance)

1. Clone the repository

git clone https://github.com/asna-154/Podcraft.git
cd Podcraft

2. Backend Setup

cd Backend
npm install

Create a .env file in the Backend folder:

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRE=24h
FRONTEND_URL=http://localhost:3000

Run the backend:

npm run dev

3. Frontend Setup

cd frontend/podcraft-frontend
npm install

Create a .env file in the podcraft-frontend folder (optional, defaults to localhost):

REACT_APP_API_URL=http://localhost:5000/api

Run the frontend:

npm start

The app will be available at http://localhost:3000.


πŸ” Environment Variables

Variable Description
PORT Backend server port (default: 5000)
MONGO_URI MongoDB connection string
JWT_SECRET Secret key used to sign JWT tokens
JWT_EXPIRE JWT token expiry duration
FRONTEND_URL Allowed origin for CORS
REACT_APP_API_URL Base URL the frontend uses to call the backend API

πŸ”— API Endpoints

Auth

Method Endpoint Description
POST /api/auth/register Register a new user
POST /api/auth/login Login user
GET /api/auth/me Get current logged-in user
PUT /api/auth/update Update account details
PUT /api/auth/update-password Update password
POST /api/auth/logout Logout user
DELETE /api/auth/delete Delete account

Episodes

Method Endpoint Description
POST /api/episodes Create a new episode
GET /api/episodes Get all episodes for logged-in user
GET /api/episodes/:id Get a single episode
PUT /api/episodes/:id Update an episode
DELETE /api/episodes/:id Delete an episode
POST /api/episodes/:id/guests Add a guest to an episode
PUT /api/episodes/:id/guests/:guestId Edit a guest
DELETE /api/episodes/:id/guests/:guestId Delete a guest
GET /api/episodes/history Get completed episode history

Research

Method Endpoint Description
POST /api/research/generate/:episodeId Generate research for an episode
POST /api/research/refresh/:episodeId Refresh research topics
GET /api/research/:episodeId Get research topics for an episode
GET /api/research/:episodeId/bookmarks Get bookmarked topics
PUT /api/research/:researchId/bookmark Bookmark/unbookmark a topic
PUT /api/research/:researchId/reject Reject a topic

πŸ‘₯ Team

Name Registration No. Contribution
Asna Hammad FA23-BDS-051 Web Dashboard Development
Awais Ashraf FA23-BDS-053 Mobile App Development

Supervisor: Dr. Tehseen Riaz Abbasi Course: Software Engineering (CSC291) Institution: COMSATS University, Islamabad


πŸ“„ License

This project was developed for academic purposes as part of a university course assignment.

About

πŸŽ™οΈ PodCraft β€” An agentic AI-powered podcast episode planning system built with React, Node.js, Express, and MongoDB. Automates topic research, guest analysis, and episode planning using a full MVC architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages