Skip to content

AadityaBansal01/QuickAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

QuickAI

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.

✨ Features

  • πŸ–ΌοΈ 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

πŸ› οΈ Tech Stack

Frontend

  • React with Vite
  • CSS for styling
  • Clerk for authentication
  • Axios for API calls

Backend

  • Node.js with Express
  • Neon Database (PostgreSQL)
  • Cloudinary for media management
  • Multer for file uploads

AI Services

  • OpenAI API for text generation
  • Gemini API for content creation
  • Clipdrop API for image manipulation

πŸ“‹ Prerequisites

Before you begin, ensure you have:

  • Node.js (v14.0 or higher) - Download here
  • npm or yarn package manager
  • Git

πŸš€ Installation & Setup

Important: Run the server first, then the client

Server Setup

  1. Clone the repository
git clone https://github.com/AadityaBansal01/QuickAI.git
cd QuickAI
  1. 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()
);
  1. Setup Cloudinary

    • Sign up at Cloudinary
    • Get your Cloud Name, API Key, and API Secret
  2. Setup Clerk Authentication

    • Create account at Clerk
    • Create a new application
    • Get your Publishable Key and Secret Key
  3. Setup Clipdrop API

  4. Setup Gemini API

  5. Install server dependencies

npm install
  1. Configure environment variables
    • Create a .env file in the server root
    • Add your API keys and credentials:
# 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
  1. Run the server
npm run server

The server should now be running on http://localhost:5000 (or your configured port)

Client Setup

  1. Open client folder in a new terminal
cd client
  1. Install client dependencies
npm install
  1. Configure client environment variables
    • Create a .env file in the client root
    • Add your Clerk Publishable Key:
VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
  1. Run the client
npm run dev
  1. Open your browser
    • Navigate to http://localhost:5173 (or the URL shown in terminal)

πŸ“ Project Structure

Server Structure

server/
β”œβ”€β”€ configs/          # Configuration files
β”œβ”€β”€ controllers/      # Request handlers
β”œβ”€β”€ middlewares/      # Custom middleware
β”œβ”€β”€ routes/           # API routes
β”œβ”€β”€ node_modules/     # Dependencies
└── .env              # Environment variables

Client Structure

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

🎯 Usage

  1. Sign Up/Login: Use Clerk authentication to create an account
  2. Choose a Tool: Select from various AI tools on the dashboard
  3. Generate Content: Enter your prompts or upload files
  4. Save & Share: Save your creations and share them with the community
  5. Explore Community: Browse creations from other users

🌐 Deployment

The project includes a vercel.json configuration file for easy deployment on Vercel or other hosting platforms.

πŸ“¦ Key Dependencies

Server

  • express - Web framework
  • @clerk/express - Authentication middleware
  • @neondatabase/serverless - Database client
  • cloudinary - Media management
  • openai - OpenAI API client
  • multer - File upload handling
  • cors - CORS middleware
  • dotenv - Environment variables

Client

  • react - UI library
  • react-router-dom - Routing
  • @clerk/clerk-react - Authentication
  • axios - HTTP client
  • swr - Data fetching
  • vite - Build tool

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is open source and available under the MIT License.

πŸ‘€ Author

Aaditya Bansal

πŸ™ Acknowledgments

  • 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

πŸ“ž Support

If you encounter any issues or have questions:

  • Open an issue on GitHub

⚠️ Important Notes

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Β 
Β 
Β 

Contributors

Languages