A modern, full-stack AI SaaS application that empowers users to create content, generate stunning images, and enhance digital assets using cutting-edge artificial intelligence.
Features β’ Tech Stack β’ Installation β’ Documentation β’ Contributing
Built with β€οΈ by Raghul AR
- β¨ Features
- π Tech Stack
- π Project Structure
- π Prerequisites
- π Installation
- π Environment Variables
- πββοΈ Usage
- π API Endpoints
- π Database Schema
- π― Key Features
- π§ Development
- π Documentation
- π€ Contributing
- π Support
- π License
| Tool | Description | Technology |
|---|---|---|
| ποΈ AI Article Writer | Generate high-quality articles (500-1600+ words) with customizable length | Google Gemini 2.0 Flash |
| #οΈβ£ Blog Title Generator | Create SEO-optimized titles across 8 categories | Google Gemini 2.0 Flash |
| π¨ AI Image Generation | Produce stunning images with multiple artistic styles | Hugging Face FLUX.1-schnell |
| πΌοΈ Background Removal | Automatically remove backgrounds using AI | ClipDrop API |
| βοΈ Object Removal | Seamlessly erase unwanted objects | ClipDrop API |
| π Resume Reviewer | Get AI-driven feedback to improve resumes | Google Gemini + PDF Parse |
- β Secure Authentication - Clerk-powered user management
- π Personal Dashboard - Centralized workspace for all creations
- π Community Gallery - Share and discover AI-generated content
- β€οΈ Engagement System - Like and interact with community creations
- π Free Tier - No credit card required, generous limits
- π Dark Theme - Sleek interface with glassmorphic design
- β¨ Smooth Animations - Professional Dribbble-quality micro-animations
- π§ Floating Navigation - Modern glassmorphic navbar
- π± Fully Responsive - Seamless experience across all devices
- β‘ Lightning Fast - Vite 7 for instant HMR and builds
- π¨ Modern UI - Tailwind CSS 4.1 with custom animations
- π Real-time Feedback - Toast notifications for all actions
- π€ File Upload - Secure image and PDF handling with Multer 2.0
- πΎ Content Management - Publish/unpublish creations
- ποΈ Database Persistence - PostgreSQL with indexes for performance
- π Glassmorphic Design - Backdrop blur with subtle borders
- π¬ Advanced Animations - Cubic-bezier easing, staggered reveals
- π Optimized Performance - Code splitting and lazy loading
| Technology | Version | Purpose |
|---|---|---|
| React | 19.1 | Modern UI library with latest features |
| Vite | 7.0 | Next-generation build tool |
| React Router DOM | 7.7 | Client-side routing |
| Tailwind CSS | 4.1 | Utility-first CSS framework |
| @tailwindcss/vite | 4.1 | Tailwind Vite plugin |
| Axios | 1.10 | HTTP client |
| Lucide React | 0.525 | Modern icon library |
| React Hot Toast | 2.5 | Toast notifications |
| React Markdown | 10.1 | Markdown rendering |
| Clerk | 5.35 | Authentication & user management |
| Technology | Version | Purpose |
|---|---|---|
| Node.js | Latest | JavaScript runtime |
| Express.js | 5.1 | Web application framework |
| @neondatabase/serverless | 1.0 | Serverless PostgreSQL client |
| @clerk/express | 1.7 | Authentication middleware |
| Cloudinary | 2.7 | Image storage & processing |
| Multer | 2.0 | File upload handling |
| @google/generative-ai | 0.24 | Google Gemini API |
| Axios | 1.10 | HTTP client for API calls |
| PDF Parse | 1.1 | PDF processing |
| Form Data | 4.0 | Multipart form data |
| CORS | 2.8 | Cross-origin resource sharing |
| Dotenv | 17.2 | Environment variables |
| Service | Model | Use Case |
|---|---|---|
| Google Gemini | gemini-2.0-flash-exp | Article & blog title generation |
| Hugging Face | FLUX.1-schnell | High-quality image generation |
| ClipDrop API | - | Background & object removal |
- Neon PostgreSQL - Serverless PostgreSQL with
@neondatabase/serverless - Cloudinary - Cloud-based image and video management
- ESLint - 9.30 - Code linting and quality
- Nodemon - 3.1 - Auto-restart development server
- @vitejs/plugin-react - 4.6 - React Fast Refresh
VectorAI/AI-SaaS/
βββ client/ # Frontend React application
β βββ public/ # Static assets
β βββ src/
β β βββ assets/ # Images, icons, data
β β β βββ logo.svg
β β β βββ assets.js # Asset exports & tool data
β β β βββ ...
β β βββ components/ # Reusable UI components
β β β βββ AiTools.jsx # AI tools showcase grid
β β β βββ AiToolsGSAP.jsx # GSAP animated version
β β β βββ CreationItem.jsx # Individual creation card
β β β βββ Footer.jsx # Site footer with links
β β β βββ Hero.jsx # Landing page hero section
β β β βββ HeroGSAP.jsx # GSAP animated hero
β β β βββ Navbar.jsx # Floating glassmorphic navbar
β β β βββ Plan.jsx # Pricing plans
β β β βββ Sidebar.jsx # Dashboard sidebar navigation
β β β βββ Testimonial.jsx # User testimonials
β β βββ pages/ # Application pages
β β β βββ BlogTitles.jsx # Blog title generator page
β β β βββ Community.jsx # Community gallery page
β β β βββ DashBoard.jsx # User dashboard
β β β βββ GenerateImages.jsx # AI image generation
β β β βββ Home.jsx # Landing page
β β β βββ Layout.jsx # App layout wrapper
β β β βββ RemoveBackground.jsx # Background removal tool
β β β βββ RemoveObject.jsx # Object removal tool
β β β βββ ReviewResume.jsx # Resume review tool
β β β βββ WriteArticle.jsx # Article generation
β β βββ App.jsx # Main app component
β β βββ index.css # Global styles & animations
β β βββ main.jsx # App entry point
β βββ .env # Environment variables
β βββ eslint.config.js # ESLint configuration
β βββ index.html # HTML template
β βββ package.json # Frontend dependencies
β βββ vercel.json # Vercel deployment config
β βββ vite.config.js # Vite configuration
βββ server/ # Backend Express application
β βββ configs/ # Configuration files
β β βββ cloudinary.js # Cloudinary setup
β β βββ db.js # Neon database connection
β β βββ multer.js # File upload configuration
β βββ controllers/ # Route controllers
β β βββ aiController.js # AI endpoints logic
β β βββ userController.js # User endpoints logic
β βββ middlewares/ # Custom middleware
β β βββ auth.js # Clerk authentication
β βββ routes/ # API routes
β β βββ aiRoutes.js # AI tool routes
β β βββ userRoutes.js # User routes
β βββ .env # Environment variables
β βββ database_schema.sql # PostgreSQL schema
β βββ package.json # Backend dependencies
β βββ server.js # Express server setup
β βββ vercel.json # Vercel serverless config
βββ HUGGINGFACE_SETUP.md # Hugging Face setup guide
βββ IMAGE_MODELS_GUIDE.md # Image model comparison
βββ RATE_LIMIT_INFO.md # API rate limits info
βββ README.md # Project documentation
Before running this application, ensure you have:
| Service | Purpose | Sign Up Link |
|---|---|---|
| Clerk | Authentication & user management | clerk.com |
| Neon | Serverless PostgreSQL database | neon.tech |
| Cloudinary | Image storage & processing | cloudinary.com |
| Google AI Studio | Gemini API for text generation | ai.google.dev |
| Hugging Face | FLUX.1 image generation model | huggingface.co |
| ClipDrop | Background & object removal | clipdrop.co |
Note: All services offer free tiers! See HUGGINGFACE_SETUP.md for detailed setup instructions.
git clone https://github.com/raghul017/VectorAI.git
cd VectorAI/AI-SaaScd client
npm installcd ../server
npm install- Create a Neon PostgreSQL database at neon.tech
- Copy the connection string
- Run the SQL schema:
# Copy the contents of server/database_schema.sql
# Paste and execute in Neon's SQL Editor# Clerk Authentication
VITE_CLERK_PUBLISHABLE_KEY=pk_test_xxxxxxxxxxxxxxxxxxxxx
# Backend API URL
VITE_BASE_URL=http://localhost:3000
# For production:
# VITE_BASE_URL=https://your-backend-url.vercel.app# Database Connection
DATABASE_URL=postgresql://username:password@host/database?sslmode=require
# Clerk Authentication
CLERK_SECRET_KEY=sk_test_xxxxxxxxxxxxxxxxxxxxx
CLERK_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxx
# AI Services
GEMINI_API_KEY=AIzaSyxxxxxxxxxxxxxxxxxxxxxxx
HUGGINGFACE_API_KEY=hf_xxxxxxxxxxxxxxxxxxxxx
CLIPDROP_API_KEY=xxxxxxxxxxxxxxxxxxxxx
# Cloud Storage
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=123456789012345
CLOUDINARY_API_SECRET=xxxxxxxxxxxxxxxxxxx
# Server Configuration
PORT=3000
NODE_ENV=developmentπ‘ Tip: See HUGGINGFACE_SETUP.md for detailed API key setup instructions.
- Start the Backend Server:
cd server
npm run serverServer runs on: http://localhost:3000
- Start the Frontend Development Server:
cd client
npm run devFrontend runs on: http://localhost:5173
- Build the Frontend:
cd client
npm run build- Start the Production Server:
cd server
npm startcd client
vercel --prodcd server
vercel --prod| Method | Endpoint | Description | Request Body | Auth |
|---|---|---|---|---|
| POST | /generate-article |
Generate AI articles | { prompt, length } |
β |
| POST | /generate-blog-title |
Generate blog titles | { prompt, category } |
β |
| POST | /generate-images |
Generate AI images | { prompt, style, publish } |
β |
| POST | /remove-background |
Remove image background | FormData: image |
β |
| POST | /remove-image-object |
Remove objects from image | FormData: image |
β |
| POST | /resume-review |
Review and analyze resume | FormData: resume |
β |
| Method | Endpoint | Description | Response | Auth |
|---|---|---|---|---|
| GET | /get-user-creations |
Fetch user's creations | { creations: [] } |
β |
| GET | /get-published-creations |
Fetch community posts | { creations: [] } |
β |
| POST | /toggle-like-creation |
Like/unlike creation | { success, message } |
β |
CREATE TABLE creations (
id SERIAL PRIMARY KEY,
user_id VARCHAR(255) NOT NULL,
prompt TEXT NOT NULL,
content TEXT NOT NULL,
type VARCHAR(50) NOT NULL, -- 'article', 'blog-title', 'image'
publish BOOLEAN DEFAULT FALSE,
likes TEXT[] DEFAULT '{}', -- Array of user IDs
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Performance Indexes
CREATE INDEX idx_creations_user_id ON creations(user_id);
CREATE INDEX idx_creations_type ON creations(type);
CREATE INDEX idx_creations_publish ON creations(publish);
CREATE INDEX idx_creations_created_at ON creations(created_at);Auto-update trigger:
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = CURRENT_TIMESTAMP;
RETURN NEW;
END;
$$ language 'plpgsql';
CREATE TRIGGER update_creations_updated_at
BEFORE UPDATE ON creations
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();- Model: Google Gemini 2.0 Flash (Latest & Fastest)
- Word Count: 500 to 1600+ words
- Features:
- Customizable prompts and topics
- Markdown formatting support
- Instant preview and editing
- Database persistence
- Community sharing option
- Categories: General, Technology, Health, Lifestyle, Travel, Food, Education, Business
- Features:
- SEO-optimized suggestions
- Multiple title variations per request
- Category-specific optimization
- Save favorites to dashboard
- Model: Hugging Face FLUX.1-schnell (Best Free Model)
- Features:
- Multiple artistic styles (Realistic, Ghibli, Cartoon, Anime, Fantasy, 3D, Portrait)
- High-quality output (142KB average file size)
- Fast generation (2-4 seconds)
- Cloudinary storage integration
- Community gallery sharing
- Daily limit: 15 images (free tier)
Why FLUX.1-schnell? Tested against 10+ models, produces highest quality free images with photorealistic results.
- Technology: ClipDrop API
- Features:
- AI-powered precision removal
- Support for JPG, PNG formats
- Real-time processing feedback
- One-click download
- Save to dashboard
- Technology: ClipDrop API
- Features:
- Seamless object erasure
- Content-aware fill
- Professional results
- Instant preview
- Technology: Google Gemini + PDF Parse
- Features:
- PDF upload support
- Comprehensive feedback
- ATS optimization tips
- Improvement suggestions
- Formatting analysis
npm run dev # Start Vite development server with HMR
npm run build # Build for production with optimizations
npm run preview # Preview production build locally
npm run lint # Run ESLint for code qualitynpm run server # Start with nodemon (auto-restart on changes)
npm start # Start production server- ESLint 9 - Configured with React and modern JS rules
- Prettier - Code formatting (configured in Tailwind CSS)
- Git Hooks - Pre-commit linting (optional setup)
Additional documentation files in the repository:
- HUGGINGFACE_SETUP.md - Complete guide to setting up FREE Hugging Face API
- IMAGE_MODELS_GUIDE.md - Comparison of 10+ image generation models
- RATE_LIMIT_INFO.md - API rate limits and best practices
Contributions are welcome! Here's how you can help:
- Fork the repository
git clone https://github.com/YOUR_USERNAME/VectorAI.git- Create your feature branch
git checkout -b feature/AmazingFeature- Commit your changes
git commit -m 'Add some AmazingFeature'- Push to the branch
git push origin feature/AmazingFeature- Open a Pull Request
- Follow the existing code style (ESLint rules)
- Write meaningful commit messages
- Update documentation for new features
- Test thoroughly before submitting PR
- Add comments for complex logic
Need help? Reach out through any of these channels:
- π§ Email: arraghul6@gmail.com
- πΌ LinkedIn: Raghul AR
- π GitHub Issues: Create an issue
- π Portfolio: raghul017.github.io
Special thanks to these amazing services and technologies:
- Clerk - Seamless authentication and user management
- Google AI - Powerful Gemini 2.0 Flash model
- Hugging Face - Free FLUX.1-schnell image generation
- ClipDrop - Professional image editing APIs
- Cloudinary - Reliable cloud image processing
- Neon - Serverless PostgreSQL database
- Vercel - Seamless deployment platform
- Tailwind CSS - Beautiful utility-first CSS
- Lucide Icons - Modern icon library
- React - The best UI library
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2025 Raghul AR
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
If you find this project useful, please consider giving it a star! β
Built with β€οΈ by Raghul AR