A production-grade, AI-powered chat platform built with FastAPI microservices, LangGraph RAG workflows, and a Vue.js frontend β designed to showcase clean architecture, real-time messaging, and full CI/CD readiness.
@startuml
skinparam monochrome true
skinparam defaultFontName Arial
rectangle "Client" as client
rectangle "Nginx" as nginx
rectangle "Auth Service" as auth
rectangle "Chat Service" as chat
rectangle "Admin Service" as admin
rectangle "PostgreSQL" as postgres
rectangle "Redis" as redis
client --> nginx
nginx --> auth
nginx --> chat
nginx --> admin
auth --> postgres
chat --> postgres
chat --> redis
admin --> postgres
note right of chat
Uses LangGraph for
enhanced RAG workflows
end note
note right of postgres
Stores users, sessions,
chat history
end note
note right of redis
Caching & session
management
end note
@enduml| Service | Description | Docs |
|---|---|---|
| Auth Service | JWT-based authentication, registration, role-based access control | docs |
| Chat Service | LangGraph-powered RAG chat with SSE streaming and session document retrieval | docs |
| Admin Service | User management, system dashboard, analytics, and data export | docs |
| API Gateway | Nginx reverse proxy with load balancing and rate limiting | docs |
| Frontend | Vue 3 + Tailwind CSS responsive SPA with dark/light mode | docs |
| Common | Shared utilities, config, models, and monitoring across services | docs |
Our chat system features a modern, responsive web interface built with Vue.js and Tailwind CSS:
Secure authentication system with JWT tokens and role-based access control
Comprehensive dashboard with system statistics, user activity, and quick access to all features
Intuitive chat interface with real-time messaging, conversation history, and AI-powered responses
Powerful administrative interface for user management, system monitoring, and configuration
π Live demo: Not deployed β clone the repo and run docker compose up (see Implementation Status).
π Full Documentation: https://artaasd95.github.io/chat-bot-RAG-showcase/
π API Documentation: Available at /docs when running locally
- Multiple LLM Providers: OpenAI, DeepSeek, and extensible provider support
- LangGraph RAG Workflows: Advanced conversation graphs with API tool calling, history management, and conditional routing
- Streaming Chat: SSE (
POST /chat/stream) for incremental responses - Persistent Conversations: Chat history with context management across sessions
- JWT Authentication: Secure token-based auth with role-based access control (user/admin)
- Admin Dashboard: User management, system monitoring, analytics, and configuration
- Microservices: Dedicated auth, chat, admin services with shared common library
- Dockerized: Full Docker Compose setup for development and production
- API Gateway: Nginx reverse proxy with security headers and rate limiting
- PostgreSQL + Redis: Relational persistence with caching and session management
- Async-First: Fully asynchronous Python with FastAPI and asyncpg
- Comprehensive Logging: Structured logging with loguru and rotation policies
- Monitoring: Prometheus / Grafana integration and OpenTelemetry metrics
- Testing: Backend pytest unit suite (~40 test modules); frontend tests not yet configured
- CI/CD Ready: GitHub Actions for lint, test, build, and deploy
- Documentation: MkDocs Material site with architecture, API, and deployment guides
- Vue 3 + Vite: Modern, fast development and build tooling
- Tailwind CSS: Responsive design with dark/light mode
- Pinia State Management: Type-safe stores for auth, chat, notifications
- Streaming Chat: SSE endpoint (
POST /chat/stream) for token-by-token responses
- Docker & Docker Compose
- OpenAI or DeepSeek API key
git clone https://github.com/artaasd95/chat-bot-RAG-showcase.git
cd chat-bot-RAG-showcase
cp .env.example .env # Edit with your API keys
docker compose up --buildVisit http://localhost:3000 for the frontend or http://localhost:8000/docs for the API docs.
# Backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn services.api.main:app --reload --port 8000
# Frontend
cd frontend
npm install
npm run dev.
βββ services/ # Backend microservices
β βββ auth/ # Authentication service
β βββ chat/ # LangGraph chat service
β βββ admin/ # Admin dashboard service
β βββ api/ # API gateway entry point
β βββ common/ # Shared utilities, config, models
βββ frontend/ # Vue 3 + Tailwind SPA
βββ infra/ # Infrastructure
β βββ docker/ # Dockerfiles
β βββ k8s/ # Kubernetes manifests (optional)
βββ docs/ # MkDocs documentation site
βββ tests/ # Backend test suite
βββ ci/ # CI/CD scripts
βββ docker-compose.yml # Production compose
βββ docker-compose.dev.yml # Development compose
βββ mkdocs.yml # Documentation config
| Technology | Why |
|---|---|
| FastAPI | Async-first Python framework with automatic OpenAPI docs, Pydantic validation, and industry-leading performance |
| LangGraph | State-machine-based graph orchestration for complex RAG workflows β more controllable than chains |
| Vue 3 + Vite | Lightweight, reactive frontend with fast HMR and composition API for clean component logic |
| Tailwind CSS | Utility-first CSS that keeps styles consistent and bundle sizes small |
| Docker Compose | Single-command environment parity across dev, CI, and production |
| MkDocs Material | Write documentation in Markdown, publish as a polished static site with search and theming |
- Weeks 1β2: Production pgvector retrieval, honest docs, green CI, API contract tests
- Weeks 3β4: Streaming chat UX, citation sidebar, ingestion progress, seeded demo KB
- Weeks 5β8: SSO (Azure AD), hybrid search + reranking, evaluation harness (RAGAS), observability dashboards
- Weeks 9β12: Multi-tenant knowledge bases, object storage for uploads, load testing, live SaaS demo
See docs/IMPLEMENTATION_STATUS.md for current vs planned features.
Comprehensive documentation is available as an MkDocs site:
- Implementation Status β Feature truth table synced with the codebase
- Architecture β System design, service communication, and deployment models
- API Reference β Complete endpoint docs with request/response examples
- Getting Started β Step-by-step setup guide with troubleshooting
- Security β Hardening checklist, BYOK support, and best practices
- Deployment β Docker, Kubernetes, and production configuration
MIT