"Every batch leaves. Make sure their knowledge didn't take everything with them."
At modern engineering colleges and universities, senior wisdom is trapped in ephemeral WhatsApp groups, late-night DMs, and hallway conversations.
- Which professor is strict with midterms?
- How do you balance an IIT Madras dual degree with 48-hour project sprints?
- How did past juniors crack international internships in Singapore or the Apple Academy?
When senior batches graduate, years of institutional survival knowledge vanish forever. Junior batches repeatedly make the same mistakes, ask the same unanswered questions, and struggle with the same unwritten rules.
ECHO is an AI-powered institutional memory engine that continuously captures, organizes, and synthesizes campus knowledge from both voice recordings on the web and real-time conversations across WhatsApp group chats.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CAMPUS KNOWLEDGE SOURCES β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
ποΈ Voice Notes & Web Submissions π¬ WhatsApp Group Chats
β β
βΌ βΌ
[ Groq Whisper Large v3 ] [ Baileys Event Stream ]
β’ Speech-to-Text Transcription β’ Multi-lingual Intent Detection
β β’ Q&A Verification (Groq/Gemini)
βΌ β
[ Gemini Embeddings Engine ] βββββββββββββββββββ
β’ 3072-Dimensional Vector Generation
β’ Cross-Group Deduplication & Consensus Merging
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ECHO MULTI-CHANNEL CORE (SQLite) β
β β’ Persistent Knowledge Store β’ Time-Decay Engine β
β β’ Knowledge Gaps Tracker β’ Consensus Metrics β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
βΌ βΌ
π WEB APP DISCOVERY π¬ WHATSAPP BOT REPLIES
β’ Semantic Cosine Search β’ Automated Instant Answers
β’ Senior Consensus Synthesis β’ DM Fallback for Locked Groups
β’ Interactive Knowledge Radar β’ π» Silent Confirmation Reactions
- Multi-Lingual Question Intent Detection: Understands questions in plain English, Hindi, and Hinglish (e.g. "Pushkar sir kaisa padhate h", "attendance criteria kya hai"), with or without question marks.
- Instant Auto-Replies: When a student asks a question in any group, Echo semantically matches the knowledge base and delivers a verified answer in seconds.
- Locked Announcement Channel Support: If the bot lacks permission to post in a restricted announcement channel, it privately direct-messages (DM) the student the verified answer.
- Passive Conversation Capture: When a senior answers a junior's question in chat, Echo verifies the pair via LLM and saves it to the central repository with a π» ghost reaction.
- Silent Confirmation Voting: Reactions like π, π―, or messages like
+1/vouchautomatically boost the memory's confidence score across groups.
- Instead of returning disconnected search links, Echo analyzes matching senior memories and uses Google Gemini & Groq to generate a single synthesized consensus answer.
- Displays a live Senior Agreement Meter showing the percentage of seniors aligned on the advice.
- Built-in browser audio recorder powered by native
MediaRecorderand real-time audio equalizers. - Automatic transcription via Groq Whisper Large v3 Turbo with near-zero latency.
- Tagged by Course Code, Professor, and Category with a real-time live preview card.
- Automatically logs every student search query that currently lacks a senior answer.
- Visualizes campus blind spots ranked by question frequency, enabling senior mentors and student councils to address high-demand topics with 1-click answer workflows.
- Every piece of advice has a dynamic health score based on time-decay math and confirmation counts:
- π’ Fresh (< 6 months / recently reconfirmed)
- π‘ Aging (6β12 months)
- π΄ Stale (> 1 year / outdated curriculum)
- Students can click "Mark as Still True" to re-verify older advice and restore freshness.
- One-click printable QR code generation for any specific Echo.
- Stick them on hardware lab doors, hostel noticeboards, or professor cabins so juniors can scan and listen to senior notes right where they need them.
| Domain | Technology | Purpose |
|---|---|---|
| Backend | Python 3.11+, Flask | High-throughput REST API and templating engine |
| Speech-to-Text | Groq Whisper Large v3 Turbo | Blazing-fast voice note transcription |
| Vector Embeddings | Google Gemini gemini-embedding-001 |
3072-dimensional semantic vector search |
| Synthesis & LLM | Google Gemini 3.1 Flash + Groq | Multi-perspective consensus answer synthesis |
| WhatsApp Layer | Node.js + @whiskeysockets/baileys |
Multi-device WebSocket connection to WhatsApp |
| Database | SQLite + NumPy | Local vector math and institutional storage |
| Styling & UI | Vanilla CSS3 (Custom Design System) | Glassmorphism, CSS keyframe animations, dark mode |
| Deployment | Railway | Microservices architecture with persistent volumes |
- Python 3.11 or higher
- Node.js 18+ (for WhatsApp Bot)
- Free API keys from Groq Console and Google AI Studio
# Clone the repository
git clone https://github.com/GyatsoYT/Echo.git
cd Echo
# Install Python dependencies
pip install -r requirements.txt
# Create environment configuration
cp .env.example .envEdit .env with your API keys:
GROQ_API_KEY=gsk_...
GEMINI_API_KEY=AIzaSy...
SECRET_KEY=your-secret-keyRun the Flask server:
python app.pyVisit http://localhost:5000 in your browser.
cd whatsapp-bot
npm install
node bot.jsScan the QR code printed in the terminal (or at http://localhost:5000/bot/qr) using WhatsApp on your phone (Linked Devices).
-- Core Memory Units (Audio, Transcripts, Vector Embeddings)
CREATE TABLE echoes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
course_tag TEXT NOT NULL,
professor_tag TEXT,
topic_tag TEXT,
transcript TEXT NOT NULL,
audio_path TEXT DEFAULT '',
embedding BLOB NOT NULL,
confirmations INTEGER DEFAULT 1,
source TEXT DEFAULT 'web',
question_context TEXT,
group_names TEXT DEFAULT '[]',
group_count INTEGER DEFAULT 1,
last_confirmed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Search Analytics (Powers the Knowledge Gaps Radar)
CREATE TABLE searches (
id INTEGER PRIMARY KEY AUTOINCREMENT,
query_text TEXT NOT NULL,
best_match_score REAL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);ECHO is configured for turnkey multi-service deployment on Railway:
- Flask Web API: Deployed with
Procfile/railway.tomlusinggunicorn app:app. - WhatsApp Bot Worker: Deployed in
whatsapp-bot/using persistent volume storage for WhatsApp session keys (/data/auth_session). - Zero-Config Persistent Storage: Configured via
DATABASE_PATHandUPLOAD_FOLDERenvironment variables.
This project is licensed under the MIT License β see the LICENSE file for details.