AskPod is a web application that allows users to upload PDF files and generate podcast audio from the content. The application uses a FastAPI backend to process the PDF files and generate audio, and a Next.js frontend to provide a user interface.
- User authentication (register, login, logout)
- Upload PDF files
- Generate podcast audio from PDF content
- Node.js
- Python 3.12 or higher
Create a .env
file in the app
directory and add the following environment variables:
SECRET_KEY=your_secret_key
OPENAI_API_KEY=your_openai_api_key
MODEL_NAME=gpt-4o-mini
BASE_URL=https://api.openai.com/v1/chat/completions
- Clone the repository:
git clone https://github.com/yourusername/askpod.git
cd askpod
- Install frontend dependencies:
cd askpod
npm install
- Install backend dependencies:
cd app
pip install -r requirements.txt
or using uv
cd app
uv venv
source .venv/bin/activate
uv sync
- Set up the database:
cd app
python -m backend.init_db
- Start the FastAPI backend:
cd app
fastapi run
- Start the Next.js frontend:
cd askpod
npm run dev
- Open http://localhost:3000 in your browser to see the application.
askpod/
: Next.js frontend applicationcomponents/
: React componentspages/
: Next.js pagesstyles/
: Global stylespublic/
: Public assets
app/
: FastAPI backend applicationbackend/
: Backend modulesmain.py
: FastAPI entry pointrequirements.txt
: Python dependenciespyproject.toml
: Python project configuration
POST /register
: Register a new userPOST /login
: Login a userGET /users/me
: Get current user details
POST /upload_pdf
: Upload a PDF file and get parsed textPOST /create_transcript
: Create a transcript from a PDF filePOST /generate_podcast
: Generate podcast audio from a PDF file
Contributions are welcome! Please open an issue or submit a pull request for any changes.
This project is licensed under the MIT License.