Skip to content

fac-31/Pro0623-StoryMaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 Story Maker

AI-Powered Storyboard Creation & Interactive Game Platform

Transform your creative ideas into compelling visual stories and interactive experiences with the power of artificial intelligence. Story Maker combines cutting-edge AI technologies to generate storyboards, create stunning visuals, and produce engaging interactive games.

Built with SvelteKit TypeScript Tailwind CSS MongoDB


✨ Features

πŸ€– AI-Powered Story Generation

  • GPT-4 Integration: Intelligent story outline and scene generation
  • DALL-E 3 Visuals: Stunning AI-generated images for each scene
  • Interactive Game Creation: Transform storyboards into playable HTML games with clickable elements
  • LangGraph Workflows: Advanced AI agent orchestration for complex storytelling

πŸ‘₯ Collaboration & Management

  • Team Management: Create and manage collaborative teams
  • User Authentication: Secure login with Supabase
  • Project Organization: Track and organize multiple storyboard projects

🎨 Modern User Experience

  • Responsive Design: Beautiful interface that works on all devices
  • Accessibility First: WCAG compliant with comprehensive accessibility features
  • Real-time Updates: Server-sent events for live progress tracking

πŸš€ Quick Start

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB database
  • API Keys for AI services (see Environment Setup)

Installation

# Clone the repository
git clone https://github.com/your-username/story-maker.git
cd story-maker

# Install dependencies
npm install

# Set up environment variables (see below)
cp .env.example .env

# Start development server
npm run dev

# Serve over HTTPS for PWA testing
npm run dev:https

# Open in browser
npm run dev -- --open

πŸ”§ Environment Setup

Create a .env file in the root directory with the following variables:

# πŸ€– AI Services (Required)
OPENAI_API_KEY=your_openai_api_key_here

# πŸ” Search (Optional)
TAVILY_API_KEY=your_tavily_api_key_here

# πŸ—„οΈ Database
MONGODB_URI=mongodb://localhost:27017/storymaker

# πŸ” Authentication
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key

# ☁️ File Storage (Optional)
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_key
CLOUDINARY_API_SECRET=your_cloudinary_secret

πŸ”‘ Getting API Keys

Service Purpose Get Your Key
OpenAI Story generation & DALL-E images OpenAI Platform
Supabase Authentication & database Supabase Dashboard
Cloudinary Image hosting (optional) Cloudinary

πŸ“– How to Use

1. Create Your Story

  • Fill out the story creation form with your concept
  • Choose your preferred style, genre, and target audience
  • Specify the number of slides for your storyboard

2. AI Generation Process

  • Watch real-time progress as AI generates your story outline
  • DALL-E creates unique visuals for each scene
  • Review and refine the generated content
  • Edit individual slides as needed

3. Generate Interactive Games

  • Transform your completed storyboard into a playable HTML game
  • AI automatically detects interactive elements in your scenes
  • Creates clickable hotspots and game mechanics
  • Play directly in the browser with hints and progression tracking

4. Collaborate

  • Create teams and invite collaborators
  • Manage user roles and permissions
  • Share projects across your organization

πŸ—οΈ Project Structure

story-maker/
β”œβ”€β”€ πŸ“ src/
β”‚   β”œβ”€β”€ πŸ“ lib/
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/     # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ πŸ“ langgraph/      # AI workflow orchestration
β”‚   β”‚   β”œβ”€β”€ πŸ“ models/         # TypeScript interfaces
β”‚   β”‚   β”œβ”€β”€ πŸ“ server/         # Server-side utilities
β”‚   β”‚   └── πŸ“ schemas/        # Data validation schemas
β”‚   β”œβ”€β”€ πŸ“ routes/
β”‚   β”‚   β”œβ”€β”€ πŸ“ api/            # REST API endpoints
β”‚   β”‚   β”œβ”€β”€ πŸ“ (auth)/         # Authentication pages
β”‚   β”‚   β”œβ”€β”€ πŸ“ (protected)/    # Protected user pages
β”‚   β”‚   └── πŸ“ storyboard/     # Main storyboard interface
β”‚   └── πŸ“„ app.html            # HTML template
β”œβ”€β”€ πŸ“ static/                 # Static assets
β”œβ”€β”€ πŸ“ e2e/                    # End-to-end tests
β”œβ”€β”€ πŸ“„ swagger.yaml            # API documentation
└── πŸ“„ ACCESSIBILITY.md        # Accessibility guidelines

πŸ› οΈ Development

Available Scripts

# Development
npm run dev              # Start development server
npm run dev -- --open   # Start dev server and open browser

# Building
npm run build           # Build for production
npm run preview         # Preview production build

# Quality Assurance
npm run lint            # Run ESLint
npm run format          # Format code with Prettier
npm run check           # Type checking
npm run test            # Run all tests
npm run test:e2e        # Run end-to-end tests
npm run test:dev        # Run tests in UI mode

# Documentation
npm run generate-docs            # Generate TypeDoc documentation
npm run generate-swagger # Update API documentation

πŸ§ͺ Testing

The project includes comprehensive testing:

  • End-to-End Tests: Playwright tests for user workflows
  • Accessibility Tests: Automated accessibility compliance checks
  • Type Safety: Full TypeScript coverage with strict mode
# Run all tests
npm test

# Run tests with UI
npm run test:dev

# Run accessibility tests
npm run test:e2e -- --grep "accessibility"

πŸ“š Documentation

🎯 Tech Stack

Frontend

  • SvelteKit - Full-stack web framework
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS - Utility-first CSS framework
  • DaisyUI - Beautiful component library
  • Lucide Icons - Consistent icon system

Backend

  • SvelteKit API Routes - Server-side API
  • MongoDB - Document database
  • Supabase - Authentication & real-time features

AI & Media

  • OpenAI GPT-4 - Story generation
  • DALL-E 3 - Image generation
  • LangGraph - AI workflow orchestration

Development Tools

  • Vite - Fast build tool
  • Playwright - End-to-end testing
  • ESLint & Prettier - Code quality
  • TypeDoc - Documentation generation

β™Ώ Accessibility

Story Maker is built with accessibility as a core principle:

  • WCAG 2.1 AA Compliance - Meets international accessibility standards
  • Keyboard Navigation - Full keyboard support for all features
  • Screen Reader Support - Comprehensive ARIA labels and semantic HTML
  • Focus Management - Proper focus handling in modals and dynamic content
  • Reduced Motion - Respects user motion preferences

See ACCESSIBILITY.md for detailed guidelines.


🀝 Contributing

We welcome contributions! Please see our contributing guidelines:

  1. Fork the repository
  2. Create a 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

Development Guidelines

  • Follow the existing code style (ESLint + Prettier)
  • Write tests for new features
  • Update documentation as needed
  • Ensure accessibility compliance
  • Test across different browsers and devices

πŸ“„ License

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


Made with ❀️ by the Story Maker Team

⭐ Star this repo β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature