A beautiful and feature-rich chat application built with Next.js and powered by Google's Gemini AI. Experience seamless conversations with a modern, responsive interface and persistent chat history.
- 🤖 Powered by Google's Gemini AI
- 💬 Real-time chat interface with markdown support
- 🎨 Beautiful UI with Tailwind CSS and Shadcn components
- 💾 Persistent chat history using DexieDB (IndexedDB)
- 🚀 Fast and responsive with Next.js App Router
- 📱 Fully responsive design
- ⚡ Real-time message streaming
- 🎭 Loading animations with Framer Motion
- 🔄 Chat thread management
- 🎨 Syntax highlighting for code blocks
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Shadcn/UI with Radix UI primitives
- State Management: DexieDB for local storage
- Animations: Framer Motion
- Markdown: React Markdown with GFM support
- Framework: FastAPI
- AI Integration: Google Gemini API
- Authentication: Session-based (coming soon)
- Clone the repository:
git clone https://github.com/nicdun/chat-bot.git
cd chat-bot
- Install dependencies:
npm install
- Set up your environment variables:
cp .env.example .env.local
# Edit .env.local with your API keys and configuration
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser.
Create a .env.local
file with the following variables for the server:
GOOGLE_API_KEY=your_gemini_api_key
Create a .env.local
file with the following variables for the server:
NEXT_PUBLIC_API_URL=your_fastapi_backend_url
chat-bot/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── chat/ # Chat page components
│ └── layout.tsx # Root layout
├── components/ # Reusable components
├── lib/ # Utility functions and configurations
├── public/ # Static assets
└── styles/ # Global styles
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.