Skip to content

PythonicVarun/PPT-Generator

Your Text, Your Style – Auto-Generate a Presentation 🚀

This web application transforms bulk text, markdown, or prose into a fully formatted PowerPoint presentation using a user-provided template and the power of Large Language Models (LLMs).

Demo


Features

  • Text-to-Presentation: 📄➡️📊 Converts long-form text or markdown into structured presentation slides.
  • Template-Based Styling: 🎨 Applies the visual style, colors, fonts, and layouts from a user-provided .pptx or .potx template.
  • Pre-Available Templates: 📚 Comes with a selection of ready-to-use presentation templates.
  • Template Suggestion: 💡 Suggests the best template for your content using an LLM.
  • Multi-Provider LLM Support: 🤖 Compatible with major LLM providers like Google (Gemini) and OpenAI (GPT).
  • Dynamic Model Selection: ⚙️ Fetches and displays available models based on the user's API key.
  • Secure API Key Handling: 🔒 API keys are sent directly to the respective LLM provider and are never stored on our server.
  • Slide Previews: 🖼️ Generates image previews of the slides before downloading.

Tech Stack

Frontend 💻

  • Framework: Next.js (React)
  • Language: TypeScript
  • Styling: Tailwind CSS
  • UI Components: Shadcn/ui, Lucide React
  • Editor: MDEditor

Backend 🛠️

  • Framework: FastAPI
  • Language: Python
  • Presentation Engine: python-pptx
  • LLM Integration: openai, google-generativeai
  • Data Validation: Pydantic

Local Development Setup

Follow these steps to run the application on your local machine.

Prerequisites

  • Python 3.8+ and pip
  • Node.js 18+ and yarn

1. Clone the Repository 📂

git clone https://github.com/PythonicVarun/PPT-Generator.git
cd PPT-Generator

2. Backend Setup ⚙️

# Navigate to the backend directory
cd backend

# Create and activate a virtual environment
# On Windows:
python -m venv .venv
.\.venv\Scripts\activate

# On macOS/Linux:
python3 -m venv .venv
source .venv/bin/activate

# Install Python dependencies
pip install -r requirements.txt

# Create a .env file from the example
# On Windows:
copy .env.example .env
# On macOS/Linux:
cp .env.example .env

3. Frontend Setup 🖥️

# Navigate to the frontend directory
cd frontend

# Install Node.js dependencies
yarn install

# Create a .env.local file from the example
# On Windows:
copy .env.example .env.local
# On macOS/Linux:
cp .env.example .env.local

# Open .env.local and set the backend host
NEXT_PUBLIC_BACKEND_HOST=http://localhost:8000

Running the Application

You must start both the backend and frontend servers.

1. Start the Backend Server 🚀

With your terminal in the backend directory and the virtual environment activated:

python app.py

The backend API will be available at http://localhost:8000.

2. Start the Frontend Server 🚀

In a new terminal, navigate to the frontend directory:

yarn dev

The frontend application will be available at http://localhost:3000.


Deployment ☁️

Backend

The FastAPI backend can be deployed as any standard ASGI application. Popular choices include:

  • Docker: Containerize the application and deploy it to services like AWS ECS, Google Cloud Run, or a DigitalOcean Droplet.
  • PaaS: Platforms like Heroku or Render.
  • Serverless: Services like Vercel (using Serverless Functions) or AWS Lambda.

Frontend

The Next.js frontend is best deployed on Vercel, which is optimized for the Next.js framework and provides a seamless CI/CD experience. It can also be deployed on other platforms that support Node.js, like Netlify or AWS Amplify.

When deploying, make sure to set the NEXT_PUBLIC_BACKEND_HOST environment variable to the URL of your deployed backend.


Contributing 🤝

We welcome contributions! Please see our Contributing Guidelines to get started.

By participating in this project, you agree to abide by our Code of Conduct.


License 📜

This project is licensed under the MIT License. See the LICENSE file for details.

About

✦ An AI-powered web application to automatically generate PowerPoint presentations from various inputs.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published