Generate professional, dark-themed PowerPoint presentations instantly using AI. Built with Flask, python-pptx, and Groq AI.
Select from 4 generation modes: Academic Seminar, Prompt to PPT, Quick Generator, or Creative Mode.
Type your topic or click a suggestion chip — then hit Generate Presentation.
The AI processes your topic and builds structured slide data in ~5–10 seconds.
The editor shows all slide thumbnails in the sidebar. The main canvas updates as you click through. Export as .pptx anytime.
Different slide layouts are auto-selected by AI — section headers, content lists, flowcharts, comparisons, and more.
- 4 Generation Modes — Academic Seminar, Prompt-to-PPT, Quick Generator, Creative Mode
- 8 Slide Layouts — Title, Content, Two-Column, Section Header, Comparison, Flowchart, Diagram, Summary
- Premium Dark Theme — Gradient orbs, accent borders, icon badges, footer branding, corner decorations
- Visual Flowcharts — Auto-generated process flows with connected boxes and arrows
- Live Preview — Browse slides in-browser before exporting
- One-Click Export — Download as
.pptxfile ready for PowerPoint
| Requirement | Version |
|---|---|
| Python | 3.10+ |
| pip | Latest |
| Groq API Key | Get one free |
cd D:\Projects\ppt_builderpip install -r requirements.txtThis installs:
flask— Web serverflask-cors— Cross-origin supportpython-pptx— PowerPoint generation enginegroq— Groq AI SDKpython-dotenv— Environment variable loader
Create or edit the .env file in the project root:
GROQ_API_KEY=your_groq_api_key_here
PORT=3000How to get a Groq API Key:
- Go to console.groq.com
- Sign up / Log in
- Navigate to API Keys → Create API Key
- Copy the key and paste it in
.env
python app.pyYou should see:
🚀 PPT Builder running at http://localhost:3000
* Serving Flask app 'app'
* Debug mode: on
* Running on http://127.0.0.1:3000
Navigate to http://localhost:3000 in Chrome, Edge, or Firefox.
- Select a Mode — Choose from Academic, Prompt-to-PPT, Quick, or Creative
- Enter Your Topic — Type any topic or click a suggestion chip
- Click "Generate Presentation" — AI creates structured slides (takes ~5-10 seconds)
- Preview Slides — Navigate using thumbnails, dots, arrows, or keyboard (← →)
- Export PPTX — Click the export button to download the
.pptxfile - Open in PowerPoint — The file is ready to present or edit further
ppt_builder/
├── app.py # Flask server — routes for UI, generation, and export
├── ai_service.py # Groq AI integration — prompt templates for 4 modes
├── ppt_engine.py # python-pptx engine — premium dark-themed slide renderer
├── requirements.txt # Python dependencies
├── .env # Environment variables (API key, port)
├── test_api.py # API test script
└── static/ # Frontend assets
├── index.html # Three-screen SPA (Landing → Loading → Editor)
├── css/
│ └── style.css # Premium dark theme design system
└── js/
└── app.js # Frontend logic — preview rendering, navigation, export
Browser (HTML/CSS/JS)
│
├── POST /api/generate → Flask → Groq AI → Slide JSON
│ │
│ ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ┘
│ (renders preview in browser)
│
└── POST /api/export → Flask → python-pptx → .pptx file
│
← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ← ┘
(downloads file)
| Method | Endpoint | Body | Response |
|---|---|---|---|
GET |
/ |
— | Serves the frontend |
POST |
/api/generate |
{ "topic": "...", "mode": "academic" } |
Slide JSON |
POST |
/api/export |
Slide JSON object | .pptx file download |
| Mode | Slides | Description |
|---|---|---|
academic |
10-12 | Engineering-grade, structured, with facts & stats |
prompt-to-ppt |
10-12 | Converts a detailed prompt into slides |
quick |
6-8 | Fast overview deck |
creative |
10-12 | Bold, storytelling-driven with dramatic titles |
| Layout | Description |
|---|---|
title_slide |
Opening slide with title, subtitle, description |
title_content |
Title + bullet cards with numbered badges |
two_column |
Side-by-side columns with headers and bullets |
section_header |
Transition slide with large centered title |
comparison |
Table comparing two concepts |
flowchart |
Visual process flow with connected boxes and arrows |
diagram_focus |
Architecture blocks or component grid cards |
summary |
Key takeaways in grid cards + "Thank You" |
The generated .pptx files include:
- Dark background (#0B0E17 → #0F121F) with ambient gradient orbs
- Accent color palette — Purple, Teal, Blue, Red, Yellow, Lavender
- Footer branding bar on every slide with "PPT Builder" logo
- Corner dot decorations — subtle 3×3 geometric grid
- Card-style bullets with colored left-border accents and icon badges (◆ ● ■ ▲ ★)
- Flowchart boxes with step numbers, labels, and directional arrows
- Comparison tables with alternating row colors and styled borders
- Consistent typography — Calibri / Consolas with clear size hierarchy
Run the included test script to verify everything works:
python test_api.pyExpected output:
=== Test: Generate Enhanced Slides ===
Status: 200
Title: Machine Learning in Healthcare
Slides: 11
[title_slide] Introduction — 3 items
[title_content] Key Concepts — 6 items
[flowchart] ML Workflow — 0 items (flow_steps: 6)
...
Has flowchart: YES ✅
Has comparison: YES ✅
=== Test: Export Enhanced PPTX ===
Status: 200
File size: ~55000 bytes
Saved to test_enhanced.pptx ✅
| Issue | Solution |
|---|---|
GROQ_API_KEY error |
Verify your API key in .env is valid |
| Port already in use | Change PORT in .env to another number (e.g., 5000) |
ModuleNotFoundError |
Run pip install -r requirements.txt again |
| Empty slides | Check your internet connection (Groq API requires network) |
| Permission denied on export | Close the previously exported .pptx file if open |
A full walkthrough demo video showing the complete flow — from entering a topic to previewing slides and exporting the .pptx file — can be recorded by running the app locally at http://localhost:3000.
To record your own demo, open the app, type a topic, and use any screen recorder (e.g. OBS, Windows Game Bar
Win+G, or ShareX).
MIT License — free to use and modify.




