A Next.js application that converts natural language image processing requests into structured JSON specifications. Simply describe what you want in plain English, and the system will parse your request and process your images accordingly.
- Natural Language Processing: Powered by Google Gemini AI to understand complex requests.
- Smart Parsing: Automatically recognizes:
- Passport Photos: Standard (35x45mm) and US (2x2 inch) formats.
- Dimensions: Pixels (1280x720), Millimeters (35mm), Inches.
- File Size: Constraints like "under 1MB" or "compress to 50KB".
- Formats: Convert between JPG, PNG, WebP.
- Backgrounds: Remove background or change to specific colors (white, blue, etc.).
- Enhancements: Blur, sharpen, grayscale, contrast adjustments.
- Transformations: Rotate, flip, crop.
- User Authentication: Secure sign-up and login with Clerk.
- Image Processing: High-quality transformations using ImageKit.io.
- Request History: Track your previous processing requests.
- Modern UI: Built with Tailwind CSS for a responsive and beautiful experience.
Describe your desired output in plain English:
- Passport Photo: "Convert this to a passport photo with a white background"
- Social Media: "Resize to 1080x1080 and make it black and white"
- Web Optimization: "Convert to WebP and compress to under 200KB"
- Specific Edits: "Rotate 90 degrees, flip horizontally, and increase contrast"
- Professional: "Set DPI to 300 and resize to 4x6 inches"
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Authentication: Clerk
- Database: PostgreSQL (Neon) with Prisma ORM
- AI/NLP: Google Gemini API
- Image Processing: ImageKit.io
- Testing: Vitest + fast-check
- Node.js 18+
- PostgreSQL database
- Clerk account
- Google Gemini API key
- ImageKit.io account
-
Clone the repository
-
Install dependencies
npm install
-
Environment Setup Copy
.env.exampleto.env.localand fill in your credentials:cp .env.example .env.local
-
Database Setup
npx prisma generate npx prisma db push
-
Run Development Server
npm run dev
Open http://localhost:3000 with your browser.
npm run dev: Start development servernpm run build: Build for productionnpm run start: Start production servernpm run test: Run testsnpm run test:watch: Run tests in watch modenpm run db:migrate: Run database migrationsnpm run deploy:db: Deploy database changes (Linux/Mac)npm run deploy:db:windows: Deploy database changes (Windows)
ISC