Skip to content

gregory1506/shake-chat-v1

Repository files navigation

🎭 Shakespeare's Oracle

"To chat, or not to chat, that is the question."

A Context-Aware AI Chatbot that channels the persona of William Shakespeare. Built with a modern FastAPI backend and a Vanilla JS frontend, powering authentic Early Modern English conversations using Google Gemini 2.0.

Shakespeare Chatbot Demo

✨ Key Features

  • Factually Accurate: Powered by Google's latest Gemini 2.0 Flash Lite model
  • Authentic Style: Responses use genuine Shakespearean vocabulary and grammar patterns
  • 100% Free: Runs entirely on free-tier resources (Google AI Studio, Render)
  • Modern UI: Glassmorphism design with animated backgrounds and typing indicators
  • Unified Deployment: Single service for both backend and frontend

🚀 Quick Start

Prerequisites

Local Development

# Clone the repository
git clone https://github.com/gregory1506/shake-chat-v1.git
cd shake-chat-v1

# Set up backend
cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

# Configure environment
cp ../.env.example .env
# Edit .env and add your GOOGLE_API_KEY

# Run the unified server
uvicorn app.main:app --reload --port 8000

Open http://localhost:8000 in your browser.

📁 Project Structure

shake-chat-v1/
├── backend/
│   ├── app/
│   │   ├── main.py           # FastAPI app & Static file serving
│   │   ├── config.py         # Environment settings
│   │   ├── routers/chat.py   # Chat endpoints
│   │   └── services/
│   │       ├── gemini.py     # Google Gemini integration
│   │       └── shakespeare.py # Persona instructions
│   ├── requirements.txt
│   └── render.yaml           # Render Blueprint
├── frontend/                 # Static frontend assets
│   ├── index.html
│   ├── styles.css
│   └── app.js
└── docs/                     # Documentation

🌐 Deployment through Render

We use a Unified Monolith approach (Backend serves Frontend) to keep it simple and free on Render.

  1. Fork this repo.
  2. Go to Render Dashboard.
  3. Click New + -> Blueprint.
  4. Connect your repo.
  5. Provide GOOGLE_API_KEY when prompted.

See Render Deployment Guide for details.

📄 License

MIT License - feel free to use for learning and portfolios!

🙏 Credits

🛠 Tech Stack

FastAPI Python Google Gemini JavaScript HTML5 CSS3

📚 Documentation

About

A Context-Aware AI Chatbot offering authentic Shakespearean conversations. Built with FastAPI, Vanilla JS, and Google Gemini 2.0.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors