Skip to content

Latest commit

 

History

History
120 lines (82 loc) · 2.26 KB

File metadata and controls

120 lines (82 loc) · 2.26 KB

AskPod

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.

Features

  • User authentication (register, login, logout)
  • Upload PDF files
  • Generate podcast audio from PDF content

Getting Started

Prerequisites

  • Node.js
  • Python 3.12 or higher

Environment Variables

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

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/askpod.git
cd askpod
  1. Install frontend dependencies:
cd askpod
npm install
  1. Install backend dependencies:
cd app
pip install -r requirements.txt

or using uv

cd app
uv venv
source .venv/bin/activate
uv sync
  1. Set up the database:
cd app
python -m backend.init_db

Running the Application

  1. Start the FastAPI backend:
cd app
fastapi run
  1. Start the Next.js frontend:
cd askpod
npm run dev
  1. Open http://localhost:3000 in your browser to see the application.

Project Structure

  • askpod/: Next.js frontend application
    • components/: React components
    • pages/: Next.js pages
    • styles/: Global styles
    • public/: Public assets
  • app/: FastAPI backend application
    • backend/: Backend modules
    • main.py: FastAPI entry point
    • requirements.txt: Python dependencies
    • pyproject.toml: Python project configuration

API Endpoints

Authentication

  • POST /register: Register a new user
  • POST /login: Login a user
  • GET /users/me: Get current user details

PDF Processing

  • POST /upload_pdf: Upload a PDF file and get parsed text
  • POST /create_transcript: Create a transcript from a PDF file
  • POST /generate_podcast: Generate podcast audio from a PDF file

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any changes.

License

This project is licensed under the MIT License.