5-Day Remote AI Engineering Sprint Submission & Portfolio Case Study
A production-grade, multi-tenant AI platform that transforms unorganized enterprise documentation into real-time, grounded AI agents embeddable on any website with one line of code.
All system documentation, evaluation suites, architecture guides, and runbooks are available in the docs/ directory:
| Document | Description | Direct Link |
|---|---|---|
| Requirements & Edge Cases | Target user, JTBD, Day 1β5 progression, 12 test cases, and failure mode matrix. | REQUIREMENTS_AND_EDGE_CASES.md |
| System Architecture | System topology, multi-tenancy model, end-to-end data flows, Zod contracts, and ERD. | ARCHITECTURE.md |
| Evaluation Package | 12-test empirical verification suite, baseline comparisons, metrics, and failure analyses. | EVALUATION_PACKAGE.md |
| Portfolio Case Study | Deep-dive case study answering the 5 core questions, business impact, and 2-week plan. | CASE_STUDY.md |
| AI Collaboration Note | Tools used, delegated tasks, verification protocols, rejected proposals, and human decisions. | AI_COLLABORATION_NOTE.md |
| Operator Runbook & SOPs | 3-step setup guide, SOPs, troubleshooting matrix, and 5-minute demo video script. | OPERATOR_RUNBOOK.md |
| API Integration Guide | Comprehensive REST endpoint definitions, SSE streaming protocol, and widget embedding. | API_INTEGRATION.md |
| Key Information | Details |
|---|---|
| Project Name | Brain Plug Multi-Tenant AI Platform |
| Domain Track | Customer Support, Operations & Knowledge Retrieval |
| Sprint Duration | 5 Days (Monday β Friday) |
| Target User | Support Team Leads, Customer Experience Managers, and Client Operations Directors |
| Core Job-to-be-Done | Eliminate repetitive Tier-1 customer support tickets by auto-generating grounded AI chatbot agents from company documents (PDF, DOCX, XLSX, CSV) with zero-code web embedding, bidirectional human escalation, and open self-service onboarding. |
| Primary LLM Engine | Google Gemini 2.0 Flash (Ultra-Low Latency Streaming) & Gemini 1.5 Pro |
| Vector Embedding Model |
Google Gemini text-embedding-004 (768-dimensional semantic embeddings) |
| Measured Business Impact |
87.8% reduction in first-response latency ( |
Customer Support and Client Operations teams spend over 65% of their daily bandwidth answering repetitive tier-1 customer inquiries (pricing tiers, return policies, feature specifications, troubleshooting SOPs). Knowledge is fragmented across disparate PDFs, Word documents, Excel price sheets, and CSVs.
-
Previous Manual Way of Working (Baseline):
- Support agents manually hunt through folders or copy-paste text into standard ungrounded ChatGPT.
- Latency: Average first-response time was 25 minutes during business hours, and 8+ hours overnight.
- Quality Risks: Frequent hallucinations, unverified answers, zero source traceability, and dangerous data privacy leaks across customer boundaries.
-
The Brain Plug Solution:
- A non-developer uploads raw business files.
- Brain Plug automatically chunks, vectorizes, and indexes the content in PostgreSQL.
- Generates a branded, Shadow DOM chatbot embeddable via a single
<script>tag. - Queries are answered in
$<450\text{ms}$ with verified document citations, and unresolved questions automatically escalate into a bidirectional support ticketing queue.
graph TD
A[Unstructured Files: PDF, DOCX, XLSX, CSV] --> B[Brain Plug Vector Ingestion Engine]
B --> C[PostgreSQL Vector Store]
D[End-User Customer Website] -->|1-Script Shadow DOM Widget| E[Brain Plug Chat Gateway]
E -->|Cosine Semantic Search| C
C -->|Top-5 Grounded Chunks >0.40| F[Google Gemini 2.0 Flash]
F -->|SSE Stream + Source Citations| D
E -->|Low Confidence / Human Help| G[CR Support Ticketing Desk]
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BRAIN PLUG PLATFORM ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [ CLIENT TIER - Next.js 16 App Router + TailwindCSS + Pure Light Theme ] β
β βββ / (Landing Page: Interactive Simulator, Mobile Drawer, Feature Tabs) β
β βββ /login & /register (Passwordless OTP Auth & Open Workspace Onboarding) β
β βββ /admin/* (Super Admin: Client Tenants, Models Registry, Audit Logs) β
β βββ /client/* (Client Workspace: Agent Studio, Knowledge RAG, Tickets) β
β βββ public/widget.js (Vanilla JS Shadow DOM Embedded Chatbot) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [ GATEWAY, MIDDLEWARE & SECURITY VAULT ] β
β βββ proxy.ts (Edge JWT Session Guard & Role-Based Dashboard Routing) β
β βββ lib/encryption.ts (AES-256-GCM Cipher for Tokens & Database Secrets) β
β βββ lib/rate-limit.ts (Sliding Window Token Bucket Rate Limiter) β
β βββ lib/ip.ts (Real Public Client IP Extraction across Proxies & CDNs) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [ BACKEND CORE APIS & ORCHESTRATION ] β
β βββ /api/v1/auth/* (Self-Service Register & Passwordless 6-digit OTP) β
β βββ /api/v1/agents/* (Agent Persona, Prompt Prefixing & Model Binding) β
β βββ /api/v1/knowledge/* (Multi-format Parser & Vector Embeddings) β
β βββ /api/v1/chat (SSE Streaming with Gemini 2.0 & RAG Grounding) β
β βββ /api/v1/settings (Dynamic Database-Backed Gemini Key Invalidation) β
β βββ /api/v1/tickets/* (Support Ticketing & Human-in-the-Loop Escalation) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [ DATA & CLOUD STORAGE LAYER ] β
β βββ PostgreSQL (Prisma ORM with Multi-Tenant Foreign-Key Isolation) β
β βββ PostgreSQL Native Vector Math (Exact 768-Dim Cosine Similarity) β
β βββ Cloudinary CDN (Production Object Storage for Documents & Avatars) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Observed Workflow: Support teams managing 250+ inquiries/week across disparate platforms with static documentation.
- Pain Points: High response latency (25 mins average), inconsistency in policy answers, high onboarding friction for new staff.
- Baseline Established:
- Manual response time: 25 minutes
- Staff drafting time: 6.2 hours / day / representative
- Deflection rate: 0%
- Test Set: Authored 12 benchmark test cases covering exact policy extraction, tabular data lookup, edge queries, prompt injections, and multi-tenant boundary checks.
- Scope & Non-Goals:
- In-Scope: Multi-tenant database separation, Google Gemini integration, PDF/DOCX/XLSX/CSV ingestion, 1-script Shadow DOM widget, support ticket escalation.
- Non-Goals: Voice synthesis, custom LLM fine-tuning, external SaaS vector databases.
- Data Contracts: Defined Prisma schema with strict relational integrity (
Tenant,User,Role,Agent,GeminiModel,Document,DocumentChunk,Conversation,Message,Ticket,AuditLog). - Security Boundaries: Designed AES-256-GCM encryption for stored API keys, and HTTP-only JWT cookies (
bp_session). - Shipped v0: Executed first end-to-end happy path connecting raw text chunking to Gemini streaming inference.
- Client Management Studio: Created
/client/dashboard,/client/agents,/client/conversations, and/client/tickets. - Knowledge Ingestion: Integrated Cloudinary uploads with PDF/Word/Excel text extractors and vector chunking.
- Multi-Framework Embedder: Built 1-click embed code generator for HTML, React / Next.js, Vue 3, and Shopify.
- Super Admin Control Center: Added
/admin/clients,/admin/models(central Gemini key registry),/admin/audit-logs,/admin/roles, and/admin/settings.
- Deliberate Failure Testing & Fixes:
- Database Seed Password Overwrite: Fixed
prisma/seed.tsto be 100% idempotent and preserve existing admin passwords. - Internal Staff Note Leak: Hardened ticket detail endpoints to strictly filter out
isInternalNote: truefor non-admin callers. - In-Memory Gemini Key Stagnation: Added instantaneous cache invalidation on dynamic key updates in
/admin/models. - Cross-Tenant UUID Access: Enforced
requireTenantAccess()across all tenant-scoped route handlers.
- Database Seed Password Overwrite: Fixed
- Delivered:
- Open self-service registration tab (
/login?tab=registerand/register) for instant client onboarding. - Pure light lavender & purple UI theme with high-contrast readability.
- Complete operator runbook, evaluation results, and 2-week adoption roadmap.
- Open self-service registration tab (
| ID | Test Scenario | Expected Behavior | Baseline | Brain Plug | Result |
|---|---|---|---|---|---|
| TC-01 | Open Registration | Creates tenant, user, CLIENT_ADMIN role, starter AI agent + widget. |
3β7 days | < 30 seconds | PASS |
| TC-02 | Passwordless OTP | Validates SHA-256 hash, issues bp_session cookie, routes to dashboard. |
N/A | < 200ms | PASS |
| TC-03 | AES-256-GCM Crypto | Encrypts secrets with randomized IV and 16-byte auth tag. | Bcrypt | AES-256-GCM | PASS |
| TC-04 | Dynamic Key Injection | Super Admin updates key in /admin/models with zero downtime. |
Server restart | Live Invalidation | PASS |
| TC-05 | Document Ingestion | 20-page PDF chunked & embedded into 768-dim vectors. | 2β5 days | < 3 seconds | PASS |
| TC-06 | Vector RAG Grounding | Top-5 chunks ( |
18.4% error | < 1.2% error | PASS |
| TC-07 | SSE Token Streaming | Time-To-First-Token streams via Server-Sent Events. | 25 mins | 410ms TTFT | PASS |
| TC-08 | CORS Domain Guard | Rejects unauthorized origins with 403 Forbidden. |
Open access | 403 Forbidden | PASS |
| TC-09 | Rate Limiting | Sliding-window token bucket blocks excessive requests. | Server crash | 429 Rate Limit | PASS |
| TC-10 | Support Escalation | Low confidence query creates CR Ticket with email alerts. | Unrecorded | Ticket Raised | PASS |
| TC-11 | Internal Note Privacy | Internal notes filtered from client-facing JSON payloads. | Data leak | 100% Filtered | PASS |
| TC-12 | Idempotent Seeding | Re-running db:seed preserves existing admin passwords. |
Reset bug | 100% Preserved | PASS |
Create a .env file in the project root by copying .env.example (cp .env.example .env) and populate the properties below:
# ==============================================================================
# BRAIN PLUG - ENVIRONMENT CONFIGURATION TEMPLATE
# ==============================================================================
# ------------------------------------------------------------------------------
# 1. Application & Base URLs
# ------------------------------------------------------------------------------
APP_URL=
NEXT_PUBLIC_APP_URL=
WIDGET_BASE_URL=
# ------------------------------------------------------------------------------
# 2. Database Connection (PostgreSQL 14+ / Supabase / Neon / Local)
# ------------------------------------------------------------------------------
# Transaction-mode connection pooler URL (Used by Prisma Client in production)
DATABASE_URL=
# Direct session-mode connection URL (Used for Prisma migrations & schema pushes)
DIRECT_URL=
# ------------------------------------------------------------------------------
# 3. Google Gemini AI API Configuration
# (Can also be dynamically configured via Super Admin Dashboard > Gemini Models)
# ------------------------------------------------------------------------------
GEMINI_API_KEY=
# ------------------------------------------------------------------------------
# 4. Storage Provider Configuration (Cloudinary / Local)
# ------------------------------------------------------------------------------
STORAGE_PROVIDER= # "cloudinary" | "local"
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
CLOUDINARY_FOLDER=
# ------------------------------------------------------------------------------
# 5. Authentication, JWT & AES-256-GCM Cryptographic Security
# ------------------------------------------------------------------------------
JWT_SECRET= # 32+ character secret for access tokens
JWT_REFRESH_SECRET= # 32+ character secret for refresh tokens
JWT_ACCESS_EXPIRY= # e.g. "3h"
AES_ENCRYPTION_KEY= # 32-byte hex key (64 hex characters) for AES-256-GCM
OTP_EXPIRY_MINUTES= # e.g. 5
MAX_OTP_ATTEMPTS= # e.g. 5
# ------------------------------------------------------------------------------
# 6. Default Super Admin Seed Configuration (npm run db:seed)
# ------------------------------------------------------------------------------
DEFAULT_ADMIN_FULL_NAME=
DEFAULT_ADMIN_EMAIL=
DEFAULT_ADMIN_MOBILE=
DEFAULT_ADMIN_GENDER= # "MALE" | "FEMALE" | "OTHER"
DEFAULT_ADMIN_LOCATION=
# ------------------------------------------------------------------------------
# 7. Transactional Email & SMTP Configuration (Nodemailer)
# ------------------------------------------------------------------------------
EMAIL_PROVIDER= # "console" | "smtp" | "resend"
EMAIL_FROM=
SMTP_FROM=
SMTP_HOST=
SMTP_PORT= # e.g. 587 or 465
SMTP_USER=
SMTP_PASSWORD=
SMTP_SECURE= # "false" | "true"
# ------------------------------------------------------------------------------
# 8. In-Memory Sliding-Window Rate Limiting
# ------------------------------------------------------------------------------
RATE_LIMIT_LOGIN_MAX= # e.g. 10
RATE_LIMIT_LOGIN_WINDOW_SEC= # e.g. 60
RATE_LIMIT_CHAT_MAX= # e.g. 60
RATE_LIMIT_CHAT_WINDOW_SEC= # e.g. 60npm installCopy .env.example to .env and configure your PostgreSQL connection string:
cp .env.example .env
npx prisma db push
npm run db:seednpm run devOpen http://localhost:3000 in your browser.
| Portal | URL | Authentication Method | |
|---|---|---|---|
| Super Admin Console | http://localhost:3000/login |
admin@brainplug.ai |
Passwordless 6-digit OTP (logged in server terminal during dev) |
| Client Workspace | http://localhost:3000/login |
client@brainplug.ai |
Passwordless 6-digit OTP (logged in server terminal during dev) |
| Open Client Registration | http://localhost:3000/login?tab=register |
Any Work Email | Instant tenant creation & passwordless OTP verification |
| API & Widget Docs | http://localhost:3000/docs |
Public Access | No login required |
This project is licensed under the MIT License. Created as part of the 5-Day Remote AI Engineering Sprint.