AI-Powered Presentation Editor
SlideFlow is a modern, web-based presentation editor that combines traditional slide editing capabilities with advanced AI-powered content generation. Create professional presentations with intelligent assistance, interactive tools, and seamless export options.
- Smart Slide Creation: Generate professional slides from text descriptions
- Gemini AI Integration: Powered by Google's Gemini AI for intelligent content generation
- Quick Inspirations: Pre-built templates for common presentation types
- Visual Editor: Drag-and-drop interface with real-time editing
- Multiple Tools: Select, Crop, Alignment, Text, Shape, Eraser, and Table tools
- Element Management: Add and manipulate text, shapes, and tables
- Color Themes: 8 professional color themes
- Dynamic Tables: Create and edit tables with customizable rows and columns
- Shape Tools: Rectangle, Circle, and Triangle shapes with color customization
- Text Formatting: Rich text editing with alignment and styling options
- Element Selection: Multi-element selection and manipulation
- Multiple Formats: Export as JSON or PowerPoint (PPTX)
- Real-time Saving: Auto-save functionality with presentation management
- Cross-platform: Works on desktop and mobile browsers
- Framework: Next.js 14 with TypeScript
- UI Components: Custom components with Tailwind CSS
- Icons: Lucide React
- State Management: React Hooks
- Server: Flask (Python)
- AI Integration: Google Gemini AI API
- CORS: Flask-CORS for cross-origin requests
- Export: python-pptx for PowerPoint generation
- Node.js 18+ and npm/yarn
- Python 3.9+
- Google Gemini API key
git clone https://github.com/ajitashwath/codeclash-hackathon.git
cd codeclash-hackathoncd client
npm install
# or
yarn installcd serverCreate a .env file in the server directory:
GEMINI_API_KEY = your_gemini_api_key_hereTo get a Gemini API key:
- Visit Google AI Studio
- Create a new API key
- Copy the key to your
.envfile
pip install flask flask-cors google-generativeai python-dotenv python-pptxcd server
python server.pyThe server will start on http://localhost:5000
cd client
npm run dev
# or
yarn devThe client will start on http://localhost:3000
- Launch SlideFlow: Open your browser and navigate to
http://localhost:3000 - Wait for Loading: The app will initialize with a beautiful loading screen
- Choose Creation Method:
- Use the AI panel to generate slides from text descriptions
- Start with a blank slide and use the editing tools
- Try quick inspiration templates
- Click the AI panel on the right sidebar
- Enter your presentation topic or description
- Click "Generate" to create AI-powered slides
- Customize the generated content using editing tools
Try these pre-built templates:
- "Business presentation with sales statistics data"
- "Marketing strategy deck with growth metrics"
- "Product launch presentation with timeline"
- Select (MousePointer): Select and move elements
- Crop: Crop and resize elements
- Alignment: Align text elements (left, center, right)
- Text: Add and edit text elements
- Shape: Add geometric shapes (rectangle, circle, triangle)
- Eraser: Delete selected elements
- Table: Create interactive tables
- Adding Text: Select the Text tool and click on the canvas
- Creating Shapes: Choose the Shape tool, select shape type and color
- Building Tables: Use the Table tool to specify rows and columns
- Element Selection: Click elements to select and modify properties
- New Slide: Click the "New" button in the header
- Navigation: Use the slide dropdown to switch between slides
- Delete: Remove slides using the "Delete" button
- Save: Use "Save" to store your presentation
- JSON Export: Download presentation data as JSON
- PowerPoint Export: Generate PPTX files for use in Microsoft PowerPoint
codeclash-hackathon/ # Tentative name
βββ client/ # Next.js frontend
β βββ app/
β β βββ page.tsx # Main application component
| | βββ layout.tsx
| | βββ globals.css
| | βββ SlideEditor.tsx # Slide editing canvas
β β βββ PromptInput.tsx # AI prompt interface
β β βββ SlidePreview.tsx
β βββ components/
β β βββ ui/ # UI components (Button, Separator, etc.)
β β βββ ToolPanel.tsx # Tool selection panel
| βββ hooks/
| | βββ use-toast.ts
β βββ types/
β β βββ slide.ts # TypeScript type definitions
β βββ lib/
β βββ utils.ts # Utility functions
βββ server/ # Flask backend
βββ server.py # Main server application
βββ setup.py
| Variable | Description | Required |
|---|---|---|
GEMINI_API_KEY |
Google Gemini AI API key | Yes |
- Voice recognition implementation
- Advanced slide layouts
- Export functionality
- User authentication
- Database integration
- Minor Design Correction
- Google Gemini AI for powering the AI content generation
- Next.js Team for the excellent React framework
- Flask Community for the lightweight Python web framework
- Tailwind CSS for the utility-first CSS framework
- Lucide Icons for the beautiful icon set
Built for the CodeClash 2.0 Hackathon
