Skip to content

berlinbruno/pod-pirate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ΄β€β˜ οΈ Pod Pirate

Next.js React Java Spring Boot MongoDB Azure

Set sail on an audio adventure! Your ultimate destination for discovering, streaming, and managing podcasts.

Pod Pirate is a modern, full-stack podcast platform that combines powerful content creation tools with an elegant listening experience. Whether you're a podcast enthusiast, content creator, or platform administrator, Pod Pirate provides everything you need in one seamless application.


🌟 Why Pod Pirate?

For Listeners

  • Stream your favorite podcasts with a beautiful, responsive audio player
  • Discover new content through an intuitive browse and search interface
  • Enjoy seamless playback with our mini-player that follows you across pages
  • Install as a Progressive Web App for offline listening

For Creators

  • Publish and manage your podcast shows with ease
  • Upload episodes with rich metadata and artwork
  • Track your content with a dedicated creator dashboard
  • Reach your audience with professional-grade tools

For Administrators

  • Comprehensive user management dashboard
  • Content moderation and platform oversight
  • System monitoring and health checks
  • Role-based access control

✨ Key Features

🎧 Audio Experience

  • Advanced audio player with playback controls
  • Mini-player mode for continuous listening
  • Seamless navigation without interrupting playback
  • Support for large audio files (up to 1GB)

πŸ” Security & Authentication

  • Secure JWT-based authentication
  • Email verification and password reset
  • Role-based access (Listener, Creator, Admin)
  • Protected routes and API endpoints

πŸŽ™οΈ Content Management

  • Create and manage podcast shows
  • Upload episodes with metadata and artwork
  • Browse and discover public podcasts
  • Search and filter capabilities

🎨 Modern Interface

  • Clean, responsive design
  • Dark mode support
  • Progressive Web App (PWA) capabilities
  • Optimized for mobile and desktop

☁️ Cloud Integration

  • Azure Blob Storage for media files
  • Secure, time-limited upload URLs
  • CDN-ready content delivery
  • Scalable infrastructure

πŸ—οΈ Architecture

Pod Pirate is built as a full-stack application with a clear separation between frontend and backend:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           πŸ΄β€β˜ οΈ Pod Pirate Platform           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                     β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                         β”‚
        β–Ό                         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Frontend   β”‚ ◄──────► β”‚   Backend    β”‚
β”‚   Next.js    β”‚   REST   β”‚  Spring Boot β”‚
β”‚   React 19   β”‚   API    β”‚   Java 21    β”‚
β”‚ TypeScript 5 β”‚          β”‚   MongoDB    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                         β”‚
        β”‚                         β–Ό
        β”‚                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚                  β”‚   Storage    β”‚
        β”‚                  β”‚    Azure     β”‚
        β”‚                  β”‚ Blob Storage β”‚
        β”‚                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚
        β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    Users     β”‚
β”‚  Browsers    β”‚
β”‚   Mobile     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Frontend - Modern web interface built with Next.js and React
Backend - RESTful API built with Spring Boot and Java
Database - MongoDB for flexible data storage
Storage - Azure Blob Storage for media files


πŸš€ Getting Started

Quick Setup

  1. Clone the repository

    git clone https://github.com/berlinbruno/pod-pirate.git
    cd pod-pirate
  2. Set up the Backend

    cd pod-pirate-backend
    # See pod-pirate-backend/README.md for detailed setup
  3. Set up the Frontend

    cd pod-pirate-frontend
    # See pod-pirate-frontend/README.md for detailed setup

Prerequisites

  • Node.js 20.x or higher
  • Java JDK 21 or higher
  • MongoDB 6.0+ (local or Atlas)
  • Azure Storage Account
  • SMTP server for emails

Detailed Documentation


πŸ› οΈ Technology Stack

Frontend

  • Next.js 16 - React framework with App Router
  • React 19 - UI library
  • TypeScript - Type-safe development
  • Tailwind CSS - Utility-first styling
  • NextAuth.js - Authentication
  • shadcn/ui - UI components

Backend

  • Java 21 - Modern programming language
  • Spring Boot 3.4 - Application framework
  • MongoDB - NoSQL database
  • Spring Security - Authentication & authorization
  • JWT - Token-based auth
  • Maven - Build automation

Infrastructure

  • Azure Blob Storage - Media file storage
  • SMTP - Email delivery
  • RESTful API - Communication protocol

πŸ“¦ Project Structure

pod-pirate/
β”œβ”€β”€ pod-pirate-frontend/     # Next.js web application
β”‚   β”œβ”€β”€ app/                 # Next.js App Router pages
β”‚   β”œβ”€β”€ components/          # React components
β”‚   β”œβ”€β”€ actions/             # Server actions
β”‚   β”œβ”€β”€ lib/                 # Utilities and API clients
β”‚   └── package.json
β”‚
β”œβ”€β”€ pod-pirate-backend/      # Spring Boot API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”‚   β”œβ”€β”€ java/        # Java source code
β”‚   β”‚   β”‚   └── resources/   # Configuration files
β”‚   β”‚   └── test/            # Test files
β”‚   └── pom.xml
β”‚
└── README.md                # This file

πŸ”§ Environment Setup

Both applications require environment variables. Create .env.local files in respective directories:

Frontend Environment

NEXT_BACKEND_URL=http://localhost:8080
NEXTAUTH_URL=http://localhost:3000
AUTH_SECRET=<generate-secret>
NEXT_IMAGES_REMOTE_PATTERN=<azure-hostname>
NEXT_PUBLIC_SITE_URL=http://localhost:3000

Backend Environment

MONGODB_URI=mongodb://localhost:27017/podpirate
AZURE_STORAGE_CONNECTION_STRING=<azure-connection>
AZURE_STORAGE_CONTAINER_NAME=podcasts
SMTP_USER=<email>
SMTP_PASSWORD=<password>
ALLOWED_ORIGINS=http://localhost:3000
FRONTEND_BASE_URL=http://localhost:3000
ADMIN_EMAIL=<admin-email>
JWT_SECRET=<generate-secret>

For detailed configuration, see individual README files in each directory.


πŸš€ Deployment

Deployment Platforms

Frontend

  • Vercel (recommended for Next.js)
  • Netlify
  • AWS Amplify
  • Azure Static Web Apps

Backend

  • Azure App Service
  • AWS Elastic Beanstalk
  • Heroku
  • Docker + Kubernetes

πŸ“Š Features Breakdown

Feature Frontend Backend Status
User Authentication βœ… NextAuth.js βœ… JWT + Spring Security βœ… Complete
Podcast Management βœ… CRUD UI βœ… REST API βœ… Complete
Episode Management βœ… Upload & Browse βœ… Azure Integration βœ… Complete
Audio Player βœ… Custom Player βœ… Secure URLs βœ… Complete
Admin Dashboard βœ… Admin UI βœ… Admin Endpoints βœ… Complete
Email Service βœ… Templates βœ… SMTP Integration βœ… Complete
PWA Support βœ… Manifest + SW N/A βœ… Complete
Dark Mode βœ… Theme Toggle N/A βœ… Complete

🎯 Roadmap

  • Advanced analytics dashboard
  • Social features (comments, likes, shares)
  • Playlist creation and management
  • Episode transcripts with search
  • Multi-language support
  • Podcast RSS feed import

πŸ“ License

This project is licensed under the MIT License.


πŸ‘¨β€πŸ’» Author

Berlin Bruno


πŸ“§ Support

For questions or support:


Built with ❀️ using Next.js, React, Spring Boot, and Java

⭐ Star this repo if you find it useful!

About

Pod Pirate is a full-stack podcast platform demo built with a Next.js frontend and a Spring Boot backend. It showcases secure authentication, podcast and episode management, cloud deployment on Netlify and Azure, and clean, production-style architecture.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages