TravelStory is an interactive web application where users can create travel journals by placing images and text on a canvas. Once complete, users can save their work with a smooth animation and export it as a short animated video or downloadable PDF.
- Interactive Canvas: A full-screen white canvas where users can freely place elements
- Drag-and-Drop Layout: Move and position elements freely across the canvas
- Text Blocks: Add and customize text with different fonts, sizes, and colors
- Image Upload: Upload travel photos to add to your journal
- Travel Stickers: Add travel-themed decorative elements
- Canvas Themes: Choose from different background themes (Beach, Mountains, Cityscape)
- Save Animation: Smooth animation using anime.js when saving your journal
- Export Options:
- Generate Travel Video: Create a short animation using Remotion.dev
- Export as PDF: Save your journal as a PDF document
- React with TypeScript
- Vite for fast development
- anime.js for smooth animations
- Remotion.dev for video generation
- React-draggable for element positioning
- jsPDF and html2canvas for PDF export
- Tailwind CSS and shadcn/ui for styling
- React-colorful for color picking
- Node.js (v18 or higher)
- Bun (recommended) or npm
- Clone the repository
git clone https://github.com/yourusername/travelstory.git
cd travelstory- Install dependencies
bun install
# or
npm install- Start the development server
bun run dev
# or
npm run dev- Open your browser and navigate to
http://localhost:5173
- Use the toolbar on the left to add text, images, or stickers to your canvas
- Drag elements to position them on the canvas
- Resize or rotate elements using the handles when an element is selected
- Change the canvas theme using the Theme tab
- Click "Save Story" to save your journal
- After saving, choose to export as a PDF or generate a video
src/
βββ components/
β βββ canvas/ # Canvas and element manipulation components
β βββ export/ # PDF and video export functionality
β βββ ui/ # UI components from shadcn/ui
βββ context/
β βββ CanvasContext.tsx # State management for canvas elements
βββ lib/
β βββ remotion/ # Remotion video composition
βββ assets/
β βββ stickers/ # Travel-themed sticker SVGs
βββ App.tsx # Main application component
This project is licensed under the MIT License - see the LICENSE file for details.