A comprehensive full-stack AI SaaS application that empowers users to create content, generate images, and enhance their digital assets using cutting-edge artificial intelligence.
π Try Vector.AI Live
- Features
- Tech Stack
- Project Structure
- Prerequisites
- Installation
- Environment Variables
- Usage
- API Endpoints
- Database Schema
- Contributing
- AI Article Writer: Generate high-quality, engaging articles with customizable length (500-1600+ words)
- Blog Title Generator: Create catchy and SEO-optimized titles across 8 different categories
- AI Image Generation: Produce stunning images from text prompts with 8+ artistic styles
- Background Removal: Automatically remove backgrounds from images using AI
- Object Removal: Seamlessly erase unwanted objects from photos
- Resume Reviewer: Get AI-driven feedback and suggestions to improve your resume
- Authentication: Secure user management with Clerk
- Dashboard: Personal workspace to view all your AI creations
- Community Gallery: Share and discover AI-generated content from other users
- Like System: Engage with community content through likes
- Usage Plans: Free tier with limits + Premium unlimited access
- Responsive Design: Mobile-first approach with Tailwind CSS
- Real-time Feedback: Toast notifications for all user actions
- File Upload: Secure image and PDF upload functionality
- Content Management: Publish/unpublish your creations
- Database Persistence: All creations are stored and retrievable
- React 19 - Modern UI library
- Vite - Fast build tool and development server
- React Router DOM - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Axios - HTTP client for API requests
- Lucide React - Beautiful icon library
- React Hot Toast - Elegant notifications
- React Markdown - Markdown rendering
- Clerk - Authentication and user management
- Node.js - Runtime environment
- Express.js - Web application framework
- PostgreSQL - Primary database (via Neon)
- Clerk Express - Authentication middleware
- Cloudinary - Image storage and processing
- Multer - File upload handling
- OpenAI API - AI text generation (via Gemini)
- ClipDrop API - AI image generation
- PDF Parse - Resume processing
- Neon PostgreSQL - Serverless PostgreSQL database
- Cloudinary - Cloud-based image and video management
AI SaaS/
βββ client/ # Frontend React application
β βββ public/ # Static assets
β βββ src/
β β βββ assets/ # Images, icons, and data
β β βββ components/ # Reusable UI components
β β β βββ AiTools.jsx # AI tools showcase
β β β βββ CreationItem.jsx # Individual creation display
β β β βββ Footer.jsx # Site footer
β β β βββ Hero.jsx # Landing page hero
β β β βββ Navbar.jsx # Navigation bar
β β β βββ Plan.jsx # Pricing plans
β β β βββ Sidebar.jsx # Dashboard sidebar
β β β βββ Testimonial.jsx # User testimonials
β β βββ pages/ # Application pages
β β β βββ BlogTitles.jsx # Blog title generator
β β β βββ Community.jsx # Community gallery
β β β βββ DashBoard.jsx # User dashboard
β β β βββ GenerateImages.jsx # Image generation
β β β βββ Home.jsx # Landing page
β β β βββ Layout.jsx # App layout wrapper
β β β βββ RemoveBackground.jsx # Background removal
β β β βββ RemoveObject.jsx # Object removal
β β β βββ ReviewResume.jsx # Resume review
β β β βββ WriteArticle.jsx # Article generation
β β βββ App.jsx # Main app component
β β βββ index.css # Global styles
β β βββ main.jsx # App entry point
β βββ .env # Environment variables
β βββ package.json # Dependencies and scripts
β βββ vite.config.js # Vite configuration
βββ server/ # Backend Express application
β βββ configs/ # Configuration files
β β βββ cloudinary.js # Cloudinary setup
β β βββ db.js # Database connection
β β βββ multer.js # File upload config
β βββ controllers/ # Route controllers
β β βββ aiController.js # AI-related endpoints
β β βββ userController.js # User-related endpoints
β βββ middlewares/ # Custom middleware
β β βββ auth.js # Authentication middleware
β βββ routes/ # API routes
β β βββ aiRoutes.js # AI endpoints routing
β β βββ userRoutes.js # User endpoints routing
β βββ package.json # Dependencies and scripts
β βββ server.js # Express server setup
βββ README.md # Project documentation
Before running this application, make sure you have:
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL database (Neon recommended)
- Clerk account for authentication
- Cloudinary account for image storage
- OpenAI API key (or Gemini API key)
- ClipDrop API key for image generation
git clone https://github.com/aashutosh585/AI-SaaS.git
cd AI-SaaS
cd client
npm install
cd ../server
npm install
Create a .env
file in the client
directory:
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
VITE_BASE_URL=http://localhost:3000
Create a .env
file in the server
directory:
# Database
DATABASE_URL=your_neon_postgresql_connection_string
# Authentication
CLERK_SECRET_KEY=your_clerk_secret_key
CLERK_WEBHOOK_SECRET=your_clerk_webhook_secret
# AI Services
GEMINI_API_KEY=your_gemini_api_key
CLIPDROP_API_KEY=your_clipdrop_api_key
# Cloud Storage
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
# Server
PORT=3000
NODE_ENV=development
- Start the Backend Server:
cd server
npm run server
- Start the Frontend Development Server:
cd client
npm run dev
- Access the Application:
- Frontend:
http://localhost:5173
- Backend API:
http://localhost:3000
- Frontend:
- Build the Frontend:
cd client
npm run build
- Start the Production Server:
cd server
npm start
Method | Endpoint | Description | Auth Required |
---|---|---|---|
POST | /generate-article |
Generate articles with custom length | β |
POST | /generate-blog-title |
Create blog titles by category | β |
POST | /generate-images |
Generate images from text prompts | β |
POST | /remove-background |
Remove image backgrounds | β |
POST | /remove-image-object |
Remove objects from images | β |
POST | /resume-review |
Analyze and review resumes | β |
Method | Endpoint | Description | Auth Required |
---|---|---|---|
GET | /get-user-creations |
Fetch user's all creations | β |
GET | /get-published-creations |
Fetch public community creations | β |
POST | /toggle-like-creation |
Like/unlike community creations | β |
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[], -- Array of user IDs who liked
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
- Generate articles from 500 to 1600+ words
- Customizable prompts and topics
- Markdown formatting support
- Instant preview and editing
- 8 categories: General, Technology, Health, Lifestyle, Travel, Food, Education, Business
- SEO-optimized suggestions
- Multiple title variations per request
- 8 artistic styles: Realistic, Ghibli, Cartoon, Anime, Fantasy, 3D, Portrait
- High-quality image output
- Cloudinary integration for storage
- Community sharing options
- AI-powered precision removal
- Support for JPG, PNG formats
- Real-time processing feedback
- Download and save functionality
- Public gallery of user creations
- Like and engagement system
- Real-time updates
- User authentication integration
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run server # Start with nodemon (development)
npm start # Start production server
- Fork the repository
- 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
- Clerk for seamless authentication
- OpenAI/Gemini for powerful AI capabilities
- Cloudinary for reliable image processing
- Neon for serverless PostgreSQL
- Tailwind CSS for beautiful UI components
For support, email [email protected] or join our Discord community.
Built with β€οΈ by Ashutosh Maurya