Skip to content

CMPN-CODECELL/Syrus2026_Code_Yodha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 

Repository files navigation

N.O.V.A. (Networked Onboarding Virtual Assistant)

PS-03: Autonomous Developer Onboarding Agent
Team: Code Yodha · Syrus 2026


🚀 Overview

N.O.V.A. is an Advanced Agentic Onboarding Platform designed to transform the resource-intensive process of developer onboarding into a fully autonomous experience. Instead of static wikis, new hires interact with an intelligent "HR & Tech Lead" hybrid that personalises their journey based on role, experience, and tech stack — while HR managers get a live dashboard to monitor every hire's progress in real time.


✨ Key Features

  • Persona Identification — Conversational extraction of role (Backend/Frontend/DevOps), experience level, tech stack, goals, and knowledge gaps.
  • Dynamic Path Generation — Personalised onboarding checklists of 8–12 tasks built in real time, with a Gantt-style timeline view (Day 1 / Day 3 / Day 7 / Day 14 / Day 30).
  • Professional Hybrid RAG — Retrieval-Augmented Generation pipeline using semantic vector search (ChromaDB) combined with keyword-based reranking for maximum accuracy. Zero hallucination on company policy.
  • Real-Time Chat — Live WebSocket chat with Nova, persistent across page navigation using React Context + localStorage.
  • Tool Calling — Nova creates Jira tickets and sends Slack welcome messages directly from the conversation.
  • HR Dashboard — Live onboarding tracker with progress bars, status badges, completion reports, and a floating AI chatbot for HR managers.
  • Knowledge Base Explorer — Searchable company docs with category filtering, Open Ticket modal, and related articles.
  • Autonomous Reporting — Automatic generation of structured completion summaries.
  • Dark / Light Mode — Persists across sessions via localStorage.

🛠️ Tech Stack

Component Technology Purpose
Frontend Next.js 14 + TypeScript + Tailwind CSS UI, routing, WebSocket client, dark mode
Backend FastAPI (Python) WebSocket API, REST endpoints, async AI calls
Agent Logic LangGraph State machine — Extract Persona → Generate Checklist → Answer
LLM llama-3.3-70b-versatile (via Groq) Reasoning, persona extraction, RAG answers, HR assistant
Vector DB ChromaDB Local persistent storage for secure, contextual documentation
Embeddings SentenceTransformers all-MiniLM-L6-v2 High-quality local text embeddings
RAG Search Hybrid (cosine vector + keyword BM25) Accurate retrieval from KB documents
Mock Tools Python async functions Jira ticket creation, Slack welcome messages

📁 Project Structure

nova-onboarding/
├── backend/
│   ├── agent/
│   │   └── graph.py              ← LangGraph brain (3 nodes + routing + tool calling)
│   ├── tools/
│   │   ├── chunker.py            ← Text chunking with overlap
│   │   ├── config.py             ← Logging + env config
│   │   ├── email_scheduler.py    ← Async job scheduler for progress emails
│   │   ├── email_service.py      ← SMTP integration (Welcome, Weekly, Completion)
│   │   ├── embeddings.py         ← SentenceTransformer model loader
│   │   ├── ingest.py             ← Full ingestion pipeline runner
│   │   ├── loader.py             ← .md document loader
│   │   ├── mock_integrations.py  ← Jira + Slack async mock tools
│   │   ├── ragtool.py            ← rag_search() entry point
│   │   ├── retriever.py          ← Hybrid search (vector + keyword reranking)
│   │   ├── test_rag.py           ← RAG functional tests
│   │   ├── vector_store.py       ← ChromaDB client (add/search)
│   │   └── verifier.py           ← Onboarding verification logic
│   ├── data/
│   │   ├── tier1_rag/            ← Public knowledge base (.md files)
│   │   ├── tier2_logic/          ← Internal logic (Personas, Checklists, Tickets)
│   │   └── tier3_templates/      ← Structured communication templates
│   ├── chroma_db/                ← Auto-generated vector store (gitignored)
│   ├── main.py                   ← FastAPI app + /ws/chat + /ws/hr-chat
│   └── requirements.txt
│
└── frontend/
    ├── src/
    │   ├── app/
    │   │   ├── layout.tsx              ← Root layout with ChatProvider
    │   │   ├── page.tsx                ← Page redirect (Login/Dashboard)
    │   │   ├── login/page.tsx          ← Auth page
    │   │   ├── chat/page.tsx           ← Developer chat interface
    │   │   ├── my-path/page.tsx        ← Checklist & Gantt timeline
    │   │   ├── knowledge-base/page.tsx ← Document explorer & ticket modal
    │   │   ├── team/page.tsx           ← Employee directory
    │   │   ├── dashboard/page.tsx      ← HR dashboard & floating chatbot
    │   │   └── completion/page.tsx     ← Graduation report
    │   ├── components/
    │   │   ├── SidebarLayout.tsx       ← Shared navigation & dark mode
    │   │   └── TaskItem.tsx            ← Interactive checklist component
    │   └── context/
    │       ├── AuthContext.tsx         ← Session management
    │       └── ChatContext.tsx         ← Global WebSocket state
    ├── package.json
    └── next-env.d.ts

⚙️ Setup Instructions

Prerequisites


1. Clone the Repository

git clone https://github.com/CMPN-CODECELL/Syrus2026_Code_Yodha.git
cd Syrus2026_Code_Yodha/nova-onboarding

2. Backend Installation

cd backend

# Create virtual environment
python -m venv .venv

# Activate — Windows PowerShell:
.venv\Scripts\Activate.ps1

# Activate — Mac/Linux:
source .venv/bin/activate

Windows only — if you get an execution policy error:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.venv\Scripts\Activate.ps1
# Install dependencies
pip install -r requirements.txt

3. Configuration

Create a .env file inside backend/:

GROQ_API_KEY=your-groq-api-key-here
MODEL_LLM=llama-3.3-70b-versatile
MODEL_NAME=all-MiniLM-L6-v2
DB_PATH=chroma_db
DATA_PATH=data
LOG_LEVEL=INFO
CHUNK_SIZE=400
CHUNK_OVERLAP=50

# Optional integrations
JIRA_BASE_URL=https://your-org.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your-jira-token
JIRA_PROJECT_KEY=FLOW
SLACK_BOT_TOKEN=xoxb-your-slack-bot-token

# Email configuration
SMTP_EMAIL=your-email@gmail.com
SMTP_PASSWORD=your-app-password
HR_EMAIL=hr-target-email@company.com

Never commit .env — it is already in .gitignore.


4. RAG Pipeline — Ingest Knowledge Base

Run once before starting the server. Loads all .md files from data/ into ChromaDB.

# Windows PowerShell:
$env:PYTHONPATH = "."
python -m tools.ingest

# Mac/Linux:
export PYTHONPATH=.
python -m tools.ingest

5. Running the Application

Start Backend Server

# Windows PowerShell:
$env:PYTHONPATH = "."
python main.py

# Mac/Linux:
export PYTHONPATH=.
python main.py

Server starts at http://localhost:8000

Start Frontend

Open a new terminal:

cd nova-onboarding/frontend
npm install
npm run dev

Frontend starts at http://localhost:3000


🤖 Verification

Run these checks to confirm every layer works:

  1. RAG Pipeline Test: python -m tools.test_rag
  2. Smoke Test Agent: python agent/graph.py
  3. API Health: Access http://localhost:8000/ or http://localhost:8000/docs

🐛 Troubleshooting

Error Fix
ModuleNotFoundError: No module named 'tools' Run with PYTHONPATH=.
ExecutionPolicy error Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
429 Too Many Requests Rate limit — wait 1 minute.
Chat clears on navigation Ensure layout.tsx wraps app with <ChatProvider>.

👥 Team — Code Yodha · Syrus 2026

Role Responsibility
AI & Agent Architect LangGraph brain, state machine, prompt engineering
RAG Engineer Hybrid search, ChromaDB, embeddings, ingestion
Backend Engineer FastAPI, WebSocket, integrations, email services
Frontend Engineer Next.js UI, real-time chat, HR dashboard

About

Repository for Code Yodha for Syrus-2026

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors