Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 2.71 KB

README.md

File metadata and controls

98 lines (74 loc) · 2.71 KB

ND Chat - Modern AI Chat Application

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.

Next.js React TypeScript

✨ Features

  • 🤖 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

🛠️ Tech Stack

Frontend

  • 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

Backend

  • Framework: FastAPI
  • AI Integration: Google Gemini API
  • Authentication: Session-based (coming soon)

🚀 Getting Started

  1. Clone the repository:
git clone https://github.com/nicdun/chat-bot.git
cd chat-bot
  1. Install dependencies:
npm install
  1. Set up your environment variables:
cp .env.example .env.local
# Edit .env.local with your API keys and configuration
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser.

🔧 Environment Variables

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

📦 Project Structure

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

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.