Skip to content

Commit bc76f7b

Browse files
author
Developer
committed
Initial commit
0 parents  commit bc76f7b

File tree

3 files changed

+284
-0
lines changed

3 files changed

+284
-0
lines changed

.gitignore

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Dependencies
2+
/node_modules
3+
/.pnp
4+
.pnp.js
5+
6+
# Production builds
7+
/.next/
8+
/out/
9+
/dist/
10+
11+
# Environment variables
12+
.env
13+
.env.local
14+
.env.development.local
15+
.env.test.local
16+
.env.production.local
17+
18+
# Vercel
19+
.vercel
20+
21+
# Debug
22+
npm-debug.log*
23+
yarn-debug.log*
24+
yarn-error.log*
25+
26+
# IDE
27+
.vscode/
28+
.idea/
29+
*.swp
30+
*.swo
31+
32+
# OS
33+
.DS_Store
34+
Thumbs.db
35+
36+
# Temporary files
37+
*.tmp
38+
*.temp
39+
temp.*
40+
debug.log
41+
42+
# Test files
43+
test-*.js
44+
quick-test.js
45+
system-test-suite.js
46+
health-check.js
47+
show-network-urls.js
48+
network-server.js
49+
final-status.js
50+
fix-summary.js
51+
server-status.js
52+
list-models.js
53+
test-*.js
54+
55+
# Local development
56+
.env.example.backup
57+
temp.pptx

README.md

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
# Snap2Slides Pro
2+
3+
**Snap2Slides Pro** is a cutting-edge AI-powered presentation generator that transforms images, PDFs, and documents into professional presentation slides. Built with Next.js 14 and powered by Google's Gemini Vision API, it offers a seamless, mobile-responsive experience for creating presentations from any visual content.
4+
5+
![Snap2Slides Pro](https://img.shields.io/badge/Next.js-14.2.33-black) ![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue) ![Tailwind CSS](https://img.shields.io/badge/Tailwind-CSS-38B2AC) ![AI Powered](https://img.shields.io/badge/AI-Powered-orange)
6+
7+
## Features
8+
9+
- **AI Image Analysis**: Advanced computer vision using Google Gemini AI
10+
- **Smart Content Generation**: Automatically creates structured presentation content
11+
- **Instant PowerPoint Export**: Download professional .pptx files ready for use
12+
- **Clean, Professional Interface**: Apple-level design without unnecessary animations
13+
- **Real-time Progress Tracking**: Visual feedback during processing
14+
15+
## Setup
16+
17+
1. **Install Dependencies**
18+
```bash
19+
npm install
20+
```
21+
22+
2. **Configure Gemini API**
23+
- Get your API key from [Google AI Studio](https://makersuite.google.com/app/apikey)
24+
- Add it to `.env.local`:
25+
```
26+
GEMINI_API_KEY=your_actual_api_key_here
27+
```
28+
29+
3. **Run Development Server**
30+
```bash
31+
npm run dev
32+
```
33+
34+
4. **Open in Browser**
35+
- Navigate to `http://localhost:3000` (or the port shown in terminal)
36+
37+
## Usage
38+
39+
1. **Upload Image**: Drag and drop or click to select an image file (JPG, PNG, WebP up to 10MB)
40+
2. **Generate Slides**: Click "Generate Slides" to process with AI
41+
3. **Download Result**: PowerPoint file will automatically download when ready
42+
43+
## Technical Stack
44+
45+
- **Next.js 14**: React framework with App Router
46+
- **TypeScript**: Type-safe development
47+
- **Tailwind CSS**: Utility-first styling
48+
- **Google Gemini AI**: Advanced image analysis and content generation
49+
- **PptxGenJS**: PowerPoint file generation
50+
51+
## API Routes
52+
53+
- `POST /api/gemini-vision`: Process images with AI
54+
- `POST /api/generate-pptx-slides`: Create PowerPoint presentations
55+
56+
## File Structure
57+
58+
```
59+
app/
60+
├── api/
61+
│ ├── gemini-vision/route.ts # AI image processing
62+
│ └── generate-pptx-slides/route.ts # PowerPoint generation
63+
├── globals.css # Clean, professional styling
64+
├── layout.tsx # Root layout
65+
└── page.tsx # Main application interface
66+
```
67+
68+
## Environment Variables
69+
70+
```bash
71+
GEMINI_API_KEY=your_gemini_api_key_here
72+
```
73+
74+
## Production Deployment
75+
76+
1. Build the application:
77+
```bash
78+
npm run build
79+
```
80+
81+
2. Start production server:
82+
```bash
83+
npm start
84+
```
85+
86+
Make sure to set the `GEMINI_API_KEY` environment variable in your production environment.
87+
- **TypeScript**: Full type safety and excellent developer experience
88+
89+
## 🛠️ Tech Stack
90+
91+
- **Next.js 14** - React framework with App Router
92+
- **TypeScript** - Type-safe development
93+
- **Tailwind CSS** - Utility-first styling
94+
- **Google Gemini AI** - Image analysis and content generation
95+
- **MongoDB** - Database for storing presentations
96+
- **Framer Motion** - Smooth animations
97+
98+
## 🎯 Quick Start
99+
100+
1. **Install Dependencies**
101+
```bash
102+
npm install
103+
```
104+
105+
2. **Environment Setup**
106+
```bash
107+
cp .env.local.example .env.local
108+
# Add your API keys
109+
```
110+
111+
3. **Run Development Server**
112+
```bash
113+
npm run dev
114+
```
115+
116+
4. **Open Browser**
117+
Visit [http://localhost:3000](http://localhost:3000)
118+
119+
## 📁 Project Structure
120+
121+
```
122+
├── app/
123+
│ ├── api/ # API routes
124+
│ ├── components/ # Reusable components
125+
│ ├── globals.css # Global styles
126+
│ ├── layout.tsx # Root layout
127+
│ └── page.tsx # Homepage
128+
├── public/ # Static assets
129+
├── next.config.js # Next.js configuration
130+
└── tailwind.config.js # Tailwind configuration
131+
```
132+
133+
## 🔧 Development
134+
135+
- `npm run dev` - Start development server
136+
- `npm run build` - Build for production
137+
- `npm run start` - Start production server
138+
- `npm run lint` - Run ESLint
139+
- `npm run type-check` - TypeScript checking
140+
141+
## 🎨 Features in Detail
142+
143+
### Image Upload & Analysis
144+
- Drag & drop interface
145+
- Multiple file support
146+
- AI-powered content extraction
147+
- Smart title generation
148+
149+
### Slide Generation
150+
- Professional templates
151+
- Automatic layout optimization
152+
- Content suggestions
153+
- Export capabilities
154+
155+
## 🚀 Deployment
156+
157+
Ready to deploy on Vercel, Netlify, or any Node.js hosting platform.
158+
159+
## 📝 License
160+
161+
MIT License - feel free to use for personal and commercial projects.
162+
163+
---
164+
165+
**Built with ❤️ for the future of presentations**

package.json

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"name": "snap2slides-pro",
3+
"version": "1.0.0",
4+
"description": "AI-powered presentation generator that transforms images into professional slides",
5+
"main": "index.js",
6+
"scripts": {
7+
"dev": "next dev",
8+
"dev:turbo": "next dev --turbo",
9+
"dev:network": "next dev --hostname 0.0.0.0",
10+
"build": "next build",
11+
"build:analyze": "ANALYZE=true next build",
12+
"start": "next start",
13+
"start:production": "next start --port 3000",
14+
"lint": "next lint --fix",
15+
"lint:check": "next lint",
16+
"type-check": "tsc --noEmit --incremental",
17+
"clean": "rimraf .next out dist",
18+
"test:build": "npm run type-check && npm run lint:check && npm run build"
19+
},
20+
"dependencies": {
21+
"@google/generative-ai": "^0.24.1",
22+
"@types/formidable": "^3.4.5",
23+
"@types/node": "^20",
24+
"@types/react": "^18",
25+
"@types/react-dom": "^18",
26+
"autoprefixer": "^10.0.1",
27+
"clsx": "^2.0.0",
28+
"critters": "^0.0.23",
29+
"express": "^5.1.0",
30+
"form-data": "^4.0.4",
31+
"formidable": "^3.5.4",
32+
"framer-motion": "^10.16.0",
33+
"html2canvas": "^1.4.1",
34+
"http-proxy-middleware": "^3.0.5",
35+
"jspdf": "^3.0.3",
36+
"lucide-react": "^0.290.0",
37+
"mongodb": "^6.0.0",
38+
"nanoid": "^5.0.0",
39+
"next": "^14.2.30",
40+
"officegen": "^0.6.5",
41+
"postcss": "^8",
42+
"pptxgenjs": "^4.0.1",
43+
"react": "18.2.0",
44+
"react-dom": "18.2.0",
45+
"tailwindcss": "^3.3.0",
46+
"typescript": "^5"
47+
},
48+
"devDependencies": {
49+
"@tailwindcss/typography": "^0.5.10",
50+
"eslint": "^8",
51+
"eslint-config-next": "14.0.0"
52+
},
53+
"keywords": [
54+
"ai",
55+
"presentations",
56+
"nextjs",
57+
"typescript",
58+
"gemini"
59+
],
60+
"author": "Snap2Slides Pro Team",
61+
"license": "MIT"
62+
}

0 commit comments

Comments
 (0)