- 🤖 AI-Powered Conversations — Intelligent responses powered by Google Gemini API
- 🖼️ Image Analysis — Upload images and ask questions about them
- 💬 Real-time Chat — Smooth, animated chat interface with typing indicators
- 📱 Fully Responsive — Optimized for desktop, tablet, and mobile devices
- 🎨 Modern UI/UX — Clean design with gradient accents and smooth animations
- 🧭 Easy Navigation — Sidebar with quick access to chat, history, and settings
- 💡 Suggested Questions — Pre-built prompts to get started quickly
- 🗑️ Clear Chat — One-click conversation reset
| Chat Interface | Mobile View |
|---|---|
| Clean, modern chat interface with AI responses | Responsive design with collapsible sidebar |
| Category | Technologies |
|---|---|
| Frontend | React 18, React Router DOM |
| Styling | Tailwind CSS, PostCSS, Custom CSS |
| Build Tool | Vite |
| AI Integration | Google Gemini API |
| Icons | Material Symbols, Font Awesome |
| Deployment | Vercel |
- Node.js 18+
- npm or yarn
- Google Gemini API Key
-
Clone the repository
git clone https://github.com/iamchandanchaudhary/AI-Assistant.git cd AI-Assistant -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile in the root directory:VITE_API_URL=your_gemini_api_endpoint
-
Start the development server
npm run dev
-
Open your browser
Navigate to
http://localhost:5173
AI-Assistant/
├── public/
├── src/
│ ├── assets/
│ │ ├── boticon.svg
│ │ └── react.svg
│ ├── components/
│ │ ├── ChatBot.jsx # Main chat interface
│ │ ├── ChatForm.jsx # Message input with image upload
│ │ ├── ChatMessage.jsx # Individual message component
│ │ ├── ChatBotIcon.jsx # Bot avatar icon
│ │ ├── Sidebar.jsx # Navigation sidebar
│ │ ├── History.jsx # Chat history page
│ │ ├── Settings.jsx # Settings page
│ │ └── chandanInfo.js # AI context data
│ ├── App.jsx
│ ├── App.css
│ ├── main.jsx
│ └── index.css
├── .env
├── index.html
├── package.json
├── tailwind.config.js
├── postcss.config.js
├── vite.config.js
└── README.md
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
The main chat interface component managing conversation state, API calls, and UI rendering.
Handles user input with support for text messages and image uploads with preview functionality.
Renders individual messages with different styles for user and AI responses, including loading states.
Responsive navigation component with links to New Chat, History, and Settings pages.
The project uses a custom Tailwind configuration. Modify tailwind.config.js to customize:
- Color palette
- Animations
- Responsive breakpoints
| Variable | Description |
|---|---|
VITE_API_URL |
Google Gemini API endpoint URL |
The project is deployed on Vercel. To deploy your own instance:
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy!
Contributions are welcome! Feel free to:
- 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.
⭐ Star this repo if you find it helpful! ⭐
Made with ❤️ by Chandan Chaudhary