slidexx

Slidexx - AI-Powered Presentation Generator

A modern web application that leverages AI to create professional presentations effortlessly. Built with Next.js, TypeScript, and multiple AI providers.

๐Ÿš€ Features

AI-Powered Generation

Presentation Management

User Experience

๐Ÿ› ๏ธ Tech Stack

๐Ÿ“‹ Prerequisites

๐Ÿ”ง Installation

  1. Clone the repository
    git clone https://github.com/yourusername/slidexx.git
    cd slidexx
    
  2. Install dependencies
    npm install
    
  3. Set up environment variables

    Copy the example environment file:

    cp .env.example .env.local
    

    Fill in your environment variables:

    # Supabase
    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
    
    # AI Providers (at least one required)
    GOOGLE_GENERATIVE_AI_API_KEY=your_google_api_key
    ANTHROPIC_API_KEY=your_anthropic_api_key
    OPENAI_API_KEY=your_openai_api_key
    
    # Stripe
    STRIPE_SECRET_KEY=your_stripe_secret_key
    NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
    STRIPE_WEBHOOK_SECRET=your_webhook_secret
    
    # Application
    NEXT_PUBLIC_APP_URL=http://localhost:3000
    
  4. Set up the database

    Run the migrations in your Supabase project:

    # Apply migrations from /supabase/migrations/
    
  5. Start the development server
    npm run dev
    

    Open http://localhost:3000 to see the application.

๐Ÿ“ Development

Available Scripts

# Development
npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server

# Code Quality
npm run lint         # Run ESLint
npm run typecheck    # TypeScript type checking
npm run format       # Format code with Prettier
npm run format:check # Check code formatting

Project Structure

/src
โ”œโ”€โ”€ app/              # Next.js App Router pages and API routes
โ”‚   โ”œโ”€โ”€ api/         # API endpoints
โ”‚   โ”œโ”€โ”€ auth/        # Authentication pages
โ”‚   โ””โ”€โ”€ dashboard/   # User dashboard
โ”œโ”€โ”€ components/      # React components
โ”‚   โ”œโ”€โ”€ features/    # Feature-specific components
โ”‚   โ”œโ”€โ”€ layout/      # Layout components
โ”‚   โ””โ”€โ”€ ui/          # Base UI components
โ”œโ”€โ”€ lib/             # Core business logic
โ”‚   โ”œโ”€โ”€ services/    # Service layer (AI, file parsing)
โ”‚   โ”œโ”€โ”€ supabase/    # Database clients
โ”‚   โ””โ”€โ”€ auth/        # Auth utilities
โ””โ”€โ”€ types/           # TypeScript type definitions

Key Files

๐Ÿงช Testing

Mock Authentication

For development, you can use the mock login at /auth/mock-login:

Testing AI Providers

  1. Ensure at least one AI provider API key is configured
  2. Test generation with different models
  3. Verify streaming responses work correctly
  4. Check credit deduction (except for admin users)

๐Ÿš€ Deployment

Vercel Deployment

  1. Push your code to GitHub
  2. Connect your repository to Vercel
  3. Add environment variables in Vercel dashboard
  4. Deploy

Database Setup

  1. Create a new Supabase project
  2. Run migrations from /supabase/migrations/
  3. Enable Row Level Security
  4. Configure authentication providers

Stripe Configuration

  1. Create products and prices in Stripe dashboard
  2. Set up webhook endpoint: /api/stripe/webhook
  3. Configure webhook events (subscription events)

๐Ÿ” Security

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

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

๐Ÿ†˜ Support

๐ŸŽฏ Roadmap


Built with โค๏ธ by the Slidexx team