Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 35 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,43 @@
# Podify 🎧
# 🎧 Podify – Your Personalized Podcast Hub

## Summary
Podify is a personalized podcast platform that recommends curated podcasts based on user-selected topics. It tracks user listening history, fetches relevant podcasts from YouTube, and ensures fresh daily content, enhancing the overall podcast listening experience.
## 🚀 Summary

**Podify** is a next-gen podcast platform that delivers **personalized, curated podcasts** based on your interests. It tracks your listening habits, fetches relevant podcasts from YouTube, and refreshes content daily—ensuring a seamless and engaging listening experience.

## 🎬 Preview
### Home
![Podify Preview](client/public/image1.png)

### Login
![Podify Preview](client/public/image2.png)

### Dashboard
![Podify Preview](client/public/image3.png)

## 🛠 Tech Stack

## Tech Stack
- **Frontend:** Next.js, React.js, TypeScript, Sass, NextAuth.js (OAuth)
- **Backend:** Java, Spring Boot, PostgreSQL (User & Topic Management), MongoDB (Podcasts Storage)
- **Backend:** Java, Spring Boot, PostgreSQL (User & Topic Management), MongoDB (Podcast Storage)
- **APIs & Tools:** YouTube Data API v3, REST APIs, Scheduled Tasks, OAuth Authentication

## Features
- Personalized podcast recommendations per user
- Topic-based organization of podcasts
- Daily refresh of podcasts to keep content up-to-date
- Tracks watch history and progress per user
- Embedded video player for each podcast with smooth scroll and progress tracking
- OAuth login via Google for secure authentication
## ✨ Features

- 🎯 **Personalized recommendations** based on user-selected topics
- 📂 **Topic-based organization** of podcasts for easy discovery
- 🔄 **Daily refresh** of podcasts to keep content fresh and relevant
- ⏱ **Watch history & progress tracking** per user
- 📺 **Embedded video player** with smooth playback and progress syncing
- 🔐 **OAuth login via Google** for secure authentication

## ⚙️ How It Works

## How It Works
1. Users select topics → preferences saved in PostgreSQL.
2. Backend fetches top podcasts for each topic from MongoDB.
3. If podcasts are missing or outdated, backend fetches new podcasts from YouTube and updates MongoDB.
4. Frontend displays personalized podcast lists dynamically.
5. Each podcast can be played directly via the embedded video player; progress is tracked and synced to backend.
6. Scheduled daily refresh ensures fresh and relevant content while preserving user watch history.
3. If podcasts are missing or outdated → fetches new ones from YouTube & updates MongoDB.
4. Frontend dynamically displays **personalized podcast lists**.
5. Play podcasts directly via the embedded video player → progress synced to backend.
6. Scheduled **daily refresh** ensures fresh content while preserving user history.

## 💡 Why Podify?

Podify isn’t just a podcast app—it’s a **smart, personalized podcast experience** that adapts to your interests and keeps your listening journey fresh every day.
Binary file added client/public/image1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added client/public/image2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added client/public/image3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading