-
Model ✅
- File:
server/models/SaaS/master/FAQ.js - Schema: question, answer, category, displayOrder, isActive, timestamps
- File:
-
Controller ✅
- File:
server/controllers/SaaS/superAdmin/faq.controller.js - Functions: getPublicFAQs, getAllFAQs, createFAQ, updateFAQ, deleteFAQ, updateFAQs
- File:
-
Routes ✅
- File:
server/routes/SaaS/superAdmin.routes.js(updated) - Added 5 FAQ endpoints with proper authentication
- File:
server/routes/SaaS/public.routes.js(updated) - Added public FAQ endpoint
- File:
-
Frontend API ✅
- File:
clients/src/SaaS/services/adminApi.js(updated) - Fixed endpoint to
/api/super/faqs - Functions: getPublicFAQs(), updatePublicFAQs()
- File:
-
Frontend Components ✅ (Already Existed)
- File:
clients/src/SaaS/pages/superadmin/WebsiteSettings/Faqs/Faqs.jsx - File:
clients/src/SaaS/pages/superadmin/WebsiteSettings/Faqs/FaqEditor.jsx - File:
clients/src/SaaS/pages/superadmin/WebsiteSettings/Faqs/FaqDesign.jsx - File:
clients/src/SaaS/pages/superadmin/SuperAdminDashboard.jsx(imported Faqs)
- File:
- User clicks "Website" → "FAQs" in sidebar
- FaqEditor loads FAQs via
getPublicFAQs()from/api/public/faqs - User can Add/Edit/Delete FAQs
- On save, calls
updatePublicFAQs(array)to PUT/api/super/faqs - Socket.io broadcasts update to all connected clients
- FaqDesign shows live preview
- Request arrives at
/api/super/faqsor/api/public/faqs - Controller method executes (authenticated for admin routes)
- FAQ model performs database operation
- Emits Socket.io update to clients
- Response returned to frontend
-
Frontend:
cd clients npm run dev -
Backend:
cd server npm start -
Access:
- Go to Super Admin Dashboard → Website → FAQs
- Or access API directly at
http://localhost:5000/api/public/faqs
- Database: Master DB (SaaS)
- Collection: FAQ
- Documents: Stored as individual documents (not as array)
- Auto-created: 3 default FAQs on first access
- Public endpoint:
/api/public/faqs- NO authentication needed - Admin endpoints:
/api/super/faqs*- Requires valid admin token
If FAQs don't load:
- Verify server is running (
npm startin server directory) - Check browser console for API errors
- Verify frontend API endpoint matches:
/api/super/faqs - Check database connectivity to Master DB
- Look for Socket.io connection errors
System creates 3 FAQs automatically:
- "What is Inventory Management System?"
- "How do I get started?"
- "What are the system requirements?"