Building a GenAI-powered English learning assistant with contextual explanations — a mix of dictionary, translator, and language tutor.
My github for this Project: https://github.com/Taki089Linux/flashGenAiCard
🔧 Tech Stack Overview
- Frontend (Next.js): UI for inputting phrases, displaying structured explanations.
- Backend (NestJS): API orchestration, model call, data storage, and caching.
- Vector DB (MongoDB + Atlas Search): Store and retrieve similar phrases/meanings.
- AI Model (Gemini / OpenRouter / Claude / Mistral): Phrase explanation generation.
🧠 Architecture Flow
[User Input] --> [Next.js Frontend] --> [NestJS API] | [MongoDB Vector Search] (Check if phrase was processed before) | [AI Model Call via Gemini/OpenRouter] | [Response Parsing + Caching in MongoDB] | --> [Next.js Renders Structured Output]
✨ Output Format (from AI)
Use a system prompt template in your backend like:
const systemPrompt = ` You're an expert English tutor. Given a word or phrase, explain it like the following format, using only English. Keep a friendly, clear, and structured tone. --- 🔤 Phrase: {{input}} 📘 Explanation: - Definition: - Phrase breakdown: - Meaning (in simple English): - Usage context: 🧠 Examples: English sentence | Simple meaning -----------------|------------------ Example 1 | Meaning 1 Example 2 | Meaning 2 🔁 Similar phrases: - Phrase A - Phrase B 📌 Memory tip: Give a useful mental image, mnemonic, or pattern. 🧩 Field usage (e.g., Business, Project Management): Example sentence with note. `;
🔍 MongoDB Vector Search Usage
- Store each phrase with embedding (use Gemini Embeddings).
-
Use Atlas Search to:
- Find semantically similar phrases to avoid redundant calls.
- Improve response suggestion (auto-related phrases).
⚙️ NestJS Backend Modules
-
PhraseModule
: Handle input processing and retrieval. -
AIService
: Wrapper for Gemini / OpenRouter API call. -
MongoService
: CRUD + vector search logic. -
CacheService
: Optionally Redis to speed up repeat queries.
🖼️ Frontend Features (Next.js)
- Clean input field + explanation display.
- Example table formatter.
- Copy to clipboard, share links, bookmark phrase.
- Optional login to store user phrase history.
🔑 Free AI Option
- Use OpenRouter with a free tier model like Claude Haiku, Mistral, or Gemini 1.5 Flash.
- If budget allows, use Gemini Pro 1.5 via Vertex AI or API Key (limited free tier).
🧩 Develop Steps
- Design frontend layout and explanation format.
- **Create NestJS modules to:
- Accept phrase
- Check MongoDB for cache
- Call AI if not cached
- Save structured result
- Create prompt structure + test multiple models for best results.
- Vectorize and store responses for semantic search later.
Top comments (0)