Scrollwell 2.0 — Platform Wireframes (Complete Edition)
Version: 2.1 — Full coverage audit + gap fill
Routes covered: 169 (all from sitemap) + 22 newly documented sub-routes
Last updated: 2026-05-27
Status: Canonical reference. Supersedes v2.0 partial draft.
⚠ GAP ANALYSIS — What Was Missing in v2.0#
| Category | Missing Items | Now in Section |
|---|---|---|
| Public pages | Courses list/detail, Lesson player, Jobs, Hackathons, Blog/News, Research, Mentorship, AI Tools, Leaderboard, Membership, Portfolio, Onboarding, About/Contact/FAQ/Press, B2B pages | §2 |
| Account | Settings + 2FA, Membership upgrade flow, Certificates, Payments, Invoices | §3 |
| Admin | Colleges, MoU, Approvals, Content CRUD, RSS Scraper, Categories, Jobs, Payments ledger, Contact inbox, Notification broadcast, Reputation, Exports, Audit log, Master settings | §4 |
| SPOC | All 10 event sub-tabs (Mandate, Questions, Marks, Attendance, Feedback, Resources, Certs), Course authoring, Participants list | §5 |
| Faculty | Research CRUD + peer review, Hackathons, Jobs, Mentorship, AI Tools | §6 |
| Participant | Institute details form, Workshops, Applied, Attendance, Marks, Feedback | §8 |
| Writer | FAQ editor, Media library, SEO audit | §9 |
| Event Manager | Sessions, Cross-event Attendance, Feedback, Resources, Reports | §10 |
| System-wide | Toast/notification patterns, Form validation rules, Loading/skeleton states, Error pages (404/403/500), Mobile layouts, Global search, 2FA flow, Payment flow, Role-guard middleware, Accessibility annotations | §15–§20 |
0. Site map — by role (complete)#
SCROLLWELL 2.0 (191 routes after gap fill)
│
├── 🌍 PUBLIC (no auth)
│ ├── / Home
│ ├── /about About
│ ├── /founder Founder story
│ ├── /team Team
│ ├── /careers Careers
│ ├── /contact Contact form
│ ├── /faq FAQ
│ ├── /press Press kit
│ ├── /accessibility WCAG statement
│ ├── /privacy /terms /refunds Legal trio
│ │
│ ├── /events Events list
│ ├── /events/[code] Event detail
│ ├── /events/[code]/feedback Post-event feedback
│ │
│ ├── /courses Courses list
│ ├── /courses/[slug] Course detail + curriculum
│ ├── /courses/[slug]/lessons/[lessonId] Lesson player (auth-gated)
│ │
│ ├── /jobs Jobs board
│ ├── /jobs/[id] Job detail + apply
│ │
│ ├── /conferences Conferences list
│ ├── /conferences/[slug] Conference detail
│ │
│ ├── /hackathons Hackathons list
│ ├── /hackathons/[slug] Hackathon detail
│ │
│ ├── /blogs Blog index
│ ├── /blogs/[slug] Blog post
│ ├── /news News index
│ ├── /news/[slug] News post
│ │
│ ├── /research Research list + methodology
│ ├── /mentorship Mentorship landing + directory
│ ├── /ai-tools AI tool catalogue
│ ├── /leaderboard Top contributors
│ ├── /newsletter Email capture
│ │
│ ├── /for-institutions B2B landing (generic)
│ ├── /higher-ed B2B — universities
│ ├── /k12 B2B — schools
│ ├── /institutions B2B — institutions hub
│ ├── /membership Pricing tiers
│ │
│ ├── /u/[handle] Public profile
│ ├── /portfolio/[userId] Portfolio
│ ├── /verify/[certNumber] Certificate verification
│ └── /onboarding First-run wizard
│
├── 🔐 AUTH
│ ├── /auth/login
│ ├── /auth/register
│ ├── /auth/verify-otp
│ ├── /auth/forgot-password
│ ├── /auth/reset-password
│ ├── /auth/2fa-setup ← NEW
│ ├── /auth/2fa-verify ← NEW
│ ├── /auth/error
│ └── /auth/forbidden
│
├── 👤 ACCOUNT
│ ├── /account
│ ├── /account/profile
│ ├── /account/profile/edit
│ ├── /account/settings ← fully detailed
│ ├── /account/settings/2fa ← NEW
│ ├── /account/membership ← fully detailed
│ ├── /account/certificates ← fully detailed
│ ├── /account/payments ← fully detailed
│ ├── /account/invoices
│ ├── /account/invoices/[id]
│ ├── /account/delete
│ └── /dashboard
│
├── 🛡️ ADMIN
│ ├── /admin
│ ├── /admin/users
│ ├── /admin/duplicates
│ ├── /admin/colleges ← fully detailed
│ ├── /admin/colleges/new ← fully detailed
│ ├── /admin/mou ← fully detailed
│ ├── /admin/approvals ← fully detailed
│ ├── /admin/content ← fully detailed
│ ├── /admin/content/new
│ ├── /admin/announcement
│ ├── /admin/rss-scraper ← fully detailed
│ ├── /admin/categories ← fully detailed
│ ├── /admin/events
│ ├── /admin/enrollments ← fully detailed
│ ├── /admin/hackathons
│ ├── /admin/hackathons/new
│ ├── /admin/research ← fully detailed
│ ├── /admin/jobs
│ ├── /admin/jobs/new
│ ├── /admin/jobs/[id]
│ ├── /admin/certificates
│ ├── /admin/certificates/registry
│ ├── /admin/certificates/import
│ ├── /admin/payments ← fully detailed
│ ├── /admin/contact ← fully detailed
│ ├── /admin/notifications ← fully detailed
│ ├── /admin/reputation ← fully detailed
│ ├── /admin/exports ← fully detailed
│ ├── /admin/deletions
│ ├── /admin/audit ← fully detailed
│ └── /admin/master ← fully detailed
│
├── 🎓 SPOC
│ ├── /spoc
│ ├── /spoc/application
│ ├── /spoc/events
│ ├── /spoc/events/new
│ ├── /spoc/events/[id]
│ ├── /spoc/events/[id]/mandate ← fully detailed
│ ├── /spoc/events/[id]/schedule ← fully detailed
│ ├── /spoc/events/[id]/resources ← fully detailed
│ ├── /spoc/events/[id]/attendance ← fully detailed
│ ├── /spoc/events/[id]/questions ← fully detailed
│ ├── /spoc/events/[id]/marks ← fully detailed
│ ├── /spoc/events/[id]/feedback ← fully detailed
│ ├── /spoc/events/[id]/participants ← fully detailed
│ ├── /spoc/events/[id]/certificates ← fully detailed
│ ├── /spoc/courses
│ ├── /spoc/courses/new
│ ├── /spoc/courses/[id]/curriculum ← fully detailed
│ ├── /spoc/participants
│ ├── /spoc/participants/applied ← fully detailed
│ ├── /spoc/participants/approved ← fully detailed
│ ├── /spoc/resource-persons ← fully detailed
│ ├── /spoc/documents ← fully detailed
│ ├── /spoc/mou ← fully detailed
│ └── /spoc/certificates
│
├── 👨🏫 FACULTY
│ ├── /faculty
│ ├── /faculty/events
│ ├── /faculty/courses
│ ├── /faculty/certificates
│ ├── /faculty/research ← fully detailed
│ ├── /faculty/research/new
│ ├── /faculty/research/reviews/[id]
│ ├── /faculty/hackathons ← fully detailed
│ ├── /faculty/jobs ← fully detailed
│ ├── /faculty/mentorship ← fully detailed
│ └── /faculty/ai-tools ← fully detailed
│
├── 👨🎓 STUDENT
│ ├── /student
│ ├── /student/events
│ └── /student/certificates
│
├── 🧑💼 PARTICIPANT
│ ├── /participant
│ ├── /participant/profile
│ ├── /participant/general-details
│ ├── /participant/institute-details ← fully detailed
│ ├── /participant/workshops ← fully detailed
│ ├── /participant/applied ← fully detailed
│ ├── /participant/attendance ← fully detailed
│ ├── /participant/assessment
│ ├── /participant/assessment/[id]/guidelines
│ ├── /participant/assessment/[id]/take
│ ├── /participant/assessment/[id]/review ← fully detailed
│ ├── /participant/marks ← fully detailed
│ ├── /participant/feedback ← fully detailed
│ └── /participant/certificates
│
├── ✍️ BLOG_WRITER
│ ├── /writer
│ ├── /writer/posts
│ ├── /writer/posts/new
│ ├── /writer/posts/[id]/edit
│ ├── /writer/drafts
│ ├── /writer/published
│ ├── /writer/faq ← fully detailed
│ ├── /writer/faq/new
│ ├── /writer/faq/[id]/edit
│ ├── /writer/media ← fully detailed
│ └── /writer/seo-audit ← fully detailed
│
└── 🗓️ EVENT_MANAGER
├── /events-mgr
├── /events-mgr/events
├── /events-mgr/events/new
├── /events-mgr/events/[id]/edit
├── /events-mgr/events/[id]/sessions ← fully detailed
├── /events-mgr/events/[id]/attendance ← fully detailed
├── /events-mgr/events/[id]/feedback ← fully detailed
├── /events-mgr/events/[id]/registrations
├── /events-mgr/events/[id]/resources ← fully detailed
├── /events-mgr/attendance ← fully detailed (cross-event)
├── /events-mgr/sessions
├── /events-mgr/registrations
├── /events-mgr/feedback
├── /events-mgr/resources
└── /events-mgr/reports ← fully detailed
1. Shared layout primitives#
1a. PublicShell#
┌─────────────────────────────────────────────────────────────────────────┐
│ [Scrollwell logo] Explore ▾ Institutions Pricing Verify 🔍 │ ← PublicHeader
│ [Sign in] │ (sticky, 64px, z-50)
├─────────────────────────────────────────────────────────────────────────┤
│ 📣 New cohort starts June 10 · AI in Pedagogy Enrol now → │ ← AnnouncementBanner
├─────────────────────────────────────────────────────────────────────────┤ (admin-editable, dismissible per-session)
│ │
│ PAGE CONTENT │
│ │
├─────────────────────────────────────────────────────────────────────────┤
│ Product Resources Company Legal │
│ Events Blog About Privacy │ ← PublicFooter
│ Courses Research Team Terms │ (4-col, dark bg-gray-900)
│ Jobs News Careers Refunds │
│ Hackathons AI Tools Contact Accessibility │
│ │
│ © 2026 Scrollwell EduTech LLP · [LinkedIn] [Twitter] [YouTube] │
│ Built with ❤ for India's educators · CIN: U80301TN2022LLP… │
└─────────────────────────────────────────────────────────────────────────┘
Explore mega-nav (8-tile dropdown, opens on hover/focus):
┌─────────────────────────────────────────────────────────┐
│ 🎓 Events 📚 Courses │
│ FDPs · Webinars Self-paced + cohort │
│ │
│ 🔬 Research 🛠️ AI Tools │
│ Papers · Methods Curated catalogue │
│ │
│ 💼 Jobs 🏆 Hackathons │
│ Faculty + edu Compete · Win │
│ │
│ 📰 News & Blogs 🎤 Conferences │
│ Insights · Trends Submit · Present │
└─────────────────────────────────────────────────────────┘
PublicHeader — mobile (< 768px):
┌────────────────────────────────────────┐
│ [logo] 🔍 [☰] │ ← hamburger
└────────────────────────────────────────┘
Drawer (slides in from right, full-height):
┌────────────────────────────────────────┐
│ [✕] │
│ │
│ Explore ▾ │
│ Events Courses Jobs Hackathons │
│ Research AI Tools Conferences │
│ News & Blogs │
│ Institutions │
│ Pricing │
│ Verify │
│ ────────────────── │
│ [Sign in] [Register] │
└────────────────────────────────────────┘
1b. DashboardShell#
┌────────────┬──────────────────────────────────────────────────────────┐
│ [logo] │ [🔍 Search platform…] [🔔 3] [Avatar ▾] │ ← Topbar (64px)
│ ├──────────────────────────────────────────────────────────┤
│ ──────────│ │
│ INDIRA │ │
│ INSTITUTE │ PAGE CONTENT │
│ ──────────│ (max-w-7xl mx-auto px-6 py-8) │
│ │ │
│ Overview │ │
│ Users │ │
│ Colleges │ │
│ Events │ │
│ Courses │ │
│ Certs │ │
│ Payments │ │
│ Audit │ │
│ Settings │ │
│ ──────────│ │
│ Roshan K │ │
│ Super Admin│ │
│ [Sign out] │ │
└────────────┴──────────────────────────────────────────────────────────┘
256px flex-1
Topbar notification dropdown (🔔):
┌──────────────────────────────────────────────┐
│ Notifications [Mark all read]│
├──────────────────────────────────────────────┤
│ 🏅 Cert SW-2026-… is ready to download │
│ 2 minutes ago │
├──────────────────────────────────────────────┤
│ 📋 Your FDP application is under review │
│ 1 hour ago │
├──────────────────────────────────────────────┤
│ 💬 You have a new message from Admin │
│ Yesterday │
├──────────────────────────────────────────────┤
│ [View all notifications] │
└──────────────────────────────────────────────┘
Topbar avatar dropdown:
┌────────────────────────────────┐
│ [avatar] Priya Menon │
│ FACULTY · IIT Bombay │
├────────────────────────────────┤
│ View profile │
│ Account settings │
│ My certificates │
│ Membership │
├────────────────────────────────┤
│ Sign out │
└────────────────────────────────┘
DashboardShell — mobile (< 768px):
┌─────────────────────────────────────────┐
│ [☰] [logo] [🔔] [Avatar] │ ← sticky topbar
├─────────────────────────────────────────┤
│ PAGE CONTENT │
│ (full width, px-4) │
└─────────────────────────────────────────┘
Bottom nav (fixed, z-50):
┌──────────────────────────────────────┐
│ [🏠] [📅] [🏅] [👤] │
│ Home Events Certs Profile │
└──────────────────────────────────────┘
Global search (⌘K / focus on search bar):
┌──────────────────────────────────────────────────────────┐
│ 🔍 Search platform… [Esc] │
├──────────────────────────────────────────────────────────┤
│ RECENT │
│ 📅 AI in Pedagogy FDP · event │
│ 👤 Priya Menon · user │
├──────────────────────────────────────────────────────────┤
│ JUMP TO │
│ 📚 Courses │
│ 👥 Users (admin) │
│ 🏅 My certificates │
├──────────────────────────────────────────────────────────┤
│ Type to search events, users, courses, certificates… │
└──────────────────────────────────────────────────────────┘
1c. AuthShell#
┌───────────────────────────────────────────────────────────────────┐
│ [logo] │
│ │
│ ┌──────────────────────────────────┐ │
│ │ │ │
│ │ Welcome back. │ │
│ │ Sign in to your account. │ │
│ │ │ │
│ │ [G] Continue with Google │ │
│ │ │ │
│ │ ──── Or with email ──── │ │
│ │ │ │
│ │ Email [____________] │ │
│ │ Pass [_______] [👁] Forgot?│ │
│ │ │ │
│ │ [ Sign in ] │ │
│ │ │ │
│ │ Don't have an account? Sign up │ │
│ └──────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────────┘
Auth — 2FA verify /auth/2fa-verify:
┌──────────────────────────────────┐
│ Two-factor authentication │
│ │
│ Enter the 6-digit code from │
│ your authenticator app. │
│ │
│ [_ _ _ _ _ _] │
│ │
│ [ Verify code ] │
│ │
│ Lost access? Use backup code │
└──────────────────────────────────┘
2. Public marketing pages#
2a. Home — /#
┌─── PublicHeader ───────────────────────────────────────────────────┐
├─── AnnouncementBanner ─────────────────────────────────────────────┤
├─── HERO ───────────────────────────────────────────────────────────┤
│ pretitle: A platform for India's educators (badge) │
│ │
│ India's educator empowerment platform — │
│ built for faculty, by faculty. │
│ │
│ [Browse cohorts] [For institutions] │
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Educators │ │Institutions│ │ Countries │ │ Certs │ │
│ │ 61K+ │ │ 5,200+ │ │ 17 │ │ 42K+ │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
├─── LIVE NOW strip (WebSocket auto-refresh, 10s) ───────────────────┤
│ 🔴 LIVE · AI in Pedagogy · Dr. Priya Menon · 142 attending → │
├─── TRUSTED LEADERS (photo grid, 8 portraits + names/designations) ─┤
├─── COURSE CAROUSEL (3 cards × 2 rows, auto-play off) ──────────────┤
├─── LEARNING PATH ridge (visual roadmap SVG, 6 steps) ──────────────┤
├─── CERTIFICATE SHOWCASE (sample cert PDF embed + verify button) ───┤
├─── TESTIMONIALS (3 cards with real photos, star ratings) ──────────┤
├─── GOOGLE REVIEWS strip (aggregated 4.9★, powered widget) ─────────┤
├─── CTA: "Ready to host a cohort?" │
│ Host for your institution → [Request demo] │
├─── PWA install footer ─────────────────────────────────────────────┤
│ Get the app · [Android APK] · [iOS App Store] · [Web PWA] │
└─── PublicFooter ───────────────────────────────────────────────────┘
2b. Onboarding wizard — /onboarding#
┌── Stepper (5 steps) ────────────────────────────────────────────────┐
│ [1 Welcome] ─ [2 Role] ─ [3 Institute] ─ [4 Interests] ─ [5 Done] │
├── Step 1 ───────────────────────────────────────────────────────────┤
│ 🎉 Welcome to Scrollwell! │
│ │
│ Let's set up your profile in under 2 minutes. │
│ │
│ [Get started →] [Skip for now] │
├── Step 2: Role ─────────────────────────────────────────────────────┤
│ I am a… │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 👨🏫 │ │ 👨🎓 │ │ 🧑💼 │ │ 🏢 │ │
│ │ Faculty │ │ Student │ │ Participant│ │ Admin │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
├── Step 3: Institute ────────────────────────────────────────────────┤
│ Your institution │
│ [Search institution… 🔍] │
│ ┌─────────────────────────────────┐ │
│ │ IIT Bombay │ │
│ │ Anna University │ │
│ │ BITS Pilani │ │
│ └─────────────────────────────────┘ │
│ Not listed? [Add your institution] │
├── Step 4: Interests ────────────────────────────────────────────────┤
│ Topics you care about (pick 3+) │
│ [AI in Education ✓] [NEP 2020] [Research Methods ✓] │
│ [EdTech Tools ✓] [Pedagogy] [STEM] [Assessment] [Mentorship] │
├── Step 5: Done ─────────────────────────────────────────────────────┤
│ 🏁 You're all set! │
│ │
│ Your personalized feed is ready. │
│ ┌─────────────────────────────────┐ │
│ │ Suggested for you │ │
│ │ • AI in Pedagogy FDP · Aug 14 │ │
│ │ • Research Methods course │ │
│ └─────────────────────────────────┘ │
│ [Go to my dashboard →] │
└─────────────────────────────────────────────────────────────────────┘
2c. Events list — /events#
┌─── Hero: gradient banner ───────────────────────────────────────────┐
│ Find your next FDP │
│ [Search bar…] [State ▾] [Mode ▾] [Free/Paid ▾] [Date ▾] │
└─────────────────────────────────────────────────────────────────────┘
┌─ Sidebar filter ─┐ ┌─ Cards grid (3 × N) ───────────────────────┐
│ Brand │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ ☑ SCROLLWELL │ │ │ [img] │ │ [img] │ │ [img] │ │
│ ☐ JAPTURE │ │ │ AI Ped… │ │ Quality… │ │ NEP Ref… │ │
│ Mode │ │ │ Aug 14–16│ │ Sep 22 │ │ Oct 5 │ │
│ ☑ ONLINE │ │ │ Hybrid │ │ Online │ │ Offline │ │
│ ☑ HYBRID │ │ │ ₹2,500 │ │ Free │ │ ₹1,500 │ │
│ ☑ OFFLINE │ │ │[Register]│ │[Register]│ │[Register]│ │
│ Date range │ │ └──────────┘ └──────────┘ └──────────┘ │
│ [From__] [To__] │ │ │
│ Availability │ │ … N more rows … │
│ ☐ Only open │ └─────────────────────────────────────────────┘
│ Duration │ [← Prev] 1 2 3 … 12 [Next →]
│ ☐ 1 day │
│ ☑ 3 days │
│ ☐ 5 days │ Empty state (if filters return 0 results):
│ │ ┌─────────────────────────────────────────┐
│ [Reset all] │ │ 🔍 No events match your filters. │
└──────────────────┘ │ [Clear filters] │
└─────────────────────────────────────────┘
2d. Event detail — /events/[code]#
┌── Hero card (image + meta) ─────────────────────────────────────────┐
│ [Cover image 16:9] ┌───────────────────────┐ │
│ pretitle: SCROLLWELL · FDP │ ₹2,500 / Free │ │
│ Generative AI in Higher Ed │ Aug 14–16 · Hybrid │ │
│ Dr. Priya Menon · IIT Bombay │ 142 / 200 spots │ │
│ 3 days · Hybrid · Hindi+English │ ████████░░ 71% │ │
│ ⭐ 4.8 (52 reviews) │ [ Register now ] │ │
│ [🔖 Save] [📤 Share] │ [Add to calendar] │ │
│ │ Already registered? │ │
│ │ [View my registration]│ │
│ └───────────────────────┘ │
├── Tabs: About · Sessions · Speakers · FAQ · Reviews ────────────────┤
│ │
│ ABOUT ───────── │
│ Long-form description (rich text, sanitised HTML) │
│ Outcomes, audience, prerequisites, what to bring │
│ │
│ SESSIONS ───── │
│ Day 1 — Aug 14 │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 09:00 Registration & welcome tea │ │
│ │ 10:00 Module 1 · Intro to GenAI — Dr. Priya Menon │ │
│ │ 12:00 Lunch break │ │
│ │ 13:00 Hands-on prompt engineering lab │ │
│ │ 17:00 Wrap-up + Q&A │ │
│ └────────────────────────────────────────────────────────────┘ │
│ Day 2 — Aug 15 … │
│ │
│ SPEAKERS ───── │
│ [avatar] Dr. Priya Menon — Programme Lead — IIT Bombay │
│ [avatar] Prof. Rohit Verma — Co-instructor │
│ │
│ FAQ ────────── │
│ ▸ Is a certificate provided? Yes — on completion. │
│ ▸ What is the refund policy? │
│ │
│ REVIEWS ────── │
│ ⭐⭐⭐⭐⭐ "Excellent content, very practical" — Roshan, IIIT │
│ ⭐⭐⭐⭐☆ "Would recommend to all faculty" — Anita, NIT │
│ │
├── "More like this" carousel (3 cards) ──────────────────────────────┤
└─────────────────────────────────────────────────────────────────────┘
2e. Event feedback — /events/[code]/feedback#
┌── Header ───────────────────────────────────────────────────────────┐
│ Feedback — AI in Pedagogy FDP │
│ Thank you for attending. This takes 2 minutes. │
├── Form ─────────────────────────────────────────────────────────────┤
│ │
│ Overall rating │
│ ⭐ ⭐ ⭐ ⭐ ⭐ (click to rate) │
│ │
│ Content quality [⭐⭐⭐⭐⭐] │
│ Delivery quality [⭐⭐⭐⭐☆] │
│ Organisation [⭐⭐⭐⭐⭐] │
│ Venue / Platform [⭐⭐⭐☆☆] │
│ │
│ What did you like most? │
│ [____________________________________________] │
│ │
│ What could be improved? │
│ [____________________________________________] │
│ │
│ Would you recommend this FDP to a colleague? │
│ ⦿ Definitely ⦾ Maybe ⦾ No │
│ │
│ [Submit feedback] │
│ │
│ Success state: │
│ ✅ Thank you! Your feedback has been submitted. │
│ [← Back to event] │
└─────────────────────────────────────────────────────────────────────┘
2f. Courses list — /courses#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Advance your expertise │
│ Self-paced and cohort courses for educators │
│ [Search courses…] [Category ▾] [Level ▾] [Duration ▾] │
├── Category pill strip ─────────────────────────────────────────────┤
│ [All] [AI & EdTech] [Research] [Pedagogy] [NEP 2020] [Leadership] │
├── Cards grid (3 × N) ───────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ [thumb] │ │ [thumb] │ │ [thumb] │ │
│ │ AI Found.│ │ Research │ │ NEP Impl │ │
│ │ 12 lessons│ │ Methods │ │ ───── │ │
│ │ ⭐4.7 (89)│ │ 8 lessons│ │ 6 hrs │ │
│ │ Self-paced│ │ ₹1,999 │ │ Free │ │
│ │ [Enrol] │ │ [Enrol] │ │ [Enrol] │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2g. Course detail — /courses/[slug]#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ [Course thumbnail / promo video] ┌────────────────────────┐ │
│ │ ₹1,999 or Free │ │
│ AI Fundamentals for Educators │ 12 lessons · 8 hrs │ │
│ Understand how large language models │ Certificate included │ │
│ work and apply them in the classroom. │ │ │
│ ⭐ 4.7 (89 ratings) · 1.2k enrolled │ [ Enrol now ] │ │
│ Last updated: Apr 2026 │ [Preview free lesson] │ │
│ └────────────────────────┘ │
├── Tabs: Overview · Curriculum · Instructor · Reviews ───────────────┤
│ │
│ OVERVIEW │
│ What you'll learn │
│ ✓ Understand LLMs and transformer architecture │
│ ✓ Design effective prompts for classroom tasks │
│ ✓ Critically evaluate AI-generated content │
│ │
│ Prerequisites: Basic computer skills, internet browser │
│ Audience: Faculty, trainers, education administrators │
│ │
│ CURRICULUM │
│ Module 1 — What is AI? (3 lessons, 1h 20m) │
│ ▸ 1.1 A brief history of AI 12:00 [Preview] │
│ 🔒 1.2 How neural networks learn 18:00 │
│ 🔒 1.3 Quiz: Check your understanding │
│ Module 2 — Generative AI (4 lessons, 2h 10m) │
│ 🔒 2.1 … │
│ │
│ INSTRUCTOR │
│ [avatar] Dr. Priya Menon · IIT Bombay · 4.9★ instructor rating │
│ │
│ REVIEWS │
│ ⭐⭐⭐⭐⭐ "Changed how I think about AI tools" — Anita, NIT │
└─────────────────────────────────────────────────────────────────────┘
2h. Lesson player — /courses/[slug]/lessons/[lessonId] (auth-gated)#
┌── Two-pane split ───────────────────────────────────────────────────┐
│ LEFT: Video panel (16:9, 60% width) │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ [VIDEO PLAYER] │ │
│ │ │ │
│ │ ▶ ─────────────────────────────────── 12:34 / 18:00 [⛶] │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ Tabs: Notes · Transcript · Resources · Discussion │
│ │
│ RIGHT: Curriculum sidebar (40% width) │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ Module 1 — What is AI? │ │
│ │ ✓ 1.1 A brief history of AI ✅ │ │
│ │ ▶ 1.2 How neural networks learn ▶ playing │ │
│ │ 1.3 Quiz │ │
│ │ Module 2 — Generative AI │ │
│ │ 2.1 … │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │
│ [← Previous lesson] [Mark complete · Next lesson →] │
└─────────────────────────────────────────────────────────────────────┘
2i. Jobs board — /jobs#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Academic jobs & opportunities │
│ [Search jobs…] [Category ▾] [State ▾] [Type ▾] │
├─── sidebar ──────┬──── Cards ───────────────────────────────────────┤
│ Category │ ┌──────────────────────────────────────────┐ │
│ ☑ Faculty │ │ [logo] Assistant Professor — CS Dept │ │
│ ☑ Admin │ │ IIT Bombay · Mumbai · Full-time │ │
│ ☐ Research │ │ Posted 2d ago · Apply by: 15 Jun 2026 │ │
│ Type │ │ [View details] [Save 🔖] │ │
│ ☑ Full-time │ └──────────────────────────────────────────┘ │
│ ☐ Contract │ ┌──────────────────────────────────────────┐ │
│ ☐ Fellowship │ │ … │ │
│ State │ └──────────────────────────────────────────┘ │
│ [Maharashtra ▾] │ │
│ [Reset] │ [← Prev] 1 2 3 [Next →] │
└──────────────────┴──────────────────────────────────────────────────┘
2j. Job detail — /jobs/[id]#
┌── Header ───────────────────────────────────────────────────────────┐
│ [logo] Assistant Professor — Computer Science │
│ IIT Bombay · Mumbai · Full-time · Posted 2d ago │
│ [Apply now] [Save 🔖] [Share 📤] │
├── Two-column ───────────────────────────────────────────────────────┤
│ Job description (left 65%) Quick facts (right 35%) │
│ ┌──────────────────────┐ │
│ About the role │ Department: CS │ │
│ We are hiring for… │ Level: Assistant Prof│ │
│ │ Pay scale: 7th CPC │ │
│ Responsibilities │ Vacancies: 2 │ │
│ • Conduct research in ML/AI area │ Apply by: 15 Jun '26 │ │
│ • Teach UG/PG courses ├──────────────────────┤ │
│ • Mentoring PhD students │ About IIT Bombay │ │
│ │ 3,200 faculty… │ │
│ Qualifications └──────────────────────┘ │
│ • PhD from reputed institute Apply section: │
│ • Publications in top venues ┌──────────────────────┐ │
│ │ Full name [_______] │ │
│ Application process │ Email [_____________]│ │
│ 1. Upload CV │ Resume [📤 Upload] │ │
│ 2. Statement of purpose │ Cover [📤 Upload] │ │
│ 3. List of publications │ [Submit application] │ │
│ └──────────────────────┘ │
2k. Hackathons list — /hackathons#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Compete · Build · Win │
│ Hackathons for India's education community │
│ [Search…] [Status ▾] [Mode ▾] [Prize ▾] │
├─── Cards grid ─────────────────────────────────────────────────────┤
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ 🏆 EduHack '26 │ │ AI Challenge │ │ NEP Innovate │ │
│ │ Registr. open │ │ Ongoing │ │ Upcoming │ │
│ │ Prize: ₹1L │ │ Prize: ₹50K │ │ Prize: ₹75K │ │
│ │ Teams: 240 │ │ Ends: 2 Jun │ │ Opens: 1 Jul │ │
│ │ [Register] │ │ [View] │ │ [Notify me] │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2l. Hackathon detail — /hackathons/[slug]#
┌── Hero banner ──────────────────────────────────────────────────────┐
│ [Cover image] ┌──────────────────────┐ │
│ EduHack 2026 │ Status: Open │ │
│ Build EdTech solutions for NEP 2020 │ Prize pool: ₹1,00,000│ │
│ Organized by Scrollwell │ Teams: 240 registered│ │
│ │ Deadline: 30 Jun '26 │ │
│ │ [Register team] │ │
│ └──────────────────────┘ │
├── Tabs: Overview · Tracks · Timeline · Prizes · Rules · FAQ ────────┤
│ │
│ OVERVIEW │
│ What is EduHack? Build solutions that transform education… │
│ │
│ TRACKS │
│ 1. AI-powered assessment tools │
│ 2. Accessibility in e-learning │
│ 3. Open-source curriculum tools │
│ │
│ TIMELINE │
│ 1 Jun Registration opens │
│ 15 Jun Problem statements released │
│ 30 Jun Submission deadline │
│ 10 Jul Winners announced │
│ │
│ PRIZES │
│ 🥇 1st place: ₹50,000 + mentorship package │
│ 🥈 2nd place: ₹30,000 │
│ 🥉 3rd place: ₹20,000 │
└─────────────────────────────────────────────────────────────────────┘
2m. Blog index — /blogs#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Insights for educators │
│ [Search…] [Category ▾] [Author ▾] │
├── Featured post (wide card) ───────────────────────────────────────┤
│ [thumb] "The AI Classroom: Hype vs. Reality" │
│ Dr. Priya Menon · May 27 · 8 min read │
├── Category pill strip ─────────────────────────────────────────────┤
│ [All] [AI & EdTech ✓] [Pedagogy] [Research] [NEP 2020] [Career] │
├── Grid (2 wide + right sidebar) ────────────────────────────────────┤
│ ┌───────────────────┐ ┌───────────────────┐ ┌─── Sidebar ───┐ │
│ │ [thumb] Title │ │ [thumb] Title │ │ Popular tags │ │
│ │ Author · Date │ │ Author · Date │ │ [AI] [NEP]… │ │
│ │ Excerpt… │ │ Excerpt… │ │ │ │
│ │ 5 min read │ │ 3 min read │ │ Top authors │ │
│ └───────────────────┘ └───────────────────┘ │ [avatar] … │ │
│ … more rows … └───────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2n. Blog post — /blogs/[slug]#
┌── Breadcrumb: Home > Blog > Category > Post title ─────────────────┐
├── Article (max-w-2xl centered) ────────────────────────────────────┤
│ [Hero image, full-width] │
│ Category badge: AI & EdTech │
│ # The AI Classroom: Hype vs. Reality │
│ Dr. Priya Menon · May 27, 2026 · 8 min read │
│ [👍 Helpful?] [📤 Share] [🔖 Save] │
│ │
│ Body content (rich text, headings, lists, code blocks)… │
│ │
│ Tags: [AI] [Pedagogy] [NEP 2020] │
│ │
│ ── Author card ── │
│ [avatar] Dr. Priya Menon │
│ Professor, IIT Bombay · 24 posts │
│ [Follow] │
│ │
├── Related posts (3 cards) ─────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Title │ │ Title │ │ Title │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2o. Research — /research#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Research & Methodology │
│ Peer-reviewed papers, methodology guides, and academic resources │
│ [Search papers…] [Year ▾] [Domain ▾] [Type ▾] │
├── Stats strip ──────────────────────────────────────────────────────┤
│ Papers: 480 Authors: 1,200 Citations: 8,400 Downloads: 42K │
├── Featured paper ───────────────────────────────────────────────────┤
│ 📄 "LLM Adoption in Indian Higher Education: A Survey" │
│ Dr. Priya Menon et al. · May 2026 · ⭐ 4.9 · [Download PDF] │
├── List (with sidebar filters) ─────────────────────────────────────┤
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ 📄 Title · Authors · Year · Domain │ │
│ │ Abstract excerpt (2 lines)… [View][↓] │ │
│ └────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2p. Mentorship landing — /mentorship#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Find a mentor or become one │
│ One-on-one academic guidance for faculty growth │
│ [Find a mentor] [Become a mentor] │
├── How it works ─────────────────────────────────────────────────────┤
│ 1. Browse mentors 2. Request session 3. Connect & grow │
├── Mentor directory ────────────────────────────────────────────────┤
│ [Search mentors…] [Domain ▾] [Availability ▾] │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ [avatar] │ │ [avatar] │ │ [avatar] │ │
│ │ Dr. Priya│ │ Prof. Roh│ │ Dr. Anil │ │
│ │ AI in Ed │ │ Research │ │ Leadership│ │
│ │ ⭐4.9 (12)│ │ ⭐4.8 (8) │ │ ⭐5.0 (3) │ │
│ │[Request] │ │[Request] │ │[Request] │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2q. AI Tools catalogue — /ai-tools#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ AI Tools for Educators │
│ Curated, reviewed tools for teaching, research, and admin │
│ [Search tools…] [Category ▾] [Free/Paid ▾] [Rating ▾] │
├── Featured tools (3 hero cards) ───────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 🤖 Tool A│ │ 📊 Tool B│ │ ✍️ Tool C│ │
│ │ Category │ │ Category │ │ Category │ │
│ │ ⭐4.8 │ │ ⭐4.7 │ │ ⭐4.9 │ │
│ │ Free │ │ Freemium │ │ Paid │ │
│ │[Visit] │ │[Visit] │ │[Visit] │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├── Category sections (Assessment · Content · Research · Admin) ──────┤
└─────────────────────────────────────────────────────────────────────┘
2r. Leaderboard — /leaderboard#
┌── Header ───────────────────────────────────────────────────────────┐
│ Top Contributors [This month ▾] [All roles ▾] │
├── Podium (top 3) ───────────────────────────────────────────────────┤
│ 🥈 #2 🥇 #1 🥉 #3 │
│ [avatar] [avatar] [avatar] │
│ Prof. Rohit Dr. Priya Dr. Anil │
│ 1,840 pts 2,210 pts 1,620 pts │
├── Table ────────────────────────────────────────────────────────────┤
│ # Name Institution Points Badge │
│ 1 Dr. Priya Menon IIT Bombay 2,210 🏆 Top Educator │
│ 2 Prof. Rohit IIT Delhi 1,840 ⭐ Rising Star │
│ 3 Dr. Anil Kumar Anna Univ 1,620 🔬 Researcher │
│ … (up to 100) │
│ │
│ Your rank: #84 Points: 410 [View my profile] │
└─────────────────────────────────────────────────────────────────────┘
2s. Membership / Pricing — /membership#
┌── Header ───────────────────────────────────────────────────────────┐
│ Plans for every educator │
│ [Monthly ●] [Annual ○ Save 20%] │
├── Pricing tiers (3 cards) ──────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ FREE │ │ PRO │ │ INSTITUTION│ │
│ │ ₹0 / mo │ │ ₹599 / mo │ │ ₹4,999/mo │ │
│ │ │ │ │ │ per campus │ │
│ │ ✓ Browse │ │ ✓ Host FDPs │ │ ✓ Unlimited │ │
│ │ ✓ Certificates│ │ ✓ Courses │ │ ✓ Analytics │ │
│ │ ✗ Host events│ │ ✓ Leaderboard│ │ ✓ Custom MoU │ │
│ │ ✗ Courses │ │ ✓ API access │ │ ✓ Priority │ │
│ │ │ │ │ │ support │ │
│ │ [Get started]│ │ [Upgrade] │ │ [Contact us] │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
├── Feature comparison table ─────────────────────────────────────────┤
│ Feature Free Pro Institution │
│ Browse events ✓ ✓ ✓ │
│ Host events ✗ ✓ ✓ │
│ Course creation ✗ ✓ ✓ │
│ Seats 1 1 100+ │
│ Analytics ✗ Basic Advanced │
│ API access ✗ ✓ ✓ │
│ SLA support ✗ Email 24h phone │
├── FAQ accordion ────────────────────────────────────────────────────┤
│ ▸ Can I switch plans at any time? │
│ ▸ Is there a free trial for Pro? │
│ ▸ How does institution billing work? │
└─────────────────────────────────────────────────────────────────────┘
2t. Public profile — /u/[handle]#
┌── Cover banner (editable by owner) ────────────────────────────────┐
│ │
│ ╭───╮ │
│ │📸 │ Dr. Priya Menon [Connect] [Msg] │
│ │ │ Professor · Dept of CS, IIT Bombay [•••] │
│ ╰───╯ Mumbai, IN · She/Her · 1.2k connections │
│ 🔗 scrollwell.com/u/priya-menon │
├─────────────────────────────────────────────────────────────────────┤
│ About │
│ 20+ years in engineering education with a focus on AI, │
│ curriculum design and NEP implementation. │
│ │
│ Experience │
│ • Professor — Dept of CS, IIT Bombay Jan 2018 — Present │
│ • Associate Prof — IIT Madras 2010 — 2017 │
│ │
│ Education │
│ • PhD Computer Science — IISc Bangalore 2004 – 2009 │
│ • MTech — IIT Delhi 2002 – 2004 │
│ │
│ Skills Publications │
│ [ML] [Pedagogy] [NEP 2020] 12 papers · 480 citations │
│ [Python] [Research Methods] [View on Google Scholar →] │
│ │
│ Awards │
│ 🏆 Best Faculty Award 2023 — AICTE │
│ 🎖 Outstanding Researcher — IIT Bombay 2021 │
│ │
│ Endorsements (15) │
│ "Priya's courses are exceptional…" — Prof. Rohit, IIT Delhi │
│ │
│ Activity │
│ 📰 Published: "LLM Adoption in…" May 27 · 3 likes │
│ 🎓 Completed: AI Fundamentals May 20 │
└─────────────────────────────────────────────────────────────────────┘
2u. Portfolio — /portfolio/[userId]#
┌── Header ───────────────────────────────────────────────────────────┐
│ [avatar] Dr. Priya Menon — Portfolio │
│ [← Back to profile] │
├── Work samples grid ────────────────────────────────────────────────┤
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 📄 Research paper│ │ 🎬 Video lecture │ │
│ │ Title │ │ Title │ │
│ │ Published: 2026 │ │ 22:00 min │ │
│ │ [View][Download] │ │ [Watch] │ │
│ └──────────────────┘ └──────────────────┘ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ 📊 Presentation │ │ 📝 Course module │ │
│ │ … │ │ … │ │
│ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2v. Certificate verification — /verify/[certNumber]#
┌─────────────────────────────────────────────────────────────────────┐
│ Scrollwell Certificate Verification │
│ Enter a certificate number or scan QR to verify authenticity. │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ [Certificate no. _______________] [Verify] │
│ or scan QR → [📷 Scan QR] │
│ │
│ ── Result states ──────────────────────────────────────────────── │
│ │
│ ✅ AUTHENTIC — Issued │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ SW-2026-FDP001-0042 │ │
│ │ Issued to: Priya Menon │ │
│ │ Programme: AI in Pedagogy FDP │ │
│ │ Institute: IIT Bombay │ │
│ │ Dates: Aug 14 – Aug 16, 2026 (24 hrs) │ │
│ │ Signatory: Dr. R. Subramaniam, Principal │ │
│ │ Hash (SHA256): a3f9d… [verified ✓] │ │
│ │ [Download PDF] [Share on LinkedIn] [Share link] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ ⚠ TAMPERED — Hash mismatch │
│ This certificate was altered after it was issued. │
│ Contact admin@scrollwell.com if you believe this is in error. │
│ │
│ ❌ REVOKED │
│ Revoked on: 20 Apr 2026 │
│ Reason: Issued in error │
│ │
│ 🔍 NOT FOUND │
│ No certificate matching this number exists in our system. │
└─────────────────────────────────────────────────────────────────────┘
2w. B2B pages — /for-institutions /higher-ed /k12#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Scrollwell for Institutions │
│ Empower your faculty. Measure outcomes. Earn ATAL credits. │
│ [Request a demo] [View pricing] │
├── Pain points → solutions (alternating row layout) ────────────────┤
│ [illustration] "Manual FDP tracking wastes time" │
│ → Automated attendance, certificates, MoU │
├── KPIs / social proof ──────────────────────────────────────────────┤
│ 5,200+ institutions · 61K+ faculty · 99.9% uptime │
├── Feature highlights (6 tiles) ────────────────────────────────────┤
│ [🗓] Event hosting [📜] Auto certificates [📊] Analytics │
│ [🤝] MoU compliance [🔑] SSO integration [📞] Dedicated CSM │
├── Testimonials (2–3) ───────────────────────────────────────────────┤
├── CTA: "Let's talk" ────────────────────────────────────────────────┤
│ Contact form: Name · Institution · Email · Phone · [Submit] │
└─────────────────────────────────────────────────────────────────────┘
2x. Contact — /contact#
┌── Two-column ───────────────────────────────────────────────────────┐
│ Get in touch (left) Quick info (right) │
│ ┌───────────────────────────┐ ┌──────────────────────────────┐ │
│ │ Full name [____________] │ │ 📧 admin@scrollwell.com │ │
│ │ Email [________________] │ │ 📞 +91 98765 43210 │ │
│ │ Subject [______________] │ │ 🏢 Chennai, Tamil Nadu │ │
│ │ Message │ │ 🕘 Mon–Fri 9AM–6PM IST │ │
│ │ [__________________________│ └──────────────────────────────┘ │
│ │ __________________________| │
│ │ _________________________]│ Or use the live chat (↘) │
│ │ [Send message] │ │
│ └───────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
2y. Conferences list — /conferences#
┌── Hero ─────────────────────────────────────────────────────────────┐
│ Academic Conferences │
│ Submit papers · Attend · Present │
│ [Search…] [Year ▾] [Domain ▾] [Mode ▾] │
├── Cards list ───────────────────────────────────────────────────────┤
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ ICETAHE 2026 · International Conf on EdTech & AI │ │
│ │ Aug 14–16 · Hybrid · 600 expected [29 days to submit] [View] │ │
│ └───────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
3. Account area (any logged-in user)#
3a. Account dashboard — /account#
┌── Greeting hero ────────────────────────────────────────────────────┐
│ Welcome back, Priya 👋 │
│ Continue building your academic profile. │
├── Profile completion (if < 100%) ───────────────────────────────────┤
│ ╭────╮ 72% complete │
│ │ 72 │ Missing: phone · bio · LinkedIn [Complete profile] │
│ ╰────╯ │
├── Quick actions (4 tiles) ──────────────────────────────────────────┤
│ [Browse FDPs] [My profile] [Membership] [Notifications] │
├── Two-column body ──────────────────────────────────────────────────┤
│ Upcoming registrations │ Settings rail │
│ ┌──────────────────────────────────┐ │ Profile │
│ │ AI in Pedagogy · Aug 14 │ │ Settings · 2FA │
│ │ JOIN Zoom → │ │ Membership │
│ └──────────────────────────────────┘ │ Certificates │
│ │ Invoices │
│ Unread notifications │ Verify a certificate │
│ • Cert SW-2026-… is ready │ ────────────────── │
│ • FDP brochure needs upload │ ⚠ Delete account │
│ │ │
│ Job applications · Certificates · Recent payments │
└─────────────────────────────────────────────────────────────────────┘
3b. Profile edit — /account/profile/edit (see §2t for view)#
┌── Tabs: Basics · Bio · Experience · Education · Skills ·
│ Publications · Awards · Handle ──────────────────────────────
│
│ BASICS
│ Avatar [📷 Upload / Remove] Name [_____________]
│ Phone [_____________]
│ Designation [______]
│ Department [_______]
│ Pronouns [_________] ← optional
│ Location [_________]
│ Website [__________]
│ LinkedIn [_________]
│
│ BIO / HEADLINE (≥ 20 chars, ≤ 280)
│ [textarea ………………………………………………………… chars counter: 142 / 280 …]
│
│ EXPERIENCE [+ Add]
│ ┌──────────────────────────────────────────────────────────────┐
│ │ Professor · Dept of CS · IIT Bombay 2018 — Present ✏ 🗑│
│ │ Associate Prof · IIT Madras 2010 — 2017 ✏ 🗑│
│ └──────────────────────────────────────────────────────────────┘
│ Add experience modal:
│ Title [______] Institution [_______]
│ Start [MM/YYYY] End [MM/YYYY] [☐ Current]
│ Description [textarea] [Save]
│
│ EDUCATION [+ Add]
│ SKILLS [+ Add tag] (autocomplete from taxonomy)
│ PUBLICATIONS [+ Add] (DOI link + year + authors)
│ AWARDS [+ Add]
│
│ HANDLE
│ scrollwell.com/u/[priya-menon___] ☑ Public profile
│ ⚠ Handle can only be changed once.
│ [Save handle]
│
│ ── Sticky bottom bar ──────────────────────────────────────────
│ [Save changes] [Discard]
│ (unsaved-changes guard: modal on navigate-away)
3c. Account settings — /account/settings#
┌── Tabs: General · Security · Notifications · Privacy ──────────────┐
│ │
│ GENERAL │
│ Email priya@iitb.ac.in [Change] │
│ Phone +91 9876543210 [Change] │
│ Language [English ▾] │
│ Timezone [Asia/Kolkata ▾] │
│ [Save general settings] │
│ │
│ SECURITY │
│ Password •••••••• [Change password] │
│ Two-factor auth Disabled [Enable 2FA →] │
│ Active sessions: │
│ • Chrome · Mumbai · This device · Now [✓] │
│ • Firefox · Delhi · 3 days ago [Revoke] │
│ [Sign out all other sessions] │
│ │
│ NOTIFICATIONS │
│ Email me when: │
│ ☑ A new FDP is posted in my domain │
│ ☑ My registration is confirmed │
│ ☑ My certificate is ready │
│ ☐ Weekly digest │
│ ☑ Admin messages │
│ Push notifications: [☑ enabled] (browser permission required) │
│ [Save preferences] │
│ │
│ PRIVACY │
│ Profile visibility [Public ▾] (Public · Connections · Private) │
│ Show in leaderboard [☑] │
│ Allow direct messages [☑] │
│ [Save privacy settings] │
└─────────────────────────────────────────────────────────────────────┘
3d. 2FA setup — /account/settings/2fa#
┌── Step 1: Choose method ────────────────────────────────────────────┐
│ Secure your account with a second factor │
│ │
│ ⦿ Authenticator app (recommended) │
│ ⦾ SMS to +91 9876•••210 │
│ │
│ [Continue →] │
├── Step 2: Scan QR ──────────────────────────────────────────────────┤
│ 1. Install Google Authenticator or Authy │
│ 2. Scan this QR code: │
│ │
│ ┌──────────────┐ │
│ │ [QR CODE] │ │
│ └──────────────┘ │
│ Or enter key manually: JBSWY3DPEHPK3PXP │
│ │
│ 3. Enter the 6-digit code to confirm: [_ _ _ _ _ _] │
│ [Verify & enable] │
├── Step 3: Backup codes ─────────────────────────────────────────────┤
│ ⚠ Save these backup codes. Each can be used once. │
│ │
│ 28a4-f9c2 7b3e-d1a0 cc91-4f8b │
│ 12de-99aa 5f7c-2e11 8b00-a3f9 │
│ │
│ [Download codes] [Copy codes] │
│ [I've saved my codes — Done] │
└─────────────────────────────────────────────────────────────────────┘
3e. Membership — /account/membership#
┌── Current plan ─────────────────────────────────────────────────────┐
│ Your plan: FREE │
│ Renewal: N/A │
│ Limits: │
│ • Events hosted this month: 0 / 0 (upgrade to host) │
│ • Certificates earned: 8 (no limit) │
├── Upgrade options ──────────────────────────────────────────────────┤
│ [Monthly ●] [Annual ○ Save 20%] │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ PRO ₹599/mo [Upgrade to Pro] │ │
│ │ ✓ Host unlimited FDPs │ │
│ │ ✓ Create self-paced courses │ │
│ │ ✓ API access │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ INSTITUTION ₹4,999/mo per campus [Contact sales] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ Payment method: — [Add card] │
│ ── If PRO user ── │
│ Payment method: Visa •••• 4242 [Change] │
│ Next billing: 27 Jun 2026 ₹599 │
│ [Cancel subscription] ← triggers 30-day grace period modal │
└─────────────────────────────────────────────────────────────────────┘
3f. My certificates — /account/certificates#
┌── Header + filters ─────────────────────────────────────────────────┐
│ My Certificates [Search…] Status ▾ Year ▾ │
├── Certificate cards ────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 🏅 AI in Pedagogy FDP ✅ Issued │ │
│ │ SW-2026-FDP001-0042 · Aug 2026 │ │
│ │ 24 hours · IIT Bombay │ │
│ │ [Download PDF] [Verify] [Share on LinkedIn] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 🏅 Research Methods for Faculty ✅ Issued │ │
│ │ SW-2025-FDP009-0018 · Dec 2025 │ │
│ │ [Download PDF] [Verify] [Share on LinkedIn] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ Empty state: │
│ 📜 No certificates yet. Enrol in an FDP to earn your first one. │
│ [Browse FDPs →] │
└─────────────────────────────────────────────────────────────────────┘
3g. Payment history — /account/payments#
┌── Header + export ──────────────────────────────────────────────────┐
│ Payment History [Export CSV] │
├── Filters: Date range ▾ Status ▾ ──────────────────────────────────┤
├── Table ────────────────────────────────────────────────────────────┤
│ Date Description Amount Status Invoice │
│ ───────── ────────────────── ────── ─────── ─────── │
│ 27 May '26 AI in Pedagogy FDP ₹2,500 Paid [View] │
│ 15 Dec '25 Research Methods ₹1,800 Paid [View] │
│ 02 Nov '25 Pro membership ₹599 Refunded [View] │
├── Totals ───────────────────────────────────────────────────────────┤
│ Total paid (2026): ₹2,500 Total refunded: ₹599 │
└─────────────────────────────────────────────────────────────────────┘
3h. Invoice — /account/invoices/[id]#
┌── Invoice SW-INV-2026-04201 ────────────────────────────────────────┐
│ [Download PDF] [Print] │
│ Scrollwell EduTech LLP INVOICE │
│ CIN: U80301TN2022LLP… No: SW-INV-2026-04201 │
│ Chennai, Tamil Nadu Date: 27 May 2026 │
│ GSTIN: 33AAACB… Due: Paid │
│ ────────────────────────────────────────────────────── │
│ Bill to: │
│ Dr. Priya Menon │
│ priya@iitb.ac.in · IIT Bombay │
│ ────────────────────────────────────────────────────── │
│ Description Qty Rate Amount │
│ AI in Pedagogy FDP (Aug 14–16) 1 ₹2,118.64 ₹2,118.64 │
│ GST 18% ₹381.36 │
│ ────────────────────────────────────────────────────── │
│ Total ₹2,500.00 │
│ Payment: Razorpay · UPI · Ref: RAZORPAY_201124 │
└─────────────────────────────────────────────────────────────────────┘
3i. Account deletion — /account/delete#
┌─────────────────────────────────────────────────────────────────────┐
│ Delete your account │
│ This starts a 7-day cooling-off window. You can cancel anytime. │
│ After 7 days an admin anonymises your account. │
│ │
│ What gets removed: │
│ • Personal info (name, email, phone, avatar) │
│ • Profile, bio, social links │
│ • Account login │
│ │
│ What stays (for audit and certificate validity): │
│ • Issued certificates (anonymised participant name) │
│ • Event registrations (anonymised) │
│ • Audit log entries │
│ │
│ Reason (optional) [________________________________] │
│ Type DELETE to confirm [_______] │
│ │
│ [Request deletion (red)] │
│ │
│ ── Pending state ─────────────────────────────────────────────── │
│ ⏳ Account deletion scheduled for 04 Jun 2026. │
│ You can still log in and cancel until then. │
│ [Cancel deletion request] │
└─────────────────────────────────────────────────────────────────────┘
4. ADMIN#
4a. Dashboard — /admin#
┌── KPI strip (6 tiles) ──────────────────────────────────────────────┐
│ Users 4.2k Colleges 312 Active FDPs 28 Revenue ₹4.8L Pending 6 Certs issued 42k│
├── Activity timeline (audit-log driven, last 24h) ──────────────────┤
│ 09:42 Rajesh (SPOC) created FDP "Quality NEP" │
│ 09:21 Admin revoked cert SW-2026-FDP021-0117 │
│ 09:05 priya@iitb.ac.in logged in │
├── Two-column ───────────────────────────────────────────────────────┤
│ Pending approvals (3) │ Deletion queue (1) │
│ • Event "X" by ABC College │ • user@xyz.edu · 7 days left │
│ • Job posting by HR Dept │ │
│ • Research paper · Dr. Anil │ Contact inbox (5) │
│ │ • "Need help integrating…" │
├── Charts row (4 cards, last 30d) ──────────────────────────────────┤
│ [Signups bar] [Revenue line] [FDP attendance %] [Cert issuance]│
4b. Users — /admin/users#
┌── Toolbar ──────────────────────────────────────────────────────────┐
│ [Search name/email…] Role ▾ Status ▾ Tenant ▾ [+ Invite user] │
├── Table ────────────────────────────────────────────────────────────┤
│ Name Email Role College Last login │
│ Priya Menon priya@iitb.ac.in FACULTY IIT Bombay 2h ago ⋯ │
│ ── Row ⋯ menu ── │
│ ✏ Edit profile 🔑 Reset password │
│ 👤 Impersonate 🚫 Deactivate / Reactivate │
│ 🗑 Mark as duplicate │
├── Pagination ───────────────────────────────────────────────────────┤
│ Showing 1–50 of 4,218 [← Prev] 1 2 3 … 85 [Next →] │
└─────────────────────────────────────────────────────────────────────┘
Reset-password drawer:
┌────────────────────────────────────────────────┐
│ Reset password for Priya Menon │
│ Reason (min 5 chars — audit-logged) │
│ [_________________________________________] │
│ ☑ I have notified the user │
│ [Generate temp password] │
│ ──────────────────── │
│ One-time password (shown once only): │
│ K2#mQp$nV9wXr [Copy] ⚠ Save this now. │
└────────────────────────────────────────────────┘
4c. Colleges — /admin/colleges#
┌── Toolbar ──────────────────────────────────────────────────────────┐
│ [Search college name…] State ▾ Type ▾ Status ▾ [+ New college]│
├── Table ────────────────────────────────────────────────────────────┤
│ Name State Type AICTE SPOC Status│
│ IIT Bombay Maharashtra Engineering ✓ priya@… Active│
│ Anna University Tamil Nadu University ✓ raj@… Active│
│ XYZ College Rajasthan Arts & Science ✗ — Pending│
│ ⋯ menu: [Edit] [View SPOCs] [View FDPs] [Deactivate] │
├── Pagination ───────────────────────────────────────────────────────┤
└─────────────────────────────────────────────────────────────────────┘
/admin/colleges/new:
┌────────────────────────────────────────────────────────────────┐
│ College name [________________________] │
│ AICTE PID [__________] ATAL Institute ID [__________] │
│ Type [Engineering ▾] State [Maharashtra ▾] │
│ District [Pune ▾] Pincode [______] │
│ Address [____________________________] │
│ Website [____________________________] │
│ Head of Institution │
│ Name [_______] Email [____________] Phone [__________] │
│ SPOC assign [Search user… 🔍] │
│ Upload NAAC / NIRF certificate [📤] │
│ [Cancel] [Create college] │
└────────────────────────────────────────────────────────────────┘
4d. MoU compliance — /admin/mou#
┌── Summary tiles ────────────────────────────────────────────────────┐
│ Total MoUs: 312 Active: 290 Expiring <30d: 14 Expired: 8 │
├── Table ────────────────────────────────────────────────────────────┤
│ College Signed Expires FDPs hosted Status │
│ IIT Bombay 10 Jan 25 09 Jan 27 14 Active ⋯ │
│ XYZ College — — 0 ⚠ Missing │
│ ABC Institute 20 Mar 25 19 Mar 26 3 ⚠ Expires │
│ ⋯ menu: [View PDF] [Renew] [Download] [Flag expired] │
└─────────────────────────────────────────────────────────────────────┘
4e. Approvals — /admin/approvals#
┌── Tabs: Events (3) · Jobs (1) · Research (2) · Content (0) ─────────┐
├── Event approval card ──────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ "NEP 2020 Implementation" FDP │ │
│ │ Submitted by: Rajesh Kumar (SPOC · ABC College) │ │
│ │ Dates: 10–12 Jun 2026 · Online · Free │ │
│ │ [📎 Brochure.pdf] [📎 Consent.pdf] │ │
│ │ [Preview event page] │ │
│ │ Admin note: [________________________________] │ │
│ │ [Approve ✓ (green)] [Request changes] [Reject (red)] │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
4f. Content — /admin/content#
┌── Tabs: Posts (32) · News (14) ─────────────────────────────────────┐
├── Toolbar ──────────────────────────────────────────────────────────┤
│ [Search…] Author ▾ Status ▾ [+ New post] │
├── Table ────────────────────────────────────────────────────────────┤
│ Title Author Status Views Actions │
│ "AI Classroom: Hype vs…" Priya M. Published 1.2k [Edit][⋯]│
│ "NEP 2020 guide draft" Roshan K. Draft — [Edit][⋯]│
│ ⋯ menu: [Publish] [Unpublish] [Delete] [View on site] │
└─────────────────────────────────────────────────────────────────────┘
4g. Announcement — /admin/announcement#
┌─────────────────────────────────────────────────────────────────────┐
│ Platform announcement banner │
│ Shown above the header on all public pages. │
├─────────────────────────────────────────────────────────────────────┤
│ Active: [○ off] [● on] │
│ Text (≤140): [New cohort starts June 10 · AI in Pedagogy_________] │
│ Link label: [Enrol now___________] │
│ Link URL: [/events/fdp-001_____] │
│ Severity: [info ▾] info · warn · success · danger │
│ Auto-hide: [☐] until [2026-06-10__] │
│ │
│ Live preview │
│ ╭─────────────────────────────────────────────────────────────╮ │
│ │ 📣 New cohort starts June 10 · AI in Pedagogy Enrol now →│ │
│ ╰─────────────────────────────────────────────────────────────╯ │
│ │
│ [Save] Last edited 2h ago by Super Admin │
└─────────────────────────────────────────────────────────────────────┘
4h. RSS Scraper — /admin/rss-scraper#
┌── Header + status ──────────────────────────────────────────────────┐
│ RSS Sources Last ingest: 27 May 2026 09:00 ✅ │
│ [+ Add source] │
├── Sources table ────────────────────────────────────────────────────┤
│ Name URL Freq Last run Status│
│ Times of India https://timesofindia…/rss 1h 09:00 ✅ │
│ UGC Updates https://ugc.ac.in/rss 6h 06:00 ✅ │
│ AICTE News https://aicte-india… 12h 00:00 ❌ │
│ ⋯ menu: [Edit] [Run now] [Pause] [Delete] │
│ Error row expands: "Connection refused — SSL cert expired" │
├── Ingest log (last 50 entries) ─────────────────────────────────────┤
│ Time Source Articles fetched New Status │
│ 09:00:14 TOI 24 5 ✅ │
│ 09:00:08 UGC 3 1 ✅ │
└─────────────────────────────────────────────────────────────────────┘
4i. Categories — /admin/categories#
┌── Tree view (drag to reorder) ──────────────────────────────────────┐
│ ▾ AI & EdTech [Edit] [+ child] [🗑] │
│ ▾ Generative AI [Edit] [+ child] [🗑] │
│ ChatGPT in class [Edit] [🗑] │
│ Machine Learning [Edit] [+ child] [🗑] │
│ ▾ Pedagogy │
│ Bloom's Taxonomy │
│ Active Learning │
│ ▾ NEP 2020 │
│ + Research Methods │
│ │
│ Used in: Blog · News · Courses · Events │
│ [+ New root category] │
└─────────────────────────────────────────────────────────────────────┘
4j. Enrollments — /admin/enrollments#
┌── Toolbar ──────────────────────────────────────────────────────────┐
│ [Search user / course…] Course ▾ Status ▾ [Export CSV] │
├── Table ────────────────────────────────────────────────────────────┤
│ User Course Progress Paid Enrolled │
│ Priya Menon AI Fundamentals 80% Free 01 Apr '26 │
│ Anil Kumar Research Methods 100% ✓ ₹1,999 22 Feb '26 │
│ ⋯ menu: [View profile] [Revoke enrollment] [Reset progress] │
└─────────────────────────────────────────────────────────────────────┘
4k. Payments ledger — /admin/payments#
┌── KPI strip ────────────────────────────────────────────────────────┐
│ Total May '26: ₹1,24,500 Refunds: ₹2,500 Net: ₹1,22,000 │
├── Filters: Date range ▾ Gateway ▾ Status ▾ [Export CSV] ─────────┤
├── Table ────────────────────────────────────────────────────────────┤
│ Date User Description Amount Gateway Status│
│ 27 May Priya Menon AI Pedagogy FDP ₹2,500 Razorpay Paid │
│ 26 May Anil Kumar Pro membership ₹599 Stripe Paid │
│ 25 May Neha Shah AI Pedagogy FDP ₹2,500 UPI Refunded│
│ ⋯ menu: [View invoice] [Initiate refund] [Flag] │
└─────────────────────────────────────────────────────────────────────┘
4l. Contact inbox — /admin/contact#
┌── Tabs: Unread (5) · Read · All ───────────────────────────────────┐
├── Message card ─────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ From: dr.kumar@annauniv.ac.in 27 May 2026 · 10:42 │ │
│ │ Subject: Integration support needed │ │
│ │ │ │
│ │ "Need help integrating Scrollwell into our LMS…" │ │
│ │ │ │
│ │ [Mark read] [Reply by email] [Assign to →] [🗑 Archive] │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
4m. Notifications broadcast — /admin/notifications#
┌── Compose broadcast ────────────────────────────────────────────────┐
│ Target audience [All users ▾] (All · Role · College · Custom) │
│ Audience size: 4,218 users will receive this │
│ │
│ Title [_____________________________________________] │
│ Body [_____________________________________________ │
│ _____________________________________________] │
│ Link [_____________________________________________] (optional) │
│ Send: ⦿ Now ⦾ Schedule: [2026-06-10 09:00 IST__] │
│ │
│ Preview: │
│ ╭─────────────────────────────────────────────────╮ │
│ │ 🔔 Your title │ │
│ │ Body preview… [View] │ │
│ ╰─────────────────────────────────────────────────╯ │
│ [Send / Schedule] │
├── Recent broadcasts ────────────────────────────────────────────────┤
│ Date Title Audience Sent Opened Click rate │
│ 20 May New FDP available All 4,218 2,100 49% │
│ 12 May Platform update SPOC 312 180 57% │
└─────────────────────────────────────────────────────────────────────┘
4n. Reputation — /admin/reputation#
┌── Search user ──────────────────────────────────────────────────────┐
│ [Search name or email… 🔍] │
├── User card (after search) ─────────────────────────────────────────┤
│ Priya Menon · priya@iitb.ac.in · FACULTY │
│ Current rep score: 410 pts │
│ │
│ Adjustment (positive or negative): │
│ Amount [+/- ___] │
│ Reason [_________________________] (audit-logged) │
│ [Apply adjustment] │
│ │
│ Rep history │
│ Date Event Change Total │
│ 20 May '26 FDP completed (+50) +50 410 │
│ 10 Apr '26 Research paper published +100 360 │
│ 15 Mar '26 Admin manual adjust -20 260 │
└─────────────────────────────────────────────────────────────────────┘
4o. Exports — /admin/exports#
┌── Available exports ────────────────────────────────────────────────┐
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 📊 Users export [Generate CSV] │ │
│ │ Filters: Role ▾ Status ▾ College ▾ Date range ▾ │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 📊 Certificates export [Generate CSV] │ │
│ │ Filters: Status ▾ Programme ▾ Date range ▾ │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 📊 Payments export [Generate CSV] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 📊 Audit log export [Generate CSV] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ Note: Large exports run as background jobs and email when ready. │
├── Recent exports ───────────────────────────────────────────────────┤
│ Date Type Rows Requested by [Download] │
│ 27 May Users 4,218 Super Admin [↓ users-27may.csv] │
└─────────────────────────────────────────────────────────────────────┘
4p. Audit log — /admin/audit#
┌── Filters ──────────────────────────────────────────────────────────┐
│ [Search action/user/entity…] Action ▾ Actor ▾ Date range ▾ │
├── Table ────────────────────────────────────────────────────────────┤
│ Timestamp Actor Action Entity │
│ 27 May 09:42 IST Rajesh (SPOC) EVENT_CREATE FDP-2026-088 │
│ 27 May 09:21 IST Super Admin CERT_REVOKE SW-2026-…0117 │
│ 27 May 09:05 IST System USER_LOGIN priya@iitb │
│ Click row → expanded detail: │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ Action: CERT_REVOKE │ │
│ │ Actor: roshan@scrollwell.com (Super Admin) │ │
│ │ Entity: Certificate SW-2026-FDP021-0117 │ │
│ │ IP: 49.36.xxx.xxx · Mumbai, India │ │
│ │ Reason: Issued in error — duplicate registration │ │
│ │ Diff: status ISSUED → REVOKED │ │
│ └────────────────────────────────────────────────────────────────┘ │
├── Pagination ───────────────────────────────────────────────────────┤
│ [Export filtered log] Showing 1–50 of 12,041 │
└─────────────────────────────────────────────────────────────────────┘
4q. Master (God-mode) settings — /admin/master#
┌── ⚠ CAUTION — Changes here affect the entire platform ────────────┐
├── Sections ─────────────────────────────────────────────────────────┤
│ Platform │
│ Platform name [Scrollwell_____________] │
│ Support email [admin@scrollwell.com___] │
│ Default timezone [Asia/Kolkata ▾] │
│ Maintenance mode [○ off] [● on] ← shows maintenance page │
│ Registration [○ open] [● invite-only] │
│ │
│ Feature flags │
│ ☑ Enable certificate generation │
│ ☑ Enable payment gateway (Razorpay) │
│ ☑ Enable Google OAuth login │
│ ☑ Enable RSS ingest │
│ ☑ Enable PWA install prompt │
│ ☐ Enable new leaderboard (beta) │
│ │
│ Limits │
│ Max FDPs per SPOC per month [10___] │
│ Certificate hash algo [SHA-256 ▾] │
│ Profile completion threshold: host FDP [60___]% course [75___]% │
│ │
│ SMTP / Email │
│ Provider [Resend ▾] API key [•••••••••] [Test] │
│ │
│ Payment gateway │
│ Provider [Razorpay] Key ID [rzp_live_•••] Webhook [•••] │
│ │
│ Danger zone │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ [Flush all caches] [Rebuild search index] [Seed demo data]│ │
│ └──────────────────────────────────────────────────────────────┘ │
│ [Save settings] ← requires OTP re-auth │
└─────────────────────────────────────────────────────────────────────┘
4r. Certificates — issue & revoke — /admin/certificates#
┌── Tabs: Issue · Revoke · Registry · Import ────────────────────────┐
│ │
│ ISSUE (single) │
│ Event/FDP [Search event… 🔍] │
│ Participant [Search user… 🔍] │
│ Issue reason (optional): [_________________________] │
│ [Issue certificate] │
│ │
│ REVOKE │
│ Cert number [SW-2026-________] [Search] │
│ Reason (required, audit-logged): [_________________________] │
│ [Revoke — irreversible ⚠] │
└─────────────────────────────────────────────────────────────────────┘
4s. Certificate registry — /admin/certificates/registry#
(see v2.0 §4c — unchanged, fully documented)
4t. Certificate bulk import — /admin/certificates/import#
┌── CSV import ────────────────────────────────────────────────────────┐
│ [Download template CSV] │
│ Columns: cert_number, participant_email, programme_id, │
│ issued_date, hours, signatory_name │
│ │
│ [📤 Upload CSV file] │
│ │
│ ── After upload: validation preview ───────────────────────────── │
│ Row Status Participant Issue │
│ 1 ✅ OK priya@iitb.ac.in │
│ 2 ✅ OK anil@annauniv.ac.in │
│ 3 ❌ Error missing@domain User not found in system │
│ 4 ⚠ Warn dup@college.edu Cert already issued │
│ │
│ Valid rows: 2 Errors: 1 Warnings: 1 │
│ [Skip errors & import 2] [Cancel] │
└─────────────────────────────────────────────────────────────────────┘
4u. Duplicate accounts — /admin/duplicates#
(see v2.0 §4d — unchanged, fully documented)
4v. Deletion queue — /admin/deletions#
(see v2.0 §4f — unchanged, fully documented)
5. SPOC (single point of contact, per tenant)#
5a. Dashboard — /spoc#
┌── 8-module quick grid ──────────────────────────────────────────────┐
│ [📋 Application] [🎓 Workshops] [📝 Applied] [✓ Approved] │
│ [🎙 Resource Pers][📄 Documents] [🤝 MoU] [🏅 Certs] │
├── Active workshop strip ────────────────────────────────────────────┤
│ AI in Pedagogy · 24 participants · Day 2 of 3 │
│ [Mandate][MCQ Questions][Attendance][Test Marks][Feedback] │
├── Counts row ───────────────────────────────────────────────────────┤
│ Applications 12 Approved 9 Live FDPs 2 Past FDPs 14 │
├── Two-column ───────────────────────────────────────────────────────┤
│ Upcoming sessions │ Pending tasks │
│ • 10 Jun · 09:00 · Day 1 │ • Upload MoU renewal │
│ • 11 Jun · 09:00 · Day 2 │ • Submit FDP brochure │
└─────────────────────────────────────────────────────────────────────┘
5b. SPOC application — /spoc/application (4-step wizard)#
(see v2.0 §5b — unchanged, fully documented)
5c. Event sub-tabs — /spoc/events/[id]/*#
Overview tab:
┌── Event header ─────────────────────────────────────────────────────┐
│ AI in Pedagogy · FDP001 · 24/50 enrolled · Status: LIVE │
│ [Edit details] [Cancel event] [Export attendees CSV] │
├── Tabs ─────────────────────────────────────────────────────────────┤
│ Overview · Schedule · Participants · Mandate · Questions · │
│ Marks · Attendance · Feedback · Resources · Certificates │
├── Overview content ─────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │Enrolled │ │Attendance│ │MCQ avg │ │Feedback │ │
│ │ 24/50 │ │ 87% │ │ 74% │ │ ⭐4.6 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ Quick links to each sub-tab │
└─────────────────────────────────────────────────────────────────────┘
Mandate tab /spoc/events/[id]/mandate:
┌── Mandate checklist ────────────────────────────────────────────────┐
│ These items are required for ATAL compliance. │
│ │
│ ✅ Brochure uploaded (2.1MB PDF) [View] [Replace] │
│ ✅ Consent letter uploaded [View] [Replace] │
│ ✅ Resource person bio uploaded [View] [Replace] │
│ ⏳ Group photo (Day 1) [📤 Upload] │
│ ⏳ Group photo (Day 2) [📤 Upload] │
│ ✅ Feedback form activated │
│ ⏳ MCQ test published [Go to Questions] │
│ ⏳ Attendance marked ≥ 75% [Go to Attendance] │
│ │
│ ATAL Submission deadline: 30 Jun 2026 │
│ [Submit to ATAL portal] ← enabled only when all green │
└─────────────────────────────────────────────────────────────────────┘
Schedule tab /spoc/events/[id]/schedule:
┌── Day selector + [+ Add session] ──────────────────────────────────┐
│ [Day 1: 14 Aug ●] [Day 2: 15 Aug] [Day 3: 16 Aug] │
├── Session list ─────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 09:00 – 10:00 Registration & Welcome ✏ 🗑 │ │
│ │ 10:00 – 12:00 Module 1: Intro to GenAI ✏ 🗑 │ │
│ │ 12:00 – 13:00 Lunch ✏ 🗑 │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ [+ Add session] │
│ │
│ Add/edit session modal: │
│ Title [________________] Type [Session ▾] │
│ Start [HH:MM] End [HH:MM] │
│ Speaker [_____] Room/Link [_____] [Save] │
└─────────────────────────────────────────────────────────────────────┘
Participants tab /spoc/events/[id]/participants:
┌── Toolbar ──────────────────────────────────────────────────────────┐
│ [Search name/email…] Status ▾ [Export CSV] [Bulk approve] │
├── Table ────────────────────────────────────────────────────────────┤
│ Name Email Applied Status Action │
│ Priya M. priya@… 15 Apr Approved [⋯] │
│ Anil K. anil@… 20 Apr Pending [Approve][✗] │
│ Neha S. neha@… 22 Apr Waitlisted [Promote] │
│ ⋯ menu: [View profile] [Send reminder] [Remove] │
└─────────────────────────────────────────────────────────────────────┘
Questions (MCQ) tab /spoc/events/[id]/questions:
┌── MCQ bank for this FDP ────────────────────────────────────────────┐
│ Status: [Draft] [Publish test] │
│ Questions: 20 Time limit: 30 min │
│ [+ Add question] [Import from question bank] [Randomise order] │
├── Question list ────────────────────────────────────────────────────┤
│ Q1. Which framework is commonly used for… (MCQ · 1pt) ✏ 🗑 │
│ Q2. Define active learning in one word. (MCQ · 1pt) ✏ 🗑 │
│ … 18 more │
│ │
│ Add/edit question modal: │
│ Question text [_________________________] │
│ Type [MCQ ▾] Points [1] │
│ A. [___________] ⦿ Correct │
│ B. [___________] ⦾ │
│ C. [___________] ⦾ │
│ D. [___________] ⦾ │
│ Explanation [___________] [Save] │
└─────────────────────────────────────────────────────────────────────┘
Attendance tab /spoc/events/[id]/attendance:
┌── Day selector ─────────────────────────────────────────────────────┐
│ [Day 1: 14 Aug ●] [Day 2: 15 Aug] [Day 3: 16 Aug] │
├── Attendance table ─────────────────────────────────────────────────┤
│ [Search…] [Mark all present] [Export] │
│ │
│ Name Day 1 Day 2 Day 3 Total% Status │
│ Priya Menon ✅ ✅ ✅ 100% On track │
│ Anil Kumar ✅ ❌ — 33% ⚠ Below 75% │
│ Neha Shah ✅ ✅ — 67% Borderline │
│ │
│ Click cell to toggle: ✅ Present ❌ Absent — Not yet marked │
│ [Save attendance] │
└─────────────────────────────────────────────────────────────────────┘
Marks tab /spoc/events/[id]/marks:
┌── Marks overview ───────────────────────────────────────────────────┐
│ MCQ test results (published 16 Aug 2026) [Export CSV] │
│ Avg score: 74% Pass rate: 88% Not attempted: 2 │
├── Table ────────────────────────────────────────────────────────────┤
│ Name Score Grade Attempted Certificate eligible│
│ Priya Menon 19/20 A+ Yes ✅ Yes │
│ Anil Kumar 14/20 B Yes ✅ Yes │
│ Neha Shah — — No ❌ Pending attempt │
└─────────────────────────────────────────────────────────────────────┘
Feedback tab /spoc/events/[id]/feedback:
┌── Summary ──────────────────────────────────────────────────────────┐
│ Responses: 21 / 24 (88%) │
│ Overall: ⭐ 4.6 / 5 Content: 4.8 Delivery: 4.5 Org: 4.3 │
├── NPS breakdown ───────────────────────────────────────────────────┤
│ Definitely recommend: 18 Maybe: 2 No: 1 NPS score: +74 │
├── Comments ─────────────────────────────────────────────────────────┤
│ "Excellent content, very practical." — Priya M. │
│ "Would have liked more hands-on time." — Roshan K. │
│ [Load more…] │
├── Export ───────────────────────────────────────────────────────────┤
│ [Export to PDF report] [Export raw CSV] │
└─────────────────────────────────────────────────────────────────────┘
Resources tab /spoc/events/[id]/resources:
┌── Resource library for this event ─────────────────────────────────┐
│ Visible to approved participants. [+ Upload file] [+ Add link] │
├── Files list ───────────────────────────────────────────────────────┤
│ 📎 Day1_slides.pdf 2.4 MB Uploaded 13 Aug [View][🗑] │
│ 📎 Prompt_lab.docx 0.8 MB Uploaded 14 Aug [View][🗑] │
│ 🔗 Colab notebook — Added 14 Aug [Open][🗑] │
└─────────────────────────────────────────────────────────────────────┘
Certificates tab /spoc/events/[id]/certificates:
┌── Certificate eligibility ──────────────────────────────────────────┐
│ Eligible (attendance ≥ 75% AND MCQ attempted): 21 / 24 │
│ Already issued: 0 │
│ │
│ Template preview: [Thumbnail of cert PDF] │
│ │
│ [Generate for all 21 eligible] ← bulk action, creates PDF + hash │
│ [Generate for selected…] │
│ │
│ After generation: │
│ Name Status Download │
│ Priya Menon Issued [Download] [Revoke] │
│ Anil Kumar Issued [Download] [Revoke] │
│ Neha Shah Ineligible (MCQ not attempted) [Override ⚠] │
└─────────────────────────────────────────────────────────────────────┘
5d. Course authoring — /spoc/courses/[id]/curriculum#
┌── Curriculum builder ───────────────────────────────────────────────┐
│ Course: AI Fundamentals for Educators Status: Draft [Publish] │
│ [+ Add module] Drag to reorder │
├── Module list ──────────────────────────────────────────────────────┤
│ ▾ Module 1 — What is AI? (3 lessons) [Edit title] [🗑] │
│ ○ 1.1 A brief history of AI [Edit] [🗑] │
│ Type: Video · 12 min │
│ ○ 1.2 How neural networks learn [Edit] [🗑] │
│ Type: Video · 18 min + reading │
│ ○ 1.3 Quiz: Check yourself [Edit] [🗑] │
│ Type: MCQ · 5 questions │
│ [+ Add lesson] │
│ ▾ Module 2 — Generative AI (4 lessons) │
│ … │
│ [+ Add module] │
│ │
│ Lesson editor (inline expand or modal): │
│ Title [_____________] Type [Video ▾] │
│ Upload file [📤] or paste URL [_____________] │
│ Description [textarea] Free preview [☐] [Save] │
└─────────────────────────────────────────────────────────────────────┘
5e. Resource persons — /spoc/resource-persons#
┌── Toolbar ──────────────────────────────────────────────────────────┐
│ [Search name…] Domain ▾ [+ Invite resource person] │
├── Cards grid ───────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ │
│ │ [avatar] │ │ [avatar] │ │
│ │ Dr. Priya│ │ Prof. Roh│ │
│ │ AI, Ped. │ │ Research │ │
│ │ IIT Bom │ │ IIT Delhi│ │
│ │ [Invite] │ │ [Invite] │ │
│ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────────┘
5f. Documents — /spoc/documents#
┌── Important documents ──────────────────────────────────────────────┐
│ Required for ATAL compliance. [+ Upload document] │
│ │
│ 📎 MoU Agreement.pdf Uploaded 10 Jan 2026 [View][🗑] │
│ 📎 AICTE_Approval.pdf Uploaded 10 Jan 2026 [View][🗑] │
│ 📎 College_ISO.pdf Uploaded 10 Jan 2026 [View][🗑] │
│ ⚠ NAAC Certificate Required — not uploaded [📤 Upload] │
│ ⚠ Annual Report 2025 Required — not uploaded [📤 Upload] │
└─────────────────────────────────────────────────────────────────────┘
5g. SPOC MoU — /spoc/mou#
┌── MoU status ───────────────────────────────────────────────────────┐
│ MoU Reference: SW-MOU-2025-0088 │
│ Status: Active Signed: 10 Jan 2025 Expires: 09 Jan 2027 │
│ [Download MoU PDF] │
│ │
│ FDPs hosted under this MoU: 14 │
│ FDP quota remaining: 6 of 20 │
│ │
│ ⚠ MoU expires in 591 days. Contact admin to renew early. │
│ [Request renewal] │
└─────────────────────────────────────────────────────────────────────┘
6. FACULTY#
6a. Dashboard — /faculty#
┌── Greeting + profile ring ──────────────────────────────────────────┐
│ Faculty Overview · 72% profile complete [Complete profile →] │
├── KPI tiles ────────────────────────────────────────────────────────┤
│ Upcoming FDPs: 3 Total enrolments: 12 Certificates: 8 │
├── Host-gate quick actions ──────────────────────────────────────────┤
│ ┌──── locked at 72% ──┐ ┌── locked at 72% ──┐ ┌── open ──┐ │
│ │ + Host an FDP │ │ + Create course │ │ Browse │ │
│ │ Needs 60% profile │ │ Needs 75% profile │ │ FDPs │ │
│ └─────────────────────┘ └───────────────────-┘ └──────────┘ │
├── My events list ───────────────────────────────────────────────────┤
│ AI in Pedagogy · Aug 14 LIVE [Open Zoom] │
│ Quality NEP · Sep 22 UPCOMING [Add to calendar] │
└─────────────────────────────────────────────────────────────────────┘
6b. Faculty research — /faculty/research#
┌── Tabs: My Papers (4) · Under Review (1) · Peer Review Inbox (2) ───┐
├── Toolbar ──────────────────────────────────────────────────────────┤
│ [+ Submit new paper] Status ▾ Year ▾ [Search…] │
├── Paper card ───────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ "LLM Adoption in Indian Higher Education" │ │
│ │ Authors: Priya Menon, Rohit Verma │ │
│ │ Submitted: 20 May 2026 · Status: Under review │ │
│ │ [View submission] [Edit] [Withdraw] │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
/faculty/research/new:
┌──────────────────────────────────────────────────────────────────┐
│ Title [___________________________________] │
│ Co-authors [+ Add co-author by email] │
│ Abstract [textarea ≥ 150 chars] │
│ Keywords [+ Add tag] │
│ Domain [AI in Education ▾] │
│ Paper PDF [📤 Upload] │
│ DOI (if published) [___________] │
│ [Save draft] [Submit for review] │
└──────────────────────────────────────────────────────────────────┘
6c. Faculty research peer-review — /faculty/research/reviews/[id]#
┌── Paper under review ───────────────────────────────────────────────┐
│ [Download paper PDF] │
│ "Adaptive Assessment in NEP 2020 Classrooms" │
│ Assigned to you on 22 May 2026 Deadline: 05 Jun 2026 │
├── Review form ──────────────────────────────────────────────────────┤
│ Originality [⭐⭐⭐⭐☆] │
│ Methodology [⭐⭐⭐⭐⭐] │
│ Relevance [⭐⭐⭐⭐☆] │
│ Clarity [⭐⭐⭐☆☆] │
│ │
│ Recommendation: ⦿ Accept ⦾ Major revision ⦾ Reject │
│ │
│ Comments to author (public): │
│ [textarea] │
│ │
│ Confidential notes to editor (private): │
│ [textarea] │
│ │
│ [Save draft] [Submit review] │
└─────────────────────────────────────────────────────────────────────┘
6d. Faculty hackathons — /faculty/hackathons#
┌── Browse hackathons ────────────────────────────────────────────────┐
│ [Search…] Status ▾ Prize ▾ │
├── Cards ────────────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 🏆 EduHack 2026 · Registration open · Prize: ₹1L │ │
│ │ Deadline: 30 Jun 2026 │ │
│ │ [Register / View team] [Save 🔖] │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ My registrations: │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ AI Challenge 2026 Team: EduBuilders Status: Ongoing │ │
│ │ [View submission] [Edit team] │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
6e. Faculty jobs — /faculty/jobs#
Same as public /jobs board with additional:
- "Applied" pill on jobs already applied to
- [Withdraw application] on applied jobs
- [Application status] tracker per job
6f. Faculty mentorship — /faculty/mentorship#
┌── Tabs: Find mentor · Be a mentor · My sessions ───────────────────┐
│ │
│ FIND MENTOR │
│ [Search by domain…] Availability ▾ Rating ▾ │
│ → same directory as /mentorship public page │
│ │
│ BE A MENTOR │
│ Status: Not registered [Become a mentor] │
│ Becomes a mentor modal: │
│ Domains [+ Add] Availability [Mon/Wed 4–6pm] Max mentees [5] │
│ [Save mentor profile] │
│ │
│ MY SESSIONS │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Session with Dr. Rohit Verma 10 Jun 2026 4PM Zoom │ │
│ │ Topic: Research methodology review │ │
│ │ [Join Zoom] [Reschedule] [Cancel] │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
6g. Faculty AI tools — /faculty/ai-tools#
Same as public /ai-tools catalogue with:
- [Saved tools] tab
- Usage notes ("Used in my FDP on Aug 14")
- [Rate this tool] (star rating)
7. STUDENT#
7a. Dashboard — /student#
┌── Header ───────────────────────────────────────────────────────────┐
│ Student Hub │
├── KPIs ─────────────────────────────────────────────────────────────┤
│ Enrolled events: 4 Certificates: 2 Saved courses: 6 │
├── Two-column ───────────────────────────────────────────────────────┤
│ Upcoming events │ Suggested courses │
│ • Hackathon X · 5 Jun │ • Methodology 101 (free) │
│ • Webinar · NEP · 12 Jun │ • AI for Students (₹999) │
├── My certificates ──────────────────────────────────────────────────┤
│ (same as /account/certificates) │
└─────────────────────────────────────────────────────────────────────┘
8. PARTICIPANT (FDP enrolee per institution)#
8a. Hub — /participant#
┌── Greeting ─────────────────────────────────────────────────────────┐
│ Hello Priya — your active FDP: AI in Pedagogy │
│ Day 2 of 3 · 80% attendance │
│ [Join Zoom] [Open materials] [Take MCQ test] [Give feedback] │
├── Progress checklist ───────────────────────────────────────────────┤
│ ✅ Submitted Form 1 (General details) │
│ ✅ Submitted Form 2 (Institute details) │
│ ⏳ Attendance 80% (need ≥ 75%) │
│ ⏳ MCQ test: not yet attempted │
│ ⏳ Feedback: pending │
└─────────────────────────────────────────────────────────────────────┘
8b. General details — /participant/general-details#
(see v2.0 §8b — unchanged, fully documented)
8c. Institute details — /participant/institute-details#
┌── Form 2 (per PDF spec) ────────────────────────────────────────────┐
│ Institute name [________________________] │
│ AICTE PID [_______________] (optional if not AICTE) │
│ Institute type [Engineering ▾] │
│ State [Maharashtra ▾] District [Pune ▾] Pincode [______] │
│ Address [_________________________________] │
│ Website [_________________________________] │
│ │
│ Head of Institution │
│ Name [___________] Designation [____________] │
│ Email [___________] Phone [__________________] │
│ │
│ Accreditation │
│ NAAC Grade [A++ ▾] NBA [☑] NIRF rank [______] │
│ │
│ Upload documents │
│ Institute letterhead [📤] Approval certificate [📤] │
│ │
│ [← Back: General] [Save & continue →] │
└─────────────────────────────────────────────────────────────────────┘
8d. Workshops (available FDPs) — /participant/workshops#
┌── Available FDPs for your institution ─────────────────────────────┐
│ [Search…] Mode ▾ Date ▾ │
├── Cards ────────────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ AI in Pedagogy FDP · Aug 14–16 · Hybrid │ │
│ │ 24 / 50 enrolled · Free for your institute │ │
│ │ [Apply] │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
8e. Applied — /participant/applied#
┌── My applications ──────────────────────────────────────────────────┐
│ FDP Applied on Status Action │
│ AI in Pedagogy 15 Apr '26 Approved [View FDP] │
│ Research Methods 22 Mar '26 Rejected [View reason] │
│ Quality NEP 01 May '26 Pending [Withdraw] │
└─────────────────────────────────────────────────────────────────────┘
8f. Attendance — /participant/attendance#
┌── Attendance record ────────────────────────────────────────────────┐
│ AI in Pedagogy FDP · Aug 14–16, 2026 │
│ │
│ Day Date Status Time marked │
│ Day 1 14 Aug ✅ Present 09:07 IST │
│ Day 2 15 Aug ✅ Present 09:14 IST │
│ Day 3 16 Aug ⏳ Pending — │
│ │
│ Overall: 67% (need ≥ 75% for certificate) │
│ ⚠ Attend Day 3 to become eligible for certificate. │
└─────────────────────────────────────────────────────────────────────┘
8g. Assessment guidelines — /participant/assessment/[quizId]/guidelines#
┌── Before you begin ─────────────────────────────────────────────────┐
│ AI in Pedagogy · MCQ Test │
│ │
│ • 20 questions · 30 minutes · 1 mark each │
│ • No negative marking │
│ • Questions may be shuffled │
│ • You can mark questions for review and revisit │
│ • Do NOT close or refresh the tab during the test │
│ • Test auto-submits when time expires │
│ • You get 1 attempt only │
│ │
│ System check: Browser ✅ Camera ✅ (proctoring not required) │
│ │
│ [I've read the instructions — Start test →] │
└─────────────────────────────────────────────────────────────────────┘
8h. Assessment — take — /participant/assessment/[quizId]/take#
┌── Quiz header ──────────────────────────────────────────────────────┐
│ AI in Pedagogy · MCQ test ⏱ 18:42 remaining Q 7 of 20 │
├─────────────────────────────────────────────────────────────────────┤
│ 7. Which prompting strategy works best for… │
│ │
│ ⦾ A. Few-shot with chain-of-thought │
│ ⦿ B. Zero-shot with explicit instructions │
│ ⦾ C. Tree-of-thought ensembling │
│ ⦾ D. Pure rote memorisation │
│ │
│ [Skip] [⚑ Mark for review] [← Previous] [Next →] │
├── Question palette ─────────────────────────────────────────────────┤
│ Answered ■ Marked ◆ Skipped □ Current [7] │
│ 1■ 2■ 3■ 4■ 5◆ 6■ [7] 8□ 9□ 10□ 11□ 12□ 13□ 14□ 15□ 16□ 17□ 18□ 19□ 20□│
├── [Submit test] ← confirms with "Are you sure?" modal ─────────────┤
└─────────────────────────────────────────────────────────────────────┘
8i. Assessment review — /participant/assessment/[quizId]/review#
┌── Results ──────────────────────────────────────────────────────────┐
│ Score: 19 / 20 Grade: A+ Time taken: 24:18 │
│ ██████████████████░ 95% │
│ [Download scorecard PDF] │
├── Question review ──────────────────────────────────────────────────┤
│ Q1. Which framework… │
│ Your answer: ✅ A. Few-shot with chain-of-thought (Correct) │
│ Explanation: Chain-of-thought prompting helps decompose… │
│ │
│ Q5. Define active learning. │
│ Your answer: ❌ D. Passive reception (Incorrect) │
│ Correct: B. Student-centred engagement │
│ Explanation: Active learning involves… │
│ … │
└─────────────────────────────────────────────────────────────────────┘
8j. Marks — /participant/marks#
┌── Score history ────────────────────────────────────────────────────┐
│ FDP Test date Score Grade Certificate │
│ AI in Pedagogy 16 Aug '26 19/20 A+ ✅ Issued │
│ Research Methods 15 Dec '25 15/20 B ✅ Issued │
│ Quality NEP — — — Pending test │
└─────────────────────────────────────────────────────────────────────┘
8k. Feedback — /participant/feedback#
┌── FDP feedback form ─────────────────────────────────────────────────┐
│ AI in Pedagogy FDP — Aug 14–16, 2026 │
│ ── same layout as public feedback form §2e ── │
│ Submitted: [Check] or form shows as pre-filled read-only │
└─────────────────────────────────────────────────────────────────────┘
9. BLOG_WRITER#
9a. Dashboard — /writer#
┌── Tabs: Drafts (3) · Published (24) · Scheduled (1) ────────────────┐
├── Toolbar ──────────────────────────────────────────────────────────┤
│ [+ New post] Author ▾ Category ▾ [Search…] │
├── Post list ────────────────────────────────────────────────────────┤
│ "Hybrid teaching retrospective" · Draft · updated 2h ago [Edit]│
│ "AI rewriting syllabus" · Live · 1.2k views [Edit] │
│ "NEP section 6 analysis" · Scheduled · 28 May 09:00 [Edit] │
└─────────────────────────────────────────────────────────────────────┘
9b. Post editor — /writer/posts/[id]/edit#
┌── Sticky toolbar ───────────────────────────────────────────────────┐
│ [← Back] [Auto-saved 2m ago] Status: Draft [Preview][Publish ▾]│
│ │
│ Publish options dropdown: │
│ Publish now · Schedule (date/time picker) · Save as draft │
├── Two-pane ─────────────────────────────────────────────────────────┤
│ Editor (65%) Sidebar (35%) │
│ ╭───────────────────────────────╮ Slug [ai-classroom-hype-real___]│
│ │ # AI Classroom: Hype vs Rea… │ Category [AI & EdTech ▾] │
│ │ │ Tags [AI][+ Add] │
│ │ Body content in TipTap │ Cover image [📤 Upload/Replace] │
│ │ (headings, lists, code, │ Excerpt [____________] │
│ │ embeds, images) │ ────────────────────── │
│ │ │ SEO title [___________] │
│ │ │ Meta description [__________] │
│ ╰───────────────────────────────╯ Canonical URL [_____________] │
│ Words: 842 · Reading: 4 min ────────────────────── │
│ Audit log │
│ 2 edits by you · 1 by Roshan │
│ Last: 2h ago │
└─────────────────────────────────────────────────────────────────────┘
9c. FAQ editor — /writer/faq/[id]/edit#
┌── FAQ item editor ──────────────────────────────────────────────────┐
│ Question [___________________________________________] │
│ Answer [rich text editor — same TipTap as post editor] │
│ Category [General ▾] Order [3] Active [☑] │
│ [Save] [Delete] │
│ │
│ /writer/faq list: │
│ [+ New FAQ] Category ▾ [Search…] │
│ (drag to reorder within category) │
│ Q: Is a certificate provided? · General · Active [Edit][🗑] │
│ Q: Refund policy? · Payments · Active [Edit][🗑] │
└─────────────────────────────────────────────────────────────────────┘
9d. Media library — /writer/media#
┌── Toolbar ──────────────────────────────────────────────────────────┐
│ [📤 Upload files] [Search…] Type ▾ Sort ▾ │
├── Grid ─────────────────────────────────────────────────────────────┤
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │[img] │ │[img] │ │[img] │ │[img] │ │[doc] │ │
│ │hero.…│ │ai-to…│ │chart…│ │port… │ │repor…│ │
│ │12 KB │ │45 KB │ │23 KB │ │89 KB │ │1.2 MB│ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
│ Click to expand: [Copy URL] [Insert to post] [Delete] │
├── Pagination ───────────────────────────────────────────────────────┤
│ Showing 1–30 of 142 [Load more] │
└─────────────────────────────────────────────────────────────────────┘
9e. SEO audit — /writer/seo-audit#
┌── Post selector ────────────────────────────────────────────────────┐
│ [Select post… ▾] [Run audit] │
├── Audit results ────────────────────────────────────────────────────┤
│ Overall score: 74 / 100 │
│ │
│ ✅ Title tag present and ≤ 60 chars │
│ ✅ Meta description present (142 chars) │
│ ⚠ Meta description > 155 chars — trim by 13 chars │
│ ❌ No canonical URL set │
│ ✅ Cover image has alt text │
│ ⚠ First heading is H2, should be H1 │
│ ✅ Internal links: 3 found │
│ ❌ No external (authority) links │
│ ✅ Word count: 842 (good for this topic) │
│ ⚠ Keyword density: "AI" 0.3% — aim for 0.5–1% │
│ │
│ [View post] [Edit post] │
└─────────────────────────────────────────────────────────────────────┘
10. EVENT_MANAGER#
10a. Dashboard — /events-mgr#
┌── KPI row ──────────────────────────────────────────────────────────┐
│ My events: 8 Live: 2 Upcoming: 4 Past: 31 Total reg: 1,240 │
├── Events table ─────────────────────────────────────────────────────┤
│ Title Date Mode Capacity Status Action │
│ AI in Pedagogy 14 Aug '26 Hybrid 150/200 LIVE Manage │
│ Quality NEP 22 Sep '26 Online 88/100 UPCOMING Manage │
│ Research Meth. 10 Dec '25 Online 100/100 PAST View │
└─────────────────────────────────────────────────────────────────────┘
10b. Event sessions — /events-mgr/events/[id]/sessions#
Same as /spoc/events/[id]/schedule (§5c Schedule tab), with:
- Ability to assign "host" user per session
- Zoom/Meet link field per session
- Session status: Scheduled · Live · Ended
10c. Event attendance — /events-mgr/events/[id]/attendance#
Same as /spoc/events/[id]/attendance (§5c Attendance tab).
10d. Event feedback — /events-mgr/events/[id]/feedback#
Same as /spoc/events/[id]/feedback (§5c Feedback tab) — read-only for Event Manager.
10e. Event resources — /events-mgr/events/[id]/resources#
Same as /spoc/events/[id]/resources (§5c Resources tab).
10f. Event registrations — /events-mgr/events/[id]/registrations#
┌── Toolbar ──────────────────────────────────────────────────────────┐
│ [Search name/email…] Status ▾ Payment ▾ [Export CSV] │
├── Table ────────────────────────────────────────────────────────────┤
│ Name Email Status Paid Action │
│ Priya M. priya@… CONFIRMED ₹2,500 [⋯] │
│ Anil K. anil@… WAITLIST — [Promote] │
│ Neha S. neha@… CANCELLED — — │
│ ⋯ menu: [View profile] [Cancel reg] [Send reminder] [Refund] │
└─────────────────────────────────────────────────────────────────────┘
10g. Cross-event attendance — /events-mgr/attendance#
┌── Filters ──────────────────────────────────────────────────────────┐
│ Event ▾ Date range ▾ [Search participant…] │
├── Table (pivot: participant × events) ──────────────────────────────┤
│ Name AI in Ped. Quality NEP Research Total events │
│ Priya Menon ✅ 100% ✅ 80% ✅ 100% 3 │
│ Anil Kumar ✅ 67% ❌ no-show — 2 │
│ [Export summary CSV] │
└─────────────────────────────────────────────────────────────────────┘
10h. Reports — /events-mgr/reports#
┌── Report type selector ─────────────────────────────────────────────┐
│ [Attendance report ▾] Date range: [From__] to [To__] │
│ Events: [All ▾] [Generate report] │
├── Report output ────────────────────────────────────────────────────┤
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Attendance report · May 2026 │ │
│ │ Events included: AI in Pedagogy, Quality NEP │ │
│ │ │ │
│ │ Total registered: 288 │ │
│ │ Total attended (≥75%): 241 (83.7%) │ │
│ │ Certificates issued: 220 │ │
│ │ │ │
│ │ [Bar chart: daily attendance across events] │ │
│ │ │ │
│ │ [Download PDF] [Export CSV] │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
11. Role × module access matrix#
│Public│Account│Admin│SPOC│Faculty│Student│Participant│Writer│EventMgr│
─────────────────────┼──────┼───────┼─────┼────┼───────┼───────┼───────────┼──────┼────────┤
SUPER_ADMIN │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │
SW_ADMIN │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │ ✓ │
SPOC │ ✓ │ ✓ │ ✗ │ ✓ │ ✗ │ ✗ │ ✗ │ ✗ │ ✗ │
FACULTY │ ✓ │ ✓ │ ✗ │ ✗ │ ✓ │ ✗ │ ✗ │ ✗ │ ✗ │
STUDENT │ ✓ │ ✓ │ ✗ │ ✗ │ ✗ │ ✓ │ ✗ │ ✗ │ ✗ │
TRAINER │ ✓ │ ✓ │ ✗ │ ✗ │ ✗ │ ✗ │ ✗ │ ✗ │ ✗ │
BLOG_WRITER │ ✓ │ ✓ │ ✗ │ ✗ │ ✗ │ ✗ │ ✗ │ ✓ │ ✗ │
EVENT_MANAGER │ ✓ │ ✓ │ ✗ │ ✗ │ ✗ │ ✗ │ ✗ │ ✗ │ ✓ │
PARTICIPANT / USER │ ✓ │ ✓ │ ✗ │ ✗ │ ✗ │ ✗ │ ✓ │ ✗ │ ✗ │
Guard: apps/web/src/middleware.ts (ROLE_GUARDS) + server-side auth() in every layout.
Middleware runs before rendering; page-level guard is the second line of defence.
12. Critical flows#
12a. Login → role routing#
[Visitor] ─→ /auth/login
│
│ submit credentials
▼
┌───────────────────────────┐
│ NextAuth.authorize │
│ - zod schema.parse │
│ - User.findUnique(email) │
│ - bcrypt.compare │
│ - emailVerified check │
│ - isActive check │
└───────────────────────────┘
│ ok │ fail
│ └─→ CredentialsSignin error → /auth/error
▼
┌───────────────────────────┐
│ jwt callback │
│ attach: id, role, tenant │
└───────────────────────────┘
│
▼
/dashboard ─→ switch(role)
SUPER_ADMIN, SW_ADMIN → /admin
SPOC → /spoc
FACULTY → /faculty
STUDENT → /student
BLOG_WRITER → /writer
EVENT_MANAGER → /events-mgr
PARTICIPANT, USER → /participant
2FA gate (if enabled):
After jwt callback → 2FA token NOT yet verified
→ redirect to /auth/2fa-verify
→ success → set 2fa_verified in session → /dashboard
12b. Registration flow#
[/auth/register]
│ name, email, phone, password, role_requested
▼
user.create(emailVerified: false)
│
emailOtp.send(email)
│
→ /auth/verify-otp
│ 6-digit OTP
▼
user.update(emailVerified: true)
│
→ /onboarding (5-step wizard)
│ completion
▼
/dashboard → role-based redirect
12c. Certificate lifecycle#
SPOC ADMIN PUBLIC
──── ───── ──────
/spoc/events/[id]/
certificates/generate
│
│ cert.generateBulk(
│ eventId,
│ eligibility: { attendance ≥ threshold,
│ quizAttempted }
│ )
▼
┌────────────────────┐
│ Certificate.CREATE │ → pdf-gen worker (queue)
│ hash = sha256(data)│ → S3 upload
│ status: ISSUED │
└────────────────────┘
│
│ audit_logs.CREATE(CERT_ISSUED)
│
│ ╳ wrongly issued
│ ▼
│ /admin/certificates/registry → [Revoke]
│ ▶ status: REVOKED
│ ▶ revokedAt, revokedBy, revokedReason
│ ▶ audit_logs.CREATE(CERT_REVOKE)
│ ▶ one-way (no un-revoke in UI)
│
▼ ▼
/spoc/certificates /verify/[certNumber]
(tenant-scoped list) sha256 re-compute:
matches stored hash → ISSUED
mismatch → TAMPERED
status = REVOKED → REVOKED
not in DB → NOT_FOUND
12d. Account deletion (DPDP / GDPR)#
USER ADMIN
──── ─────
/account/delete
│ "type DELETE" confirmed
▼
AccountDeletionRequest.create(
userId,
scheduledAt = now + 7 days,
status = PENDING,
reason?
)
audit_log.CREATE(DELETION_REQUESTED)
│
│ User can cancel anytime before approval:
│ cancelDeletion() → status = CANCELLED
│
│ 7-day cool-off expires
│ /admin/deletions
│ ▼
│ [Approve]
│ │
│ ▼
│ user.anonymise(
│ name="Deleted User",
│ email=null, phone=null,
│ avatar=null, bio=null
│ )
│ user.isActive = false
│ audit_log.CREATE(DELETION_APPROVED)
│
│ [Reject]
│ ▼
│ status = REJECTED
│ audit_log.CREATE(DELETION_REJECTED)
│ email sent to user with reason
12e. SPOC application 4-step ATAL wizard#
Step 1 Coordinator → Step 2 Institute → Step 3 FDP details → Step 4 Submit
Step 2 branching:
AICTE-approved?
YES → enter PID
NO → ATAL ID?
YES → enter ATAL ID
NO → ⚠ admin approval gate (application stays DRAFT)
Step 4 OTP submit:
emailOtp.send(coordinatorEmail)
otp.verify(code)
application.status = SUBMITTED
→ admin /admin/approvals queue
Admin actions:
Approve → event.status = UPCOMING, SPOC notified
Reject → REJECTED + reason, SPOC notified
Changes → REQUEST_CHANGES, SPOC can edit + resubmit
12f. Faculty host-gate (profile completion)#
Profile % Host FDP (≥60) Create course (≥75)
0–59 🔒 locked 🔒 locked
60–74 ✓ unlocked 🔒 locked
75+ ✓ unlocked ✓ unlocked
Locked CTA: shows tooltip "Complete your profile to unlock"
links to /account/profile/edit
Completion % computed server-side in ProfileService.getCompletion()
Fields weighted: name(5) phone(10) bio(15) experience(20)
education(15) skills(10) photo(10) headline(15)
12g. Payment flow#
[User clicks Register / Enrol]
│
▼ (if paid event/course)
Razorpay checkout opens (client-side SDK)
│
│ Payment success (Razorpay callback)
▼
POST /api/payments/verify
│ verifySignature(razorpay_payment_id,
│ razorpay_order_id,
│ razorpay_signature)
▼
┌─ verified ─┐ ┌─ failed ─┐
│ │ │ │
▼ │ ▼ │
Registration.create(CONFIRMED) toast: "Payment failed. Try again."
Invoice.create(PDF queued) log to audit
audit_log.CREATE(PAYMENT_SUCCESS)
email confirmation to user
│
▼
webhook (Razorpay → /api/webhooks/razorpay)
events: payment.captured / payment.failed / refund.created
idempotency key per orderId
13. Component vocabulary#
| Component | Role | Locations |
|---|---|---|
PageHeader | h1 + subtitle | every dashboard page |
KpiCard | icon + label + value tile | dashboards |
Sidebar + ICON_MAP | left nav, role-aware | DashboardShell |
DashboardTopbar | search, notifications, avatar | DashboardShell |
PublicHeader / PublicFooter | marketing chrome | PublicShell |
AnnouncementBanner | admin-editable banner | PublicShell |
MegaNav | 8-tile explore dropdown | PublicHeader |
ProfileCompletionRing | circular % + missing-items list | account, faculty |
HostGate | wraps locked CTAs with tooltip | faculty quick actions |
EmptyState | friendly fallback with CTA | every list |
Toast | transient feedback | system-wide (see §15) |
ConfirmDialog | destructive action gate | delete, revoke, cancel |
Skeleton | loading placeholder | every data-fetch |
DataTable | sortable/filterable table | admin lists |
FileUpload | drag-drop + progress | forms |
RichTextEditor | TipTap instance | post editor, FAQ editor |
QuestionPalette | colour-coded MCQ nav | quiz take |
CertificateCard | issued cert display + actions | account/certs, SPOC |
EventCard | event summary tile | lists, home |
ProfileCard | avatar + meta + CTA | public profile, mentorship |
Button / Input / Select / Textarea | ui/ atoms | all forms |
Badge | status / role chip | tables |
Tabs | horizontal tab switcher | detail pages |
Drawer | sliding side panel | user actions, filters |
Modal | centered overlay | confirmations, quick edits |
Breadcrumb | page location trail | blog post, courses |
14. Form validation rules#
| Field | Rule | Error message |
|---|---|---|
| RFC5322 + uniqueness check | "Enter a valid email address" | |
| Password | ≥ 8 chars, 1 upper, 1 digit, 1 special | "Password must be at least 8 characters with uppercase, digit, and special character" |
| Phone | 10 digits, Indian format | "Enter a valid 10-digit mobile number" |
| Name | 2–80 chars, letters/spaces | "Enter your full name" |
| Bio/Headline | 20–280 chars | "Bio must be between 20 and 280 characters" |
| Handle | 3–30 chars, [a-z0-9-] only, no leading/trailing - | "Handle can only contain lowercase letters, numbers, and hyphens" |
| Certificate number | Regex: SW-\d{4}-[A-Z0-9]+-\d{4} | "Enter a valid certificate number" |
| OTP | 6 digits, expires 10 min | "Invalid or expired OTP" |
| MCQ time | Auto-submit on 00:00 | — |
| File uploads | PDF ≤ 10MB, Image ≤ 5MB, allowed types enforced client + server | "File too large" / "File type not allowed" |
| Deletion confirm | must type DELETE exactly | "Type DELETE to confirm" |
| Announcement text | ≤ 140 chars | "140 character limit" (live counter) |
| GDPR reason | 0–500 chars | optional |
15. Toast / notification patterns#
All transient feedback uses a <Toaster /> mounted in root layout (top-right, z-100).
| Type | When | Auto-dismiss |
|---|---|---|
success (green) | Form saved, cert downloaded, test submitted | 4s |
error (red) | API error, validation failed, upload rejected | 8s (with retry link if applicable) |
warning (amber) | File size near limit, session expiring in 5 min | 6s |
info (blue) | Background job started, CSV export queued | 4s |
loading (spinner) | PDF generating, bulk cert issuing | Dismissed on completion |
Examples:
✅ Profile saved successfully❌ Failed to revoke certificate. Please try again.⚠ Your session expires in 5 minutes. [Stay signed in]🔄 Generating certificates… you'll be notified when ready.
16. Loading / skeleton states#
Every page that fetches data shows skeletons instead of blank white:
Dashboard KPI strip (loading):
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ ▓▓▓▓▓▓▓▓▓▓▓ │ │ ▓▓▓▓▓▓▓▓▓▓▓ │ │ ▓▓▓▓▓▓▓▓▓▓▓ │
│ ▓▓▓▓ │ │ ▓▓▓▓ │ │ ▓▓▓▓ │
└──────────────┘ └──────────────┘ └──────────────┘
Table row skeleton (repeated × 5):
┌─────────────────────────────────────────────────────┐
│ ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ │
└─────────────────────────────────────────────────────┘
Profile card skeleton:
╭──────╮
│▓▓▓▓▓▓│ ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
│▓▓▓▓▓▓│ ▓▓▓▓▓▓▓▓▓▓▓▓▓
╰──────╯ ▓▓▓▓▓▓▓▓▓
Infinite scroll lists (events, jobs, blogs): append skeletons at bottom during next-page fetch.
17. Error pages#
17a. 404 Not Found#
┌── PublicShell ──────────────────────────────────────────────────────┐
│ │
│ [404 illustration — open book with question mark] │
│ │
│ Page not found │
│ The page you're looking for doesn't exist or │
│ has been moved. │
│ │
│ [← Go home] [Browse events] │
│ │
└─────────────────────────────────────────────────────────────────────┘
17b. 403 Forbidden / Role mismatch — /auth/forbidden#
│ You don't have permission to view this page. │
│ You are signed in as: Priya Menon (FACULTY) │
│ This page requires: ADMIN or SPOC │
│ [← Back] [Sign in as a different account] │
17c. 500 Server Error#
│ Something went wrong on our side. │
│ Our team has been notified. Reference: ERR-2026-05-27-8a3f │
│ [Try again] [← Go home] [Status page →] │
17d. Maintenance mode#
│ [logo] │
│ Scrollwell is under maintenance │
│ We'll be back shortly. Follow @scrollwell for updates. │
│ Expected completion: 28 May 2026 02:00 IST │
17e. Auth error — /auth/error#
│ Login failed │
│ Possible reasons: │
│ • Incorrect email or password │
│ • Account not verified — check your inbox │
│ • Account deactivated — contact support │
│ [Try again] [Forgot password?] │
18. Mobile layout notes (< 768px)#
Responsive breakpoints:
| Breakpoint | Width | Layout change |
|---|---|---|
sm | 640px | Single-column cards |
md | 768px | 2-col grids, sidebar becomes drawer |
lg | 1024px | 3-col grids, full sidebar |
Key mobile adaptations:
- Public pages: hero CTAs stack vertically; stats strip scrolls horizontally; mega-nav becomes full-screen drawer (§1a)
- Dashboard: sidebar collapses to bottom nav (4 icons); topbar shows only logo + bell + avatar
- Event detail: registration card moves below hero; tabs scroll horizontally
- Course player: sidebar curriculum hidden by default; toggle via bottom sheet
- MCQ test: question palette collapses to bottom sheet; timer stays sticky top
- Data tables: horizontal scroll with sticky first column; row action menus remain as ⋯ tap
- Forms: all inputs full-width; multi-column fields stack to single column
- Modals: full-screen on mobile (no overlay, feels like a page push)
19. Accessibility annotations#
- Focus ring:
focus-visible:ring-2 focus-visible:ring-offset-2on all interactive elements - Skip link:
<a href="#main-content" class="sr-only focus:not-sr-only">Skip to content</a>in all shells - Screen reader labels:
- Icon-only buttons →
aria-label - Status indicators (✅❌⚠) →
role="status"with text alternative - Star ratings →
aria-label="4.8 out of 5 stars" - Progress bars →
role="progressbar" aria-valuenow aria-valuemin aria-valuemax
- Icon-only buttons →
- ARIA live regions:
aria-live="polite"on Toast container; quiz timeraria-live="off"(avoid interruptions) - Keyboard navigation:
- Mega-nav:
Escapecloses dropdown - Modal: focus trapped inside;
Escapecloses - Data tables:
Tabto next row action;Enterto activate ⋯ menu - MCQ:
1–4keys select option A–D;Nnext;Pprevious;Mmark for review
- Mega-nav:
- Color contrast: minimum 4.5:1 for normal text, 3:1 for large text (WCAG AA)
- Form errors:
aria-describedbylinks input to error message;aria-invalid="true"on failing fields - Image alt text: all decorative images
alt=""; informational images have descriptive alt
20. System-wide design tokens#
Colours (CSS variables):
--color-brand-primary: #5046E5 (Indigo 600)
--color-brand-secondary: #7C3AED (Violet 600)
--color-success: #16A34A (Green 600)
--color-warning: #D97706 (Amber 600)
--color-danger: #DC2626 (Red 600)
--color-info: #2563EB (Blue 600)
--color-surface: #FFFFFF
--color-surface-muted: #F9FAFB
--color-border: #E5E7EB
--color-text-primary: #111827
--color-text-secondary: #6B7280
Typography:
Font: Inter (variable), fallback: system-ui, sans-serif
Heading scale: 4xl 36px / 3xl 30px / 2xl 24px / xl 20px / lg 18px / base 16px
Body: 16px / 1.5 line-height
Code: JetBrains Mono (monospace)
Spacing: 4px base unit (Tailwind default scale)
Border radius:
Button: rounded-md (6px)
Card: rounded-xl (12px)
Modal: rounded-2xl (16px)
Badge: rounded-full
Shadows:
Card: shadow-sm
Modal: shadow-xl
Dropdown: shadow-lg
Animations:
Transitions: 150ms ease for colour/opacity, 200ms ease for transforms
Skeleton shimmer: 1.5s linear infinite background-position
Toast enter: translateY + fade 200ms; exit: fade 150ms
21. API endpoint map (per-role summary)#
| Prefix | Handler | Auth |
|---|---|---|
POST /api/auth/* | NextAuth handlers | public |
GET/POST /api/events | event CRUD | varies |
GET /api/events/[code] | public event detail | public |
POST /api/events/[code]/register | registration | any role |
GET/POST /api/certificates | issue / list | SPOC, ADMIN |
POST /api/certificates/verify | public verify | public |
PATCH /api/certificates/[id]/revoke | revoke | ADMIN |
GET/POST /api/admin/users | user CRUD | ADMIN |
POST /api/admin/users/[id]/reset-password | reset | ADMIN |
GET/POST /api/spoc/events/[id]/attendance | attendance | SPOC |
GET/POST /api/spoc/events/[id]/questions | MCQ bank | SPOC |
POST /api/participant/assessment/[id]/submit | quiz submit | PARTICIPANT |
GET/POST /api/payments | payment intent / history | authenticated |
POST /api/webhooks/razorpay | payment webhook | Razorpay IP allowlist |
GET/POST /api/writer/posts | post CRUD | BLOG_WRITER, ADMIN |
GET /api/admin/audit | audit log | ADMIN |
POST /api/account/delete | deletion request | owner |
Middleware stack:
- Rate limiting (Upstash Redis) — 100 req/min per IP for public, 300 for auth
auth()from NextAuth — attaches sessionROLE_GUARDSmap — returns 403 if role insufficient- Route handler — business logic
22. Critical edge cases & guards#
| Scenario | Handling |
|---|---|
| User accesses SPOC page without SPOC role | Middleware → /auth/forbidden |
| SPOC submits FDP without institute PID, no ATAL ID | Application stuck at PENDING_ADMIN_APPROVAL — admin must unblock |
| Participant takes MCQ, browser closes mid-test | Answers saved per-question server-side on PATCH /api/participant/assessment/[id]/answer; on reconnect, resumes from last saved state |
| Certificate generated but PDF worker fails | Cert row created, pdfStatus: PENDING; retry job every 5 min up to 3 attempts; email admin if all fail |
| Admin revokes cert after participant shared on LinkedIn | LinkedIn preview cached — revocation note shown on /verify/[certNumber] |
| Two SPOCs submit same participant to same FDP | Unique constraint on (participantId, eventId); second submission returns 409 |
| OAuth login with already-registered email | Merge account — attach OAuth provider to existing user record (not duplicate) |
| Deletion request while active FDP enrolment | Warning shown: "You are enrolled in an active FDP. Deletion will proceed after it ends or after cooling-off." |
| Payment success webhook arrives before client redirect | Idempotency key prevents duplicate registration creation |
| Profile completion drops below host threshold (e.g. user removes phone) | HostGate re-evaluates on dashboard load; existing hosted events unaffected |
23. Backlog / open items#
| ID | Description | Blocker |
|---|---|---|
| BUG-01 | Multi-DB Supabase audit | Needs env list |
| BUG-03 | College-ID upload + admin verify | Needs Storage setup |
| BUG-07 | Portfolio TipTap rich-text editor | Needs library wire |
| FEAT-01 | Dark mode toggle | Design tokens ready; theme provider not wired |
| FEAT-02 | Hindi / regional language UI | i18n library (next-intl) to integrate |
| FEAT-03 | Live transcript for Zoom sessions | Zoom API webhook |
| FEAT-04 | AI-powered content suggestions in post editor | Anthropic API integration |
| FEAT-05 | SCORM 1.2 course import | Parser + player needed |
| FEAT-06 | LinkedIn certificate auto-share | LinkedIn API OAuth |
| FEAT-07 | QR-code attendance marking | QR generation + camera scan |
| FEAT-08 | Proctored MCQ (camera) | WebRTC + proctoring service |
| FEAT-09 | Mobile app (React Native) | Separate repo |
| PERF-01 | Virtual scroll for 4k+ user table | @tanstack/virtual |
| A11Y-01 | Screen-reader audit pass | Axe-core CI integration |
Last updated: 2026-05-27. Generated from route tree at apps/web/src/app/**/page.tsx.
To refresh the sitemap section:
find apps/web/src/app -name "page.tsx" | sed 's|apps/web/src/app||;s|/page.tsx||' | sort