An AI-powered platform that provides multiple creative tools including image generation, background removal, object removal, article writing, resume review, and blog title generation. Built with React and powered by various AI APIs.
- πΌοΈ AI Image Generation: Create stunning images from text prompts
- π¨ Background Removal: Remove backgrounds from images with AI precision
- βοΈ Object Removal: Intelligently remove unwanted objects from photos
- βοΈ Article Writing: Generate well-structured articles with AI assistance
- π Blog Title Generator: Create catchy blog titles instantly
- π Resume Review: Get AI-powered feedback on your resume
- π₯ Community Showcase: Share and explore AI-generated creations
- π User Authentication: Secure login with Clerk
- πΎ Cloud Storage: Store and manage creations with Cloudinary
- React with Vite
- CSS for styling
- Clerk for authentication
- Axios for API calls
- Node.js with Express
- Neon Database (PostgreSQL)
- Cloudinary for media management
- Multer for file uploads
- OpenAI API for text generation
- Gemini API for content creation
- Clipdrop API for image manipulation
Before you begin, ensure you have:
- Node.js (v14.0 or higher) - Download here
- npm or yarn package manager
- Git
Important: Run the server first, then the client
- Clone the repository
git clone https://github.com/AadityaBansal01/QuickAI.git
cd QuickAI- Setup Neon Database
- Visit Neon.tech
- Create a new project and database
- Run this SQL query in the SQL Editor:
CREATE TABLE creations (
id SERIAL PRIMARY KEY,
user_id TEXT NOT NULL,
prompt TEXT NOT NULL,
content TEXT NOT NULL,
type TEXT NOT NULL,
publish BOOLEAN DEFAULT FALSE,
likes TEXT[] DEFAULT '{}',
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);-
Setup Cloudinary
- Sign up at Cloudinary
- Get your Cloud Name, API Key, and API Secret
-
Setup Clerk Authentication
- Create account at Clerk
- Create a new application
- Get your Publishable Key and Secret Key
-
Setup Clipdrop API
- Visit Clipdrop APIs
- Get your API key
-
Setup Gemini API
- Go to AI Studio
- Generate your API key
-
Install server dependencies
npm install- Configure environment variables
- Create a
.envfile in the server root - Add your API keys and credentials:
- Create a
# Neon Database
DATABASE_URL=your_neon_database_url
# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Clerk
CLERK_SECRET_KEY=your_clerk_secret_key
# OpenAI
OPENAI_API_KEY=your_openai_api_key
# Gemini
GEMINI_API_KEY=your_gemini_api_key
# Clipdrop
CLIPDROP_API_KEY=your_clipdrop_api_key- Run the server
npm run serverThe server should now be running on http://localhost:5000 (or your configured port)
- Open client folder in a new terminal
cd client- Install client dependencies
npm install- Configure client environment variables
- Create a
.envfile in the client root - Add your Clerk Publishable Key:
- Create a
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key- Run the client
npm run dev- Open your browser
- Navigate to
http://localhost:5173(or the URL shown in terminal)
- Navigate to
server/
βββ configs/ # Configuration files
βββ controllers/ # Request handlers
βββ middlewares/ # Custom middleware
βββ routes/ # API routes
βββ node_modules/ # Dependencies
βββ .env # Environment variables
client/
βββ public/ # Static assets
β βββ favicon.svg
β βββ gradientBackground.png
βββ src/
β βββ assets/ # Images and icons
β βββ components/ # React components
β β βββ Navbar.jsx
β β βββ Hero.jsx
β β βββ AiTools.jsx
β β βββ Sidebar.jsx
β β βββ Footer.jsx
β β βββ ...
β βββ pages/ # Application pages
β β βββ Home.jsx
β β βββ Dashboard.jsx
β β βββ GenerateImages.jsx
β β βββ RemoveBackground.jsx
β β βββ RemoveObject.jsx
β β βββ WriteArticle.jsx
β β βββ BlogTitles.jsx
β β βββ ReviewResume.jsx
β β βββ Community.jsx
β βββ App.jsx # Main app component
β βββ main.jsx # Entry point
βββ package.json
- Sign Up/Login: Use Clerk authentication to create an account
- Choose a Tool: Select from various AI tools on the dashboard
- Generate Content: Enter your prompts or upload files
- Save & Share: Save your creations and share them with the community
- Explore Community: Browse creations from other users
The project includes a vercel.json configuration file for easy deployment on Vercel or other hosting platforms.
express- Web framework@clerk/express- Authentication middleware@neondatabase/serverless- Database clientcloudinary- Media managementopenai- OpenAI API clientmulter- File upload handlingcors- CORS middlewaredotenv- Environment variables
react- UI libraryreact-router-dom- Routing@clerk/clerk-react- Authenticationaxios- HTTP clientswr- Data fetchingvite- Build tool
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Aaditya Bansal
- GitHub: @AadityaBansal01
- Special thanks to GreatStack for guidance and tutorials
- OpenAI for GPT models
- Google for Gemini API
- Clipdrop for image processing APIs
- Clerk for authentication services
- Cloudinary for media management
- Neon for serverless PostgreSQL
If you encounter any issues or have questions:
- Open an issue on GitHub
- Always run the server before starting the client
- Keep your API keys secure and never commit them to version control
- Make sure all environment variables are properly configured
- Database tables must be created before running the application
Made with β€οΈ by Aaditya Bansal