DGCA PRO

// DGCA MODULE PRO VERSION — AI Ask Me Anything + Quiz Engine // FULL PRO SOURCE CODE // Stack: // Backend: NodeJS + Express + MongoDB + OpenAI Embedding Ready // Frontend: Advanced HTML UI (Google + ChatGPT Style)/* ====================================================== PROJECT STRUCTURE ======================================================dgca-module-pro/ ├── backend/ │ ├── server.js │ ├── db.js │ ├── scraper.js │ ├── models/Post.js │ ├── routes/ask.js │ ├── routes/quiz.js │ └── aiSearch.js │ └── frontend/ ├── index.html ├── style.css └── app.js *//* ====================================================== BACKEND ====================================================== */// db.jsconst mongoose = require(“mongoose”);module.exports = async ()=>{ await mongoose.connect(“mongodb://127.0.0.1:27017/dgcaPRO”); console.log(“Mongo Connected”); };// models/Post.jsconst mongoose2=require(“mongoose”);const PostSchema=new mongoose2.Schema({ title:String, content:String, module:String, topic:String, type:String, tags:[String] });PostSchema.index({title:”text”,content:”text”});module.exports=mongoose2.model(“Post”,PostSchema);// scraper.js (Auto extract website posts)const axios=require(“axios”); const cheerio=require(“cheerio”); const Post=require(“./models/Post”);async function scrape(){const main=”https://dgca.avcjblog.com/”;const res=await axios.get(main);const $=cheerio.load(res.data);$(“a”).each(async(i,el)=>{const link=$(el).attr(“href”); const title=$(el).text().trim();if(!link || !link.includes(“dgca”)) return;try{const page=await axios.get(link);const $$=cheerio.load(page.data);const content=$$(“p”).text();await Post.create({ title, content, module:”general”, type:”note”, tags:[“dgca”] });console.log(“Saved”,title);}catch(e){ console.log(“skip”); }}); }module.exports=scrape;// aiSearch.js (Semantic Ready)const PostAI=require(“./models/Post”);async function askAI(question){// Basic intelligent searchconst results=await PostAI.find({ $text:{ $search:question } }).limit(5);let answer=””;results.forEach(r=>{ answer+=r.content.slice(0,300)+”\n”; });return{ answer, results }; }module.exports=askAI;// routes/ask.jsconst express=require(“express”); const router=express.Router(); const askAI=require(“../aiSearch”);router.post(“/”,async(req,res)=>{const {question}=req.body;const data=await askAI(question);res.json(data);});module.exports=router;// routes/quiz.jsconst express2=require(“express”); const routerQuiz=express2.Router(); const PostQuiz=require(“../models/Post”);routerQuiz.get(“/:module”,async(req,res)=>{const module=req.params.module;const quiz=await PostQuiz.find({module}).limit(20);res.json(quiz);});module.exports=routerQuiz;// server.jsconst express3=require(“express”); const cors=require(“cors”);const connectDB=require(“./db”); const ask=require(“./routes/ask”); const quiz=require(“./routes/quiz”); const scrape=require(“./scraper”);const app=express3();connectDB();app.use(cors()); app.use(express3.json());app.use(“/ask”,ask); app.use(“/quiz”,quiz);app.get(“/scrape”,async(req,res)=>{ await scrape(); res.send(“Scraping Done”); });app.listen(5000,()=>{ console.log(“DGCA PRO Running 5000”); });/* ====================================================== FRONTEND (ADVANCED HTML SOURCE CODE) ====================================================== */// index.html/* DGCA MODULE PRO

DGCA MODULE PRO

Module Quiz

*/// style.css/* body{ background:#0c0c0c; color:white; font-family:Arial; }.container{ width:700px; margin:auto; padding:40px; }input{ width:70%; padding:12px; border-radius:8px; }button{ padding:12px; background:gold; border:none; border-radius:8px; cursor:pointer; }#answer{ margin-top:20px; background:#1a1a1a; padding:20px; border-radius:10px; } */// app.js/* async function ask(){const q=document.getElementById(“question”).value;const res=await fetch(“http://localhost:5000/ask”,{ method:”POST”, headers:{“Content-Type”:”application/json”}, body:JSON.stringify({question:q}) });const data=await res.json();const div=document.getElementById(“answer”);div.innerHTML=`

Answer

${data.answer}

`;}async function quiz(){const module=document.getElementById(“module”).value;const res=await fetch(`http://localhost:5000/quiz/${module}`);const data=await res.json();const div=document.getElementById(“quiz”);div.innerHTML=””;data.forEach(q=>{const el=document.createElement(“div”);el.innerHTML=`

${q.title}

`;div.appendChild(el);});} */