Skip to content

AppDevIn/TechJam-Caf-feins

Repository files navigation

🎬 Caption & Hashtag Alchemist

An AI-powered tool that generates viral TikTok captions and strategic hashtags to boost content discoverability and solve creator burnout.

✨ Features

  • One-Click AI Generation: Upload a video, choose tone, and get instant captions + hashtags
  • Viral Caption Crafting: Gemini AI generates engaging captions tailored to TikTok trends
  • Smart Hashtag Selection: Strategic mix of trending and niche hashtags for maximum reach
  • One-Tap Copy: Seamlessly copy all generated text for immediate use in TikTok
  • Tone Customization: Choose from 6 different tones (funny, dramatic, curious, inspirational, sarcastic, casual)
  • Context Enhancement: Add optional context to improve AI generation quality

🚀 Tech Stack

  • Frontend: React 18 + TypeScript + Vite
  • UI Framework: Lynx (Custom component library)
  • AI Service: Google Gemini API
  • Backend: Supabase (for logging and analytics)
  • Styling: Modern CSS with glassmorphism effects

📋 Prerequisites

  • Node.js 18+
  • Google Gemini API key
  • Supabase account (optional, for logging)

🛠️ Setup Instructions

1. Clone and Install Dependencies

cd TechJam-Caf-feins
npm install

2. Configure Environment Variables

Copy env.example to .env.local and fill in your API keys:

cp env.example .env.local

Edit .env.local:

VITE_GEMINI_API_KEY=your_actual_gemini_api_key
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key

Important: In Vite, environment variables must be prefixed with VITE_ to be accessible in the browser.

3. Get Your Gemini API Key

  1. Go to Google AI Studio
  2. Create a new API key
  3. Copy the key to your .env.local file

4. (Optional) Set Up Supabase

  1. Create a new project at supabase.com
  2. Create a table called generation_logs:
CREATE TABLE generation_logs (
  id SERIAL PRIMARY KEY,
  video_name TEXT NOT NULL,
  tone TEXT NOT NULL,
  context TEXT,
  caption TEXT NOT NULL,
  hashtags TEXT[] NOT NULL,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
  1. Copy your project URL and anon key to .env.local

5. Run the Development Server

npm run dev

The app will open at http://localhost:3000

🎯 Usage

  1. Upload Video: Drag & drop or click to upload your TikTok video
  2. Choose Tone: Select from 6 different caption styles
  3. Add Context: Optionally describe your video content
  4. Generate: Click the generate button to create AI-powered content
  5. Copy & Use: Copy captions and hashtags directly to your clipboard

🔧 Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run preview - Preview production build
  • npm run lint - Run ESLint

📱 Responsive Design

The app is fully responsive and works on:

  • Desktop browsers
  • Tablets
  • Mobile devices

🎨 Customization

Adding New Tones

Edit src/components/ToneSelector.tsx to add new tone options:

const tones = [
  // ... existing tones
  { value: 'new-tone', label: '🎯 New Tone', description: 'Description here' }
]

Modifying AI Prompts

Edit src/services/geminiService.ts to customize the AI generation prompts.

🚨 Troubleshooting

Common Issues

  1. "Gemini API key not configured"

    • Check your .env.local file
    • Ensure VITE_GEMINI_API_KEY is set correctly
  2. "Failed to generate content"

    • Verify your Gemini API key is valid
    • Check your internet connection
    • Ensure the video file is valid
  3. Copy to clipboard not working

    • Ensure you're using HTTPS or localhost
    • Check browser permissions

Getting Help

  • Check the browser console for error messages
  • Verify all environment variables are set
  • Ensure all dependencies are installed

📄 License

MIT License - see LICENSE file for details

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📊 Performance

  • Bundle Size: ~500KB gzipped
  • First Contentful Paint: < 1.5s
  • Time to Interactive: < 2s

🔒 Security

  • API keys are stored in environment variables
  • No sensitive data is logged to the client
  • All user data is processed locally

Built with ❤️ for TechJam 2025

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors