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.txtor 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.