Skip to content

vibing-ai/PresentationGenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

64 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

AI Presentation Generator

AI Presentation Generator License PRs Welcome

A next-generation AI-powered presentation creation platform that transforms your ideas into stunning, professional presentations with the power of artificial intelligence.

โœจ Features

  • ๐Ÿค– AI-Powered Content Generation: Create complete presentations from simple prompts
  • ๐ŸŽจ Customizable Themes: Choose from a variety of professional themes or create your own
  • ๐Ÿ–ผ๏ธ Rich Media Support: Embed videos, charts, interactive elements, and forms
  • ๐Ÿ“ Smart Layout Engine: Automatically organize content for optimal visual impact
  • ๐Ÿ‘ฅ Collaborative Editing: Work together with your team in real-time
  • ๐Ÿ“ค Export Options: Download as PDF, export to PowerPoint, or present directly from the web

๐Ÿ“– Table of Contents

๐ŸŽฎ Demo

Visit our live demo (coming soon) to experience the platform.

๐Ÿš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or later)
  • npm (v8 or later)
  • Docker (optional, for containerized deployment)
  • Python (v3.9 or later, for AI service)

Installation

  1. Clone the repository
git clone https://github.com/marvelai-org/PresentationGenerator.git
cd PresentationGenerator
  1. Install dependencies
npm ci
  1. Create a .env file based on .env.example
cp .env.example .env
  1. Update the environment variables with your own values

Development

Start the development server:

npm run dev

This will start the application at http://localhost:3000.

Run tests:

npm test

Run linting:

npm run lint

Format code:

npm run format

AI Service

This repository includes a Python-based AI service for presentation generation:

  1. Navigate to the AI service directory:
cd ai-services
  1. Create a virtual environment (optional but recommended):
python -m venv venv
source venv/bin/activate  # On Windows, use: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the service:
python app.py

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

๐Ÿ—๏ธ Self-Hosting & Deployment

Docker Deployment

The easiest way to deploy the application is using Docker Compose:

  1. Clone this repository
  2. Configure your environment variables in a .env file (see Environment Configuration)
  3. Run docker-compose up -d

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

For detailed deployment instructions, see docs/deployment.md.

CI/CD Pipeline

The project includes GitHub Actions workflows for continuous integration and deployment:

  • Automated linting and testing
  • Build process for the Next.js application
  • Docker image creation for easy deployment

All workflows are vendor-agnostic and focused on building, testing, and packaging the application for self-hosting.

๐Ÿ”ง Environment Configuration

Create a .env file in the root directory with the following variables (see .env.example for a template):

# Database
DATABASE_URL="postgresql://username:password@host:port/database"

# Authentication (Supabase)
NEXT_PUBLIC_SUPABASE_URL="https://your-project.supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="your-supabase-anon-key"
SUPABASE_SERVICE_ROLE_KEY="your-service-role-key"

# AI APIs
OPENAI_API_KEY="your-openai-api-key"
COHERE_API_KEY="your-cohere-api-key"

# Vector DB (Optional)
QDRANT_API_KEY="your-qdrant-api-key"
QDRANT_URL="your-qdrant-url"

For local development without Supabase credentials, you can enable mock authentication:

# Set CI_ENVIRONMENT to true in your .env file
echo "CI_ENVIRONMENT=true" >> .env

This enables the mock Supabase client which allows the application to function without real credentials.

๐Ÿ“ Project Structure

.
โ”œโ”€โ”€ ai-services/         # Python-based AI service
โ”œโ”€โ”€ docs/                # Documentation files
โ”œโ”€โ”€ prisma/              # Database schema and migrations
โ”œโ”€โ”€ public/              # Static assets
โ”œโ”€โ”€ src/                 # Source code
โ”‚   โ”œโ”€โ”€ app/             # Next.js App Router routes
โ”‚   โ”œโ”€โ”€ components/      # Reusable React components
โ”‚   โ”œโ”€โ”€ lib/             # Utility functions and services
โ”‚   โ”œโ”€โ”€ providers/       # React context providers
โ”‚   โ”œโ”€โ”€ styles/          # Global styles
โ”‚   โ””โ”€โ”€ types/           # TypeScript type definitions
โ”œโ”€โ”€ .env.example         # Example environment variables
โ”œโ”€โ”€ docker-compose.yml   # Docker Compose configuration
โ”œโ”€โ”€ Dockerfile           # Docker configuration
โ””โ”€โ”€ README.md            # Project documentation

๐Ÿ›๏ธ Architecture

The project is built with a modern tech stack and architecture:

  • Frontend: Next.js, React, Tailwind CSS
  • Backend: Next.js API routes, Python FastAPI
  • Database: PostgreSQL with Prisma ORM
  • Authentication: Supabase Auth
  • AI: Integration with various AI models via AI service
  • Vector Storage: Qdrant for embeddings (optional)

๐Ÿ”Œ API

AI Service

The AI service provides endpoints for generating and editing presentations:

  • GET / - Health check endpoint
  • POST /generate-presentation - Generates a presentation from a prompt
  • POST /edit-slide - Edits a specific slide
  • POST /preview-slide - Generates a preview image for a slide

Full API documentation is available when running the service at:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

๐Ÿงช CI/CD & Testing

CI/CD Pipeline

The project includes GitHub Actions workflows for continuous integration and deployment:

  • Automated linting and testing
  • Build process for the Next.js application
  • Docker image creation for easy deployment

All workflows are vendor-agnostic and focused on building, testing, and packaging the application for self-hosting.

Authentication in CI Environment

For CI/CD environments, the project uses a mock authentication strategy that:

  • Automatically detects CI environments
  • Uses mock Supabase clients and dummy credentials
  • Allows builds and tests to run without real authentication keys

For more information, see docs/ci-cd-auth-mocking.md.

๐Ÿ‘ฅ Contributing

We welcome contributions! Please check out our contribution guidelines first.

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests and linting
  5. Commit your changes (git commit -m 'Add some amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

For major changes, please open an issue first to discuss what you would like to change.

๐Ÿ“„ License

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


Built with โค๏ธ by the AI Presentation Generator team

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages