Banner
Add a concise subheading about your product or business to your students.
| <!-- ===================================================================== |
| PERSONALIZED PD PATHWAY — QUIZ WIDGET |
| Paste this into a Thinkific custom page (theme code / HTML block). |
| Set the page to "private" so only logged-in users can reach it. |
| Fill in the three CONFIG blocks marked TODO, then add your BACKEND_URL. |
| ===================================================================== --> |
| <!-- 1) LOGGED-IN USER (Liquid). |
| This only renders if the page is processed through Thinkific's theme/Liquid. |
| If you see literal {{ }} on the page, you're in a non-Liquid block — move the |
| widget into a theme template, or collect the email from a confirmation field. --> |
| <script> |
| window.THINKIFIC_USER = { |
| id: "{{ site.current_user.id }}", |
| email: "{{ site.current_user.email }}", |
| name: "{{ site.current_user.first_name }} {{ site.current_user.last_name }}" |
| }; |
| // Fallback for previewing this file outside Thinkific: |
| if (!window.THINKIFIC_USER.id || window.THINKIFIC_USER.id.indexOf("{{") === 0) { |
| window.THINKIFIC_USER = { id: "PREVIEW", email: "[email protected]", name: "Preview Teacher" }; |
| } |
| // 2) COMPLETED COURSES (phase 2 — exclude classes the teacher already finished). |
| // Leave empty for now. Later, populate from Liquid or a backend call. |
| // Values are Thinkific COURSE IDs as strings. |
| window.COMPLETED_COURSE_IDS = [ |
| // "123456", "234567" |
| ]; |
| </script> |
| <div id="pd-quiz"></div> |
| <style> |
| #pd-quiz { max-width: 720px; margin: 0 auto; font-size: 16px; line-height: 1.6; } |
| #pd-quiz h2 { font-size: 22px; font-weight: 600; margin: 0 0 8px; } |
| #pd-quiz .sub { color: #555; margin: 0 0 24px; } |
| #pd-quiz .q { padding: 16px 0; border-bottom: 1px solid #e5e5e5; } |
| #pd-quiz .q p { margin: 0 0 10px; font-weight: 500; } |
| #pd-quiz .scale { display: flex; gap: 6px; flex-wrap: wrap; } |
| #pd-quiz .scale label { flex: 1; min-width: 64px; text-align: center; padding: 8px 4px; |
| border: 1px solid #ccc; border-radius: 8px; cursor: pointer; font-size: 13px; } |
| #pd-quiz .scale input { display: none; } |
| #pd-quiz .scale input:checked + span { font-weight: 600; } |
| #pd-quiz .scale label:has(input:checked) { border-color: #0F6E56; background: #E1F5EE; } |
| #pd-quiz .field { margin: 0 0 24px; } |
| #pd-quiz select, #pd-quiz button { font-size: 16px; padding: 10px 14px; border-radius: 8px; } |
| #pd-quiz select { border: 1px solid #ccc; width: 100%; max-width: 320px; } |
| #pd-quiz button { background: #0F6E56; color: #fff; border: 0; cursor: pointer; margin-top: 24px; } |
| #pd-quiz button:disabled { opacity: .5; cursor: default; } |
| #pd-quiz .plan-domain { margin: 20px 0 8px; font-weight: 600; } |
| #pd-quiz .plan-course { padding: 10px 14px; border: 1px solid #e5e5e5; border-radius: 8px; margin: 6px 0; } |
| #pd-quiz .err { color: #A32D2D; } |
| </style> |
| <script> |
| (function () { |
| "use strict"; |
| /* ===================================================================== |
| CONFIG A — GRADE LEVELS (populated from your class list) |
| ===================================================================== */ |
| var GRADE_LEVELS = [ |
| { key: "ec", label: "Early Childhood" }, |
| { key: "le", label: "Lower Elementary" }, |
| { key: "ue", label: "Upper Elementary" }, |
| { key: "hs", label: "High School" } |
| ]; |
| /* ===================================================================== |
| CONFIG B — QUESTIONS |
| Three per domain. `level` is "basic", "intermediate", or "advanced". |
| Do NOT change the `domain` keys — the engine relies on them. |
| ===================================================================== */ |
| var DOMAINS = { |
| instruction: "Instruction", |
| planning: "Planning", |
| classroom: "Classroom Environment", |
| wholechild: "The Whole Child" |
| }; |
| var QUESTIONS = [ |
| { domain: "instruction", level: "basic", text: "I have reliable ways to know whether every student understood, not just the ones with their hands up." }, |
| { domain: "instruction", level: "intermediate", text: "I use questioning and discussion to push students\u2019 thinking, not just to check for the right answer." }, |
| { domain: "instruction", level: "advanced", text: "When a lesson isn\u2019t landing, I can adjust on the spot to reach the students in front of me." }, |
| { domain: "planning", level: "basic", text: "My lessons are built backward from a clear picture of what students should walk away knowing." }, |
| { domain: "planning", level: "intermediate", text: "My assessments and activities line up directly with the goals I set for the lesson." }, |
| { domain: "planning", level: "advanced", text: "I plan with the range of learners in my room in mind, so the material reaches different levels." }, |
| { domain: "classroom", level: "basic", text: "My classroom runs on routines and expectations that students understand and respect." }, |
| { domain: "classroom", level: "intermediate", text: "I redirect off-task or disruptive behavior calmly, without losing the flow of the lesson." }, |
| { domain: "classroom", level: "advanced", text: "Students in my room feel safe to participate, take risks, and make mistakes." }, |
| { domain: "wholechild", level: "basic", text: "I can tell when a student\u2019s behavior is signaling something deeper \u2014 emotional, social, or at home." }, |
| { domain: "wholechild", level: "intermediate", text: "I build relationships with students that make them comfortable coming to me when something\u2019s wrong." }, |
| { domain: "wholechild", level: "advanced", text: "I know how to respond to a struggling student in a way that supports them and points toward the right help." } |
| ]; |
| /* ===================================================================== |
| CONFIG C — COURSE CATALOG (generated from your matched classes) |
| Four domains (Professional Responsibilities removed from the quiz). |
| Ordered most basic -> most advanced; within a difficulty, by rating (1 first). |
| Fill the Rating column in the sheet to control ties, then re-generate. |
| ===================================================================== */ |
| var COURSE_CATALOG = { |
| ec: { |
| instruction: [ |
| { id: 2361026, slug: "aleph-bais-in-action", rating: null, title: "Aleph Bais in Action" }, |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part I" }, |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part II" }, |
| { id: 2365834, slug: "The-Teacher-as-the-Master-Communicator", rating: null, title: "The Teacher as the Master Communicator" }, |
| { id: 2366931, slug: "Deciphering-the-Dots-in-Kriah", rating: null, title: "Deciphering the Dots in Kriah" }, |
| { id: 3434689, slug: "kabalosh-hatorah-rav-kaplan", rating: null, title: "Kabbalas Hatorah in Ourselves & in Our Talmidim" }, |
| { id: 3353509, slug: "music-and-movement-in-teaching", rating: null, title: "The Preschool Experience: Integrating Music & Movement into Everyday Teaching" }, |
| { id: 2360748, slug: "the-underachiever", rating: null, title: "The Underachiever" }, |
| { id: 3100995, slug: "aleph-plus-kriah-course", rating: null, title: "Aleph Plus Course Part I" }, |
| { id: 3162708, slug: "executive-function", rating: null, title: "Develop Executive Function Through Direct Instruction" }, |
| ], |
| planning: [ |
| { id: 2361026, slug: "aleph-bais-in-action", rating: null, title: "Aleph Bais in Action" }, |
| { id: 2550842, slug: "multi-sensory-kriah", rating: null, title: "Multi-Sensory Kriah" }, |
| { id: 2361541, slug: "preschool-by-design", rating: null, title: "Preschool by Design" }, |
| { id: 2366931, slug: "Deciphering-the-Dots-in-Kriah", rating: null, title: "Deciphering the Dots in Kriah" }, |
| { id: 3100995, slug: "aleph-plus-kriah-course", rating: null, title: "Aleph Plus Course Part I" }, |
| ], |
| classroom: [ |
| { id: 3340889, slug: "responses-to-misbehavior", rating: null, title: "Responses to Misbehavior" }, |
| { id: 2367958, slug: "awakening-greatness", rating: null, title: "Awakening Greatness" }, |
| { id: 2369215, slug: "management-without-manipulation-1", rating: null, title: "Management without Manipulation Part I" }, |
| { id: 2369216, slug: "management-without-manipulation-2", rating: null, title: "Management without Manipulation Part II" }, |
| { id: 2369698, slug: "management-without-manipulation-3", rating: null, title: "Management without Manipulation Part III" }, |
| { id: 2360985, slug: "nobody-cries-on-the-first-day", rating: null, title: "Nobody Cries on the First Day" }, |
| { id: 3217142, slug: "whatever-we-stress-we-get-more-of", rating: null, title: "Whatever We Stress We Get More Of" }, |
| ], |
| wholechild: [ |
| { id: 2363300, slug: "making-the-classroom-a-safe-home", rating: null, title: "Making the Classroom a Safe Home" }, |
| { id: 2365108, slug: "better-behavior-now", rating: null, title: "Better Behavior Now" }, |
| { id: 2366565, slug: "the-outlier", rating: null, title: "The Outlier" }, |
| { id: 2368223, slug: "A-Relationship-Prequisite-to-all-Learning", rating: null, title: "A Relationship: Prequisite to all Learning" }, |
| { id: 2360197, slug: "connect-the-dots-of-misbehavior", rating: null, title: "Connect the Dots of Misbehavior" }, |
| { id: 2366913, slug: "Demystifying-Social-Success", rating: null, title: "Demystifying Social Success" }, |
| { id: 2360223, slug: "I-Can-Solve-My-Behavioral-Challenge", rating: null, title: "I Can Solve My Behavioral Challenge" }, |
| { id: 2362064, slug: "making-it-always-1on1", rating: null, title: "Making It Always 1:1" }, |
| { id: 2365497, slug: "The-Teacher-The-Best-Interventionist", rating: null, title: "The Teacher: The Best Interventionist." }, |
| { id: 2362077, slug: "Bigger-Brains-than-Youd-Think", rating: null, title: "Bigger Brains than You'd Think" }, |
| { id: 2366395, slug: "from-stress-to-success-1", rating: null, title: "From Stress to Success - Part I" }, |
| { id: 2366494, slug: "from-stress-to-success-2", rating: null, title: "From Stress to Success - Part II" }, |
| { id: 2361972, slug: "socially-savvy", rating: null, title: "Socially Savvy" }, |
| { id: 2365209, slug: "Support-Positive-Friendships", rating: null, title: "Support Positive Friendships" }, |
| { id: 2631052, slug: "the-connection-experience", rating: null, title: "The Connection Experience Part 1" }, |
| { id: 2631052, slug: "the-connection-experience", rating: null, title: "The Connection Experience Part 2" }, |
| { id: 2366433, slug: "The-Very-Very-Child-in-the-Classroom", rating: null, title: "The very-very child in the classroom -" }, |
| { id: 2365566, slug: "when-nothing-works", rating: null, title: "When Nothing Works" }, |
| ], |
| }, |
| le: { |
| instruction: [ |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part I" }, |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part II" }, |
| { id: 2365536, slug: "Making-the-Siddur-Come-Alive", rating: null, title: "Making the Siddur Come Alive:" }, |
| { id: 2355276, slug: "the-new-norm-i-love-chumash-2", rating: null, title: "The New Norm: I Love Chumash - Grade 2" }, |
| { id: 2358191, slug: "the-new-norm-i-love-chumash-3-4", rating: null, title: "The New Norm: I Love Chumash - Grade 3-4" }, |
| { id: 2365834, slug: "The-Teacher-as-the-Master-Communicator", rating: null, title: "The Teacher as the Master Communicator" }, |
| { id: 2366818, slug: "Yomim-Noraim-Demystified", rating: null, title: "Yomim Noraim: Demystified" }, |
| { id: 2360205, slug: "all-hands-up", rating: null, title: "All Hands Up" }, |
| { id: 2366931, slug: "Deciphering-the-Dots-in-Kriah", rating: null, title: "Deciphering the Dots in Kriah" }, |
| { id: 2366585, slug: "Every-Student-Every-Lesson-Every-Day", rating: null, title: "Every Student, Every Lesson, Every Day" }, |
| { id: 3430921, slug: "finish-the-year-lower-elem-rebbeim", rating: null, title: "Finishing the Year with a Flourish and Impact - Lower Elementary Rebbeim" }, |
| { id: 3412663, slug: "Pesach-to-Shavuos-sefirah-message", rating: null, title: "From Pesach to Shavuos: The Sefirah Message" }, |
| { id: 3434689, slug: "kabalosh-hatorah-rav-kaplan", rating: null, title: "Kabbalas Hatorah in Ourselves & in Our Talmidim" }, |
| { id: 3360507, slug: "purim-deeper-meaning", rating: null, title: "Purim\u2019s Deeper Meaning for Our Generation" }, |
| { id: 2366817, slug: "Teach-Them-How-to-Think", rating: null, title: "Teach Them How to Think" }, |
| { id: 2360748, slug: "the-underachiever", rating: null, title: "The Underachiever" }, |
| { id: 3412915, slug: "antisemitism-today-2026", rating: null, title: "When History Feels Present" }, |
| { id: 3100995, slug: "aleph-plus-kriah-course", rating: null, title: "Aleph Plus Course Part I" }, |
| { id: 3167010, slug: "connection-within-content", rating: null, title: "Connection within Content" }, |
| { id: 3162708, slug: "executive-function", rating: null, title: "Develop Executive Function Through Direct Instruction" }, |
| { id: 2361890, slug: "in-it-to-win-it", rating: null, title: "In It to Win It: Active Learning Debunked" }, |
| { id: 2362043, slug: "lots-of-loaded-questions", rating: null, title: "Lots of Loaded Questions" }, |
| { id: 3208135, slug: "managing-the-details-in-chumash", rating: null, title: "Managing the Details in Chumash" }, |
| { id: 2367937, slug: "more-retention", rating: null, title: "More Retention" }, |
| { id: 2360800, slug: "simply-chumash", rating: null, title: "Simply Chumash" }, |
| { id: 2368478, slug: "total-participation", rating: null, title: "Total Participation Techniques" }, |
| { id: 2367932, slug: "Tough-Talks-Made-Easy", rating: null, title: "Tough Talks Made Easy" }, |
| ], |
| planning: [ |
| { id: 2360169, slug: "lessons-by-design", rating: null, title: "Lessons by Design" }, |
| { id: 2360823, slug: "all-inclusive-yahadus", rating: null, title: "All Inclusive Yahadus" }, |
| { id: 2368492, slug: "Design-Their-Learning-Journey-For-Dynamite-Results-1", rating: null, title: "Design Their Learning Journey -For Dynamite Results Part I" }, |
| { id: 2369101, slug: "design-their-learning-journey-for-dynamite-results-2", rating: null, title: "Design Their Learning Journey -For Dynamite Results Part II" }, |
| { id: 2369116, slug: "design-their-learning-journey-for-dynamite-results-3", rating: null, title: "Design Their Learning Journey -For Dynamite Results Part III" }, |
| { id: 2360235, slug: "Thinking-is-IN", rating: null, title: "Thinking is IN" }, |
| ], |
| classroom: [ |
| { id: 3340889, slug: "responses-to-misbehavior", rating: null, title: "Responses to Misbehavior" }, |
| { id: 2359306, slug: "The-Classroom-with-No-Ooooohs", rating: null, title: "The Classrooom with No Oooohs!" }, |
| { id: 2367958, slug: "awakening-greatness", rating: null, title: "Awakening Greatness" }, |
| { id: 3311416, slug: "kind-and-firm", rating: null, title: "From Chaos to Calm Intro: Kind and Firm" }, |
| { id: 3324254, slug: "managing-chutzpah", rating: null, title: "From Chaos to Calm: Part 1 Managing chutzpa" }, |
| { id: 3324262, slug: "positive-reinforcement", rating: null, title: "From Chaos to Calm: Part 2 Resetting expectations, positive reinforcement" }, |
| { id: 3340889, slug: "responses-to-misbehavior", rating: null, title: "From Chaos to Calm: Part 3 Responses to Misbehavior" }, |
| { id: 2369215, slug: "management-without-manipulation-1", rating: null, title: "Management without Manipulation Part I" }, |
| { id: 2369216, slug: "management-without-manipulation-2", rating: null, title: "Management without Manipulation Part II" }, |
| { id: 2369698, slug: "management-without-manipulation-3", rating: null, title: "Management without Manipulation Part III" }, |
| { id: 3324291, slug: "principal-role-classroom-management", rating: null, title: "A Principal's Role in Classroom Management" }, |
| { id: 3324262, slug: "positive-reinforcement", rating: null, title: "Resetting Expectations & Positive Enforcement" }, |
| { id: 2539269, slug: "the-flexible-classroom-part-i", rating: null, title: "The Flexible Classroom Part I" }, |
| { id: 2369699, slug: "the-flexible-classroom-2", rating: null, title: "The Flexible Classroom Part II" }, |
| ], |
| wholechild: [ |
| { id: 2363300, slug: "making-the-classroom-a-safe-home", rating: null, title: "Making the Classroom a Safe Home" }, |
| { id: 2365108, slug: "better-behavior-now", rating: null, title: "Better Behavior Now" }, |
| { id: 2363318, slug: "i-like-learning-here", rating: null, title: "I Like Learning Here" }, |
| { id: 2366938, slug: "nervous-no-more", rating: null, title: "Nervous No More" }, |
| { id: 2366565, slug: "the-outlier", rating: null, title: "The Outlier" }, |
| { id: 2359076, slug: "5-ways-to-become-a-motivator", rating: null, title: "5 Ways to Become a Motivator" }, |
| { id: 2368223, slug: "A-Relationship-Prequisite-to-all-Learning", rating: null, title: "A Relationship: Prequisite to all Learning" }, |
| { id: 2360197, slug: "connect-the-dots-of-misbehavior", rating: null, title: "Connect the Dots of Misbehavior" }, |
| { id: 2368491, slug: "culture-the-basis-of-a-classroom", rating: null, title: "Culture: The Basis of a classroom" }, |
| { id: 2366913, slug: "Demystifying-Social-Success", rating: null, title: "Demystifying Social Success" }, |
| { id: 3383324, slug: "helping-child-adhd-succeed", rating: null, title: "Helping the ADHD Child Succeed" }, |
| { id: 2360223, slug: "I-Can-Solve-My-Behavioral-Challenge", rating: null, title: "I Can Solve My Behavioral Challenge" }, |
| { id: 2367969, slug: "Meeting-the-Emotional-Needs-of-our-Children", rating: null, title: "Meeting the Emotional needs of our children" }, |
| { id: 3381118, slug: "anxious-child-in-the-classroom", rating: null, title: "Supporting the Anxious Child in the Classroom" }, |
| { id: 2368092, slug: "boost-attention-and-focus", rating: null, title: "Boost Attention & Focus" }, |
| { id: 2361776, slug: "Clique-Busting", rating: null, title: "Clique Busting" }, |
| { id: 3162708, slug: "executive-function", rating: null, title: "Executive Function" }, |
| { id: 3171072, slug: "frantic-frenzied-and-fretting", rating: null, title: "Frantic, Frenzied, and Fretting" }, |
| { id: 2366395, slug: "from-stress-to-success-1", rating: null, title: "From Stress to Success - Part I" }, |
| { id: 2366494, slug: "from-stress-to-success-2", rating: null, title: "From Stress to Success - Part II" }, |
| { id: 3162755, slug: "inflexible-and-falling-apart", rating: null, title: "Inflexible and Falling Apart" }, |
| { id: 2368464, slug: "Pairing-students-without-Peer-Rejection", rating: null, title: "Pairing students without Peer Rejection" }, |
| { id: 3217156, slug: "resilience-and-grit", rating: null, title: "Resilience and Grit" }, |
| { id: 3149381, slug: "rethinking-bullying", rating: null, title: "Rethinking Bullying" }, |
| { id: 3359760, slug: "rethinking-bullying-part-two", rating: null, title: "Rethinking Bullying: A Resilience-Based Approach for Today\u2019s Classroom Part 2" }, |
| { id: 3167063, slug: "social-smarts", rating: null, title: "Social Smarts" }, |
| { id: 2361972, slug: "socially-savvy", rating: null, title: "Socially Savvy" }, |
| { id: 2365209, slug: "Support-Positive-Friendships", rating: null, title: "Support Positive Friendships" }, |
| { id: 2366433, slug: "The-Very-Very-Child-in-the-Classroom", rating: null, title: "The very-very child in the classroom -" }, |
| { id: 2365566, slug: "when-nothing-works", rating: null, title: "When Nothing Works" }, |
| { id: 3353499, slug: "worry-walks-into-school-part2", rating: null, title: "When Worry Walks into School: Supporting Anxious Students in the Classroom Part 2" }, |
| { id: 3167085, slug: "who's-afraid-of-the-big-bad-bully", rating: null, title: "Who's Afraid of the Big, Bad, Bully?" }, |
| ], |
| }, |
| ue: { |
| instruction: [ |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part I" }, |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part II" }, |
| { id: 2365536, slug: "Making-the-Siddur-Come-Alive", rating: null, title: "Making the Siddur Come Alive:" }, |
| { id: 2366875, slug: "Teaching-Rashi-Rethink-React-Renew", rating: null, title: "Teaching Rashi: Rethink,React, Renew." }, |
| { id: 2358769, slug: "the-new-norm-i-love-chumash-5-7", rating: null, title: "The New Norm: I Love Chumash - Grade 5-7" }, |
| { id: 2332180, slug: "the-new-norm-i-love-chumash-8", rating: null, title: "The New Norm: I Love Chumash - Grade 8" }, |
| { id: 2365834, slug: "The-Teacher-as-the-Master-Communicator", rating: null, title: "The Teacher as the Master Communicator" }, |
| { id: 2365101, slug: "they-talk-there-are-solutions", rating: null, title: "They Talk. There are Solutions." }, |
| { id: 2366818, slug: "Yomim-Noraim-Demystified", rating: null, title: "Yomim Noraim: Demystified" }, |
| { id: 2360205, slug: "all-hands-up", rating: null, title: "All Hands Up" }, |
| { id: 2360733, slug: "brains-go-busy", rating: null, title: "Brains go Busy" }, |
| { id: 2366585, slug: "Every-Student-Every-Lesson-Every-Day", rating: null, title: "Every Student, Every Lesson, Every Day" }, |
| { id: 3431328, slug: "finish-the-year-upper-elementary-rebbeim", rating: null, title: "Finishing the Year with a Flourish and Impact - Upper Elementary Rebbeim" }, |
| { id: 3412663, slug: "Pesach-to-Shavuos-sefirah-message", rating: null, title: "From Pesach to Shavuos: The Sefirah Message" }, |
| { id: 3434689, slug: "kabalosh-hatorah-rav-kaplan", rating: null, title: "Kabbalas Hatorah in Ourselves & in Our Talmidim" }, |
| { id: 3434712, slug: "making-torah-hers", rating: null, title: "Making Torah Hers" }, |
| { id: 3360507, slug: "purim-deeper-meaning", rating: null, title: "Purim\u2019s Deeper Meaning for Our Generation" }, |
| { id: 2368433, slug: "smart-start-of-a-lesson", rating: null, title: "Smart Start of a Lesson" }, |
| { id: 2360748, slug: "the-underachiever", rating: null, title: "The Underachiever" }, |
| { id: 3412915, slug: "antisemitism-today-2026", rating: null, title: "When History Feels Present" }, |
| { id: 3167010, slug: "connection-within-content", rating: null, title: "Connection within Content" }, |
| { id: 2365546, slug: "creating-independent-learners", rating: null, title: "Creating Independent Learners" }, |
| { id: 3162708, slug: "executive-function", rating: null, title: "Develop Executive Function Through Direct Instruction" }, |
| { id: 2359151, slug: "emunah-in-their-language", rating: null, title: "Emunah in their Language" }, |
| { id: 2365809, slug: "from-huh-to-aha", rating: null, title: "From Huh? to Aha!" }, |
| { id: 2361890, slug: "in-it-to-win-it", rating: null, title: "In It to Win It: Active Learning Debunked" }, |
| { id: 2362043, slug: "lots-of-loaded-questions", rating: null, title: "Lots of Loaded Questions" }, |
| { id: 3208135, slug: "managing-the-details-in-chumash", rating: null, title: "Managing the Details in Chumash" }, |
| { id: 2367937, slug: "more-retention", rating: null, title: "More Retention" }, |
| { id: 2366529, slug: "Navi-vs-Chumash-A-Study-in-Contrasts", rating: null, title: "Navi vs. Chumash: A Study in Contrasts" }, |
| { id: 2366940, slug: "Teaching-Rashi-as-a-Third-Language", rating: null, title: "Teaching Rashi as a Third Language" }, |
| { id: 2362059, slug: "that-works", rating: null, title: "That Works!" }, |
| { id: 2368478, slug: "total-participation", rating: null, title: "Total Participation Techniques" }, |
| { id: 2367932, slug: "Tough-Talks-Made-Easy", rating: null, title: "Tough Talks Made Easy" }, |
| { id: 2362006, slug: "wait-I-cant-write-so-fast", rating: null, title: "Wait! I can't write so fast" }, |
| ], |
| planning: [ |
| { id: 2360169, slug: "lessons-by-design", rating: null, title: "Lessons by Design" }, |
| { id: 2363219, slug: "Halacha-Accurate-Relevant-Engaging", rating: null, title: "Halacha: Accurate, Relevant, Engaging" }, |
| { id: 2360264, slug: "navi-and-me", rating: null, title: "Navi and Me" }, |
| { id: 3365405, slug: "seven-haggadah-tips", rating: null, title: "Seven Effective Teaching Haggadah Tips" }, |
| { id: 3353453, slug: "a-purim-conversation", rating: null, title: "What Do We Want Them to Remember? A Purim Conversation" }, |
| { id: 2361827, slug: "a-for-teachers", rating: null, title: "A+ for Teachers" }, |
| { id: 2360823, slug: "all-inclusive-yahadus", rating: null, title: "All Inclusive Yahadus" }, |
| { id: 2368492, slug: "Design-Their-Learning-Journey-For-Dynamite-Results-1", rating: null, title: "Design Their Learning Journey -For Dynamite Results Part I" }, |
| { id: 2369101, slug: "design-their-learning-journey-for-dynamite-results-2", rating: null, title: "Design Their Learning Journey -For Dynamite Results Part II" }, |
| { id: 2369116, slug: "design-their-learning-journey-for-dynamite-results-3", rating: null, title: "Design Their Learning Journey -For Dynamite Results Part III" }, |
| { id: 2360235, slug: "Thinking-is-IN", rating: null, title: "Thinking is IN" }, |
| ], |
| classroom: [ |
| { id: 3340889, slug: "responses-to-misbehavior", rating: null, title: "Responses to Misbehavior" }, |
| { id: 3204302, slug: "tackle-the-talking", rating: null, title: "Tackle the Talking" }, |
| { id: 2359306, slug: "The-Classroom-with-No-Ooooohs", rating: null, title: "The Classrooom with No Oooohs!" }, |
| { id: 2367958, slug: "awakening-greatness", rating: null, title: "Awakening Greatness" }, |
| { id: 3311416, slug: "kind-and-firm", rating: null, title: "From Chaos to Calm Intro: Kind and Firm" }, |
| { id: 3324254, slug: "managing-chutzpah", rating: null, title: "From Chaos to Calm: Part 1 Managing chutzpa" }, |
| { id: 3324262, slug: "positive-reinforcement", rating: null, title: "From Chaos to Calm: Part 2 Resetting expectations, positive reinforcement" }, |
| { id: 3340889, slug: "responses-to-misbehavior", rating: null, title: "From Chaos to Calm: Part 3 Responses to Misbehavior" }, |
| { id: 2369215, slug: "management-without-manipulation-1", rating: null, title: "Management without Manipulation Part I" }, |
| { id: 2369216, slug: "management-without-manipulation-2", rating: null, title: "Management without Manipulation Part II" }, |
| { id: 2369698, slug: "management-without-manipulation-3", rating: null, title: "Management without Manipulation Part III" }, |
| { id: 3324291, slug: "principal-role-classroom-management", rating: null, title: "A Principal's Role in Classroom Management" }, |
| { id: 3324262, slug: "positive-reinforcement", rating: null, title: "Resetting Expectations & Positive Enforcement" }, |
| { id: 2539269, slug: "the-flexible-classroom-part-i", rating: null, title: "The Flexible Classroom Part I" }, |
| { id: 2369699, slug: "the-flexible-classroom-2", rating: null, title: "The Flexible Classroom Part II" }, |
| ], |
| wholechild: [ |
| { id: 2365108, slug: "better-behavior-now", rating: null, title: "Better Behavior Now" }, |
| { id: 2363318, slug: "i-like-learning-here", rating: null, title: "I Like Learning Here" }, |
| { id: 2366938, slug: "nervous-no-more", rating: null, title: "Nervous No More" }, |
| { id: 2366565, slug: "the-outlier", rating: null, title: "The Outlier" }, |
| { id: 2359076, slug: "5-ways-to-become-a-motivator", rating: null, title: "5 Ways to Become a Motivator" }, |
| { id: 3360127, slug: "understanding-our-talmidim", rating: null, title: "A Deep Dive into Understanding Our Talmidim: Gain Insight into the Whole Child" }, |
| { id: 2368223, slug: "A-Relationship-Prequisite-to-all-Learning", rating: null, title: "A Relationship: Prequisite to all Learning" }, |
| { id: 2360197, slug: "connect-the-dots-of-misbehavior", rating: null, title: "Connect the Dots of Misbehavior" }, |
| { id: 2368491, slug: "culture-the-basis-of-a-classroom", rating: null, title: "Culture: The Basis of a classroom" }, |
| { id: 3383324, slug: "helping-child-adhd-succeed", rating: null, title: "Helping the ADHD Child Succeed" }, |
| { id: 2360223, slug: "I-Can-Solve-My-Behavioral-Challenge", rating: null, title: "I Can Solve My Behavioral Challenge" }, |
| { id: 2367969, slug: "Meeting-the-Emotional-Needs-of-our-Children", rating: null, title: "Meeting the Emotional needs of our children" }, |
| { id: 3381118, slug: "anxious-child-in-the-classroom", rating: null, title: "Supporting the Anxious Child in the Classroom" }, |
| { id: 2368092, slug: "boost-attention-and-focus", rating: null, title: "Boost Attention & Focus" }, |
| { id: 2361776, slug: "Clique-Busting", rating: null, title: "Clique Busting" }, |
| { id: 3171072, slug: "frantic-frenzied-and-fretting", rating: null, title: "Frantic, Frenzied, and Fretting" }, |
| { id: 2366395, slug: "from-stress-to-success-1", rating: null, title: "From Stress to Success - Part I" }, |
| { id: 2366494, slug: "from-stress-to-success-2", rating: null, title: "From Stress to Success - Part II" }, |
| { id: 2368464, slug: "Pairing-students-without-Peer-Rejection", rating: null, title: "Pairing students without Peer Rejection" }, |
| { id: 3217156, slug: "resilience-and-grit", rating: null, title: "Resilience and Grit" }, |
| { id: 3149381, slug: "rethinking-bullying", rating: null, title: "Rethinking Bullying" }, |
| { id: 3359760, slug: "rethinking-bullying-part-two", rating: null, title: "Rethinking Bullying: A Resilience-Based Approach for Today\u2019s Classroom Part 2" }, |
| { id: 2361972, slug: "socially-savvy", rating: null, title: "Socially Savvy" }, |
| { id: 2365209, slug: "Support-Positive-Friendships", rating: null, title: "Support Positive Friendships" }, |
| { id: 2366433, slug: "The-Very-Very-Child-in-the-Classroom", rating: null, title: "The very-very child in the classroom -" }, |
| { id: 2365566, slug: "when-nothing-works", rating: null, title: "When Nothing Works" }, |
| { id: 3353499, slug: "worry-walks-into-school-part2", rating: null, title: "When Worry Walks into School: Supporting Anxious Students in the Classroom Part 2" }, |
| { id: 3167085, slug: "who's-afraid-of-the-big-bad-bully", rating: null, title: "Who's Afraid of the Big, Bad, Bully?" }, |
| ], |
| }, |
| hs: { |
| instruction: [ |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part I" }, |
| { id: 2365565, slug: "Criticism-Praise-Feedback-II", rating: null, title: "Criticism, Praise & Feedback:- part II" }, |
| { id: 2365834, slug: "The-Teacher-as-the-Master-Communicator", rating: null, title: "The Teacher as the Master Communicator" }, |
| { id: 2365101, slug: "they-talk-there-are-solutions", rating: null, title: "They Talk. There are Solutions." }, |
| { id: 2366818, slug: "Yomim-Noraim-Demystified", rating: null, title: "Yomim Noraim: Demystified" }, |
| { id: 2360205, slug: "all-hands-up", rating: null, title: "All Hands Up" }, |
| { id: 2360733, slug: "brains-go-busy", rating: null, title: "Brains go Busy" }, |
| { id: 2366585, slug: "Every-Student-Every-Lesson-Every-Day", rating: null, title: "Every Student, Every Lesson, Every Day" }, |
| { id: 3412663, slug: "Pesach-to-Shavuos-sefirah-message", rating: null, title: "From Pesach to Shavuos: The Sefirah Message" }, |
| { id: 3434689, slug: "kabalosh-hatorah-rav-kaplan", rating: null, title: "Kabbalas Hatorah in Ourselves & in Our Talmidim" }, |
| { id: 3434712, slug: "making-torah-hers", rating: null, title: "Making Torah Hers" }, |
| { id: 3360507, slug: "purim-deeper-meaning", rating: null, title: "Purim\u2019s Deeper Meaning for Our Generation" }, |
| { id: 2368433, slug: "smart-start-of-a-lesson", rating: null, title: "Smart Start of a Lesson" }, |
| { id: 2366436, slug: "The-Meforshim-are-Talking-to-Me", rating: null, title: "The Meforshim are Talking to Me" }, |
| { id: 2360748, slug: "the-underachiever", rating: null, title: "The Underachiever" }, |
| { id: 3412915, slug: "antisemitism-today-2026", rating: null, title: "When History Feels Present" }, |
| { id: 2365546, slug: "creating-independent-learners", rating: null, title: "Creating Independent Learners" }, |
| { id: 3162708, slug: "executive-function", rating: null, title: "Develop Executive Function Through Direct Instruction" }, |
| { id: 2359151, slug: "emunah-in-their-language", rating: null, title: "Emunah in their Language" }, |
| { id: 2365809, slug: "from-huh-to-aha", rating: null, title: "From Huh? to Aha!" }, |
| { id: 2361890, slug: "in-it-to-win-it", rating: null, title: "In It to Win It: Active Learning Debunked" }, |
| { id: 2362043, slug: "lots-of-loaded-questions", rating: null, title: "Lots of Loaded Questions" }, |
| { id: 2367937, slug: "more-retention", rating: null, title: "More Retention" }, |
| { id: 2366529, slug: "Navi-vs-Chumash-A-Study-in-Contrasts", rating: null, title: "Navi vs. Chumash: A Study in Contrasts" }, |
| { id: 2369118, slug: "Putting-Text-and-Thinking-Together-1", rating: null, title: "Putting Text and Thinking Together Part I" }, |
| { id: 2369140, slug: "putting-text-and-thinking-together-2", rating: null, title: "Putting Text and Thinking Together Part II" }, |
| { id: 2369139, slug: "putting-text-and-thinking-together-3", rating: null, title: "Putting Text and Thinking Together Part III" }, |
| { id: 2362059, slug: "that-works", rating: null, title: "That Works!" }, |
| { id: 2366939, slug: "The-Gifted-The-Average-The-Struggling", rating: null, title: "The Gifted, The Average, The Struggling" }, |
| { id: 2367932, slug: "Tough-Talks-Made-Easy", rating: null, title: "Tough Talks Made Easy" }, |
| ], |
| planning: [ |
| { id: 2360169, slug: "lessons-by-design", rating: null, title: "Lessons by Design" }, |
| { id: 2363219, slug: "Halacha-Accurate-Relevant-Engaging", rating: null, title: "Halacha: Accurate, Relevant, Engaging" }, |
| { id: 2360264, slug: "navi-and-me", rating: null, title: "Navi and Me" }, |
| { id: 2360941, slug: "neviim-acharonim-the-broad-picture-and-me", rating: null, title: "Neviim Ahcharonim: The Broad Picture and Me" }, |
| { id: 3353453, slug: "a-purim-conversation", rating: null, title: "What Do We Want Them to Remember? A Purim Conversation" }, |
| { id: 2361827, slug: "a-for-teachers", rating: null, title: "A+ for Teachers" }, |
| { id: 2360823, slug: "all-inclusive-yahadus", rating: null, title: "All Inclusive Yahadus" }, |
| { id: 2365557, slug: "navigating-the-meforshim", rating: null, title: "Navigating the Meforshim" }, |
| { id: 2360235, slug: "Thinking-is-IN", rating: null, title: "Thinking is IN" }, |
| ], |
| classroom: [ |
| { id: 3340889, slug: "responses-to-misbehavior", rating: null, title: "Responses to Misbehavior" }, |
| { id: 3204302, slug: "tackle-the-talking", rating: null, title: "Tackle the Talking" }, |
| { id: 3311416, slug: "kind-and-firm", rating: null, title: "From Chaos to Calm Intro: Kind and Firm" }, |
| { id: 3324254, slug: "managing-chutzpah", rating: null, title: "From Chaos to Calm: Part 1 Managing chutzpa" }, |
| { id: 3324262, slug: "positive-reinforcement", rating: null, title: "From Chaos to Calm: Part 2 Resetting expectations, positive reinforcement" }, |
| { id: 3340889, slug: "responses-to-misbehavior", rating: null, title: "From Chaos to Calm: Part 3 Responses to Misbehavior" }, |
| { id: 3324291, slug: "principal-role-classroom-management", rating: null, title: "A Principal's Role in Classroom Management" }, |
| { id: 3324262, slug: "positive-reinforcement", rating: null, title: "Resetting Expectations & Positive Enforcement" }, |
| ], |
| wholechild: [ |
| { id: 2363318, slug: "i-like-learning-here", rating: null, title: "I Like Learning Here" }, |
| { id: 2366938, slug: "nervous-no-more", rating: null, title: "Nervous No More" }, |
| { id: 2366565, slug: "the-outlier", rating: null, title: "The Outlier" }, |
| { id: 2359076, slug: "5-ways-to-become-a-motivator", rating: null, title: "5 Ways to Become a Motivator" }, |
| { id: 3360127, slug: "understanding-our-talmidim", rating: null, title: "A Deep Dive into Understanding Our Talmidim: Gain Insight into the Whole Child" }, |
| { id: 2360197, slug: "connect-the-dots-of-misbehavior", rating: null, title: "Connect the Dots of Misbehavior" }, |
| { id: 3383324, slug: "helping-child-adhd-succeed", rating: null, title: "Helping the ADHD Child Succeed" }, |
| { id: 2360223, slug: "I-Can-Solve-My-Behavioral-Challenge", rating: null, title: "I Can Solve My Behavioral Challenge" }, |
| { id: 2367969, slug: "Meeting-the-Emotional-Needs-of-our-Children", rating: null, title: "Meeting the Emotional needs of our children" }, |
| { id: 3381118, slug: "anxious-child-in-the-classroom", rating: null, title: "Supporting the Anxious Child in the Classroom" }, |
| { id: 3217037, slug: "key-learning-points", rating: null, title: "A Nurturing Classroom Environment - Part 1" }, |
| { id: 3216911, slug: "inside-the-classroom", rating: null, title: "A Nurturing Classroom Environment - Part 2" }, |
| { id: 3210073, slug: "teachers-masters-of-connection", rating: null, title: "A Nurturing Classroom Environment - Part 3" }, |
| { id: 3209172, slug: "emotional-wellbeing-in-the-classroom", rating: null, title: "Emotional Wellbeing in the Classroom" }, |
| { id: 2366395, slug: "from-stress-to-success-1", rating: null, title: "From Stress to Success - Part I" }, |
| { id: 2366494, slug: "from-stress-to-success-2", rating: null, title: "From Stress to Success - Part II" }, |
| { id: 2368464, slug: "Pairing-students-without-Peer-Rejection", rating: null, title: "Pairing students without Peer Rejection" }, |
| { id: 3171311, slug: "regulate-to-relate", rating: null, title: "Regulate to Relate" }, |
| { id: 3173700, slug: "repairing-low-self-esteem", rating: null, title: "Repairing Low Self-Esteem" }, |
| { id: 3353499, slug: "worry-walks-into-school-part2", rating: null, title: "When Worry Walks into School: Supporting Anxious Students in the Classroom Part 2" }, |
| ], |
| }, |
| }; |
| /* ===================================================================== |
| CONFIG D — SETTINGS |
| ===================================================================== */ |
| var SHUFFLE = true; // interleave questions so domains aren't clustered |
| var PLAN_SIZE = 6; // total courses recommended (informational) |
| var BACKEND_URL = ""; // TODO: your serverless endpoint, e.g. https://your-app.vercel.app/api/enroll |
| /* ============================ ENGINE ================================ */ |
| // Profile shapes — first match wins. Returns { shape, alloc:{domainKey:count} }. |
| // Four domains; every shape totals 6 courses. |
| function pickShape(scores) { |
| var ranked = Object.keys(scores) |
| .map(function (k) { return [k, scores[k]]; }) |
| .sort(function (a, b) { return a[1] - b[1]; }); // ascending (weakest first) |
| var alloc = {}; |
| Object.keys(scores).forEach(function (k) { alloc[k] = 0; }); |
| var lowK = ranked[0][0], lowV = ranked[0][1]; |
| var low2K = ranked[1][0], low2V = ranked[1][1]; |
| var topV = ranked[ranked.length - 1][1]; |
| var nextTopV = ranked[ranked.length - 2][1]; |
| // Deep Dive: one deep, isolated growth area (4 + 1 + 1) |
| if (lowV <= 2.5 && (low2V - lowV) >= 1.0) { |
| alloc[lowK] = 4; alloc[ranked[1][0]] = 1; alloc[ranked[2][0]] = 1; |
| return { shape: "Deep Dive", alloc: alloc }; |
| } |
| // Twin Focus: two soft spots close together (2 + 2 + 1 + 1) |
| if (lowV <= 3.0 && low2V <= 3.0 && (low2V - lowV) <= 0.5) { |
| alloc[lowK] = 2; alloc[low2K] = 2; alloc[ranked[2][0]] = 1; alloc[ranked[3][0]] = 1; |
| return { shape: "Twin Focus", alloc: alloc }; |
| } |
| // Targeted: one clear soft spot (3 + 1 + 1 + 1) |
| if (lowV <= 3.0) { |
| alloc[lowK] = 3; alloc[ranked[1][0]] = 1; alloc[ranked[2][0]] = 1; alloc[ranked[3][0]] = 1; |
| return { shape: "Targeted", alloc: alloc }; |
| } |
| // Strength-Led: strong overall, one standout strength — skip it (2 + 2 + 2) |
| if (lowV >= 3.5 && (topV - nextTopV) >= 0.7) { |
| alloc[ranked[0][0]] = 2; alloc[ranked[1][0]] = 2; alloc[ranked[2][0]] = 2; |
| return { shape: "Strength-Led", alloc: alloc }; |
| } |
| // Balanced (default): a bit more weight on the two lower areas (2 + 2 + 1 + 1) |
| alloc[ranked[0][0]] = 2; alloc[ranked[1][0]] = 2; alloc[ranked[2][0]] = 1; alloc[ranked[3][0]] = 1; |
| return { shape: "Balanced", alloc: alloc }; |
| } |
| // Difficulty banding + rating tiebreak. |
| // The catalog is ordered most basic -> most advanced, and within the same |
| // difficulty level, by rating (1 first, then 2, then 3). The teacher's domain |
| // score slides the window: a low score starts at the basic end, a high score |
| // at the advanced end. So a stronger teacher gets more advanced classes, and |
| // when several classes sit at the same level, the higher-rated ones win. |
| // Completed courses are skipped. |
| function pickCourses(domainKey, count, score, grade, completedSet) { |
| if (count <= 0) return []; |
| var list = (COURSE_CATALOG[grade] && COURSE_CATALOG[grade][domainKey]) || []; |
| var available = list.filter(function (c) { return !completedSet.has(String(c.id)); }); |
| if (available.length <= count) return available.slice(0, count); |
| var frac = Math.max(0, Math.min(1, (score - 1) / 4)); // 0 weak .. 1 strong |
| var maxStart = available.length - count; |
| var start = Math.max(0, Math.min(maxStart, Math.round(frac * maxStart))); |
| return available.slice(start, start + count); |
| } |
| function buildPlan(scores, grade, completedSet) { |
| var result = pickShape(scores); |
| var plan = []; |
| Object.keys(result.alloc).forEach(function (domainKey) { |
| var n = result.alloc[domainKey]; |
| pickCourses(domainKey, n, scores[domainKey], grade, completedSet).forEach(function (course) { |
| plan.push({ domain: domainKey, course: course }); |
| }); |
| }); |
| return { shape: result.shape, alloc: result.alloc, plan: plan }; |
| } |
| /* ============================ UI ==================================== */ |
| function shuffle(arr) { |
| var a = arr.slice(); |
| for (var i = a.length - 1; i > 0; i--) { |
| var j = Math.floor(Math.random() * (i + 1)); |
| var t = a[i]; a[i] = a[j]; a[j] = t; |
| } |
| return a; |
| } |
| var root = document.getElementById("pd-quiz"); |
| var order = SHUFFLE ? shuffle(QUESTIONS) : QUESTIONS; |
| var responses = {}; // questionIndex -> 1..5 |
| function render() { |
| var gradeOpts = GRADE_LEVELS.map(function (g) { |
| return '<option value="' + g.key + '">' + g.label + "</option>"; |
| }).join(""); |
| var html = |
| "<h2>Your professional growth check-in</h2>" + |
| '<p class="sub">' + QUESTIONS.length + " quick questions. Rate each 1 (not yet) to 5 (consistently true). " + |
| "You\u2019ll get a personalized plan of " + PLAN_SIZE + " courses.</p>" + |
| '<div class="field"><label><strong>What grade level do you teach?</strong></label><br>' + |
| '<select id="pd-grade"><option value="">Choose\u2026</option>' + gradeOpts + "</select></div>"; |
| order.forEach(function (q, i) { |
| var scale = ""; |
| for (var v = 1; v <= 5; v++) { |
| scale += |
| '<label><input type="radio" name="q' + i + '" value="' + v + '">' + |
| "<span>" + v + "</span></label>"; |
| } |
| html += '<div class="q"><p>' + (i + 1) + ". " + q.text + '</p><div class="scale">' + scale + "</div></div>"; |
| }); |
| html += '<div id="pd-hint" class="sub" style="margin-top:20px"></div>' + |
| '<button id="pd-submit">Build my plan</button><div id="pd-result"></div>'; |
| root.innerHTML = html; |
| function updateHint() { |
| var grade = document.getElementById("pd-grade").value; |
| var n = Object.keys(responses).length; |
| var hint = document.getElementById("pd-hint"); |
| if (grade && n === QUESTIONS.length) { hint.textContent = "All set \u2014 build your plan."; } |
| else { |
| var bits = []; |
| if (!grade) bits.push("choose a grade level"); |
| if (n < QUESTIONS.length) bits.push("answer all " + QUESTIONS.length + " questions (" + n + " done)"); |
| hint.textContent = "To continue: " + bits.join(" and ") + "."; |
| } |
| } |
| root.addEventListener("change", function (e) { |
| if (e.target.name && e.target.name.indexOf("q") === 0) { |
| responses[parseInt(e.target.name.slice(1), 10)] = parseInt(e.target.value, 10); |
| } |
| updateHint(); |
| }); |
| updateHint(); |
| document.getElementById("pd-submit").addEventListener("click", submit); |
| } |
| function submit() { |
| var grade = document.getElementById("pd-grade").value; |
| var answered = Object.keys(responses).length; |
| if (!grade || answered < QUESTIONS.length) { |
| document.getElementById("pd-result").innerHTML = |
| '<p class="err" style="margin-top:16px">Please choose a grade and answer all ' + |
| QUESTIONS.length + ' questions first \u2014 you\u2019ve answered ' + answered + '.</p>'; |
| document.getElementById("pd-result").scrollIntoView({ behavior: "smooth" }); |
| return; |
| } |
| // Score each domain (average of its two questions) |
| var sums = {}, counts = {}; |
| Object.keys(DOMAINS).forEach(function (k) { sums[k] = 0; counts[k] = 0; }); |
| order.forEach(function (q, i) { |
| sums[q.domain] += responses[i]; |
| counts[q.domain] += 1; |
| }); |
| var scores = {}; |
| Object.keys(DOMAINS).forEach(function (k) { scores[k] = sums[k] / counts[k]; }); |
| var completedSet = new Set((window.COMPLETED_COURSE_IDS || []).map(String)); |
| var built = buildPlan(scores, grade, completedSet); |
| renderResult(built, scores); |
| enroll(built); |
| } |
| function renderResult(built, scores) { |
| var out = document.getElementById("pd-result"); |
| var byDomain = {}; |
| built.plan.forEach(function (item) { |
| (byDomain[item.domain] = byDomain[item.domain] || []).push(item.course); |
| }); |
| var html = '<h2 style="margin-top:32px">Your plan: ' + built.shape + "</h2>"; |
| if (built.plan.length === 0) { |
| html += '<p class="err">No courses are configured yet for this grade level. ' + |
| "Fill in COURSE_CATALOG, then republish.</p>"; |
| } |
| Object.keys(DOMAINS).forEach(function (k) { |
| if (!byDomain[k]) return; |
| html += '<div class="plan-domain">' + DOMAINS[k] + "</div>"; |
| byDomain[k].forEach(function (c) { |
| var title = c.title || ("Course " + c.id); |
| var link = c.slug ? ' \u2014 <a href="/courses/take/' + c.slug + '">open</a>' : ""; |
| html += '<div class="plan-course">' + title + link + "</div>"; |
| }); |
| }); |
| out.innerHTML = html; |
| out.scrollIntoView({ behavior: "smooth" }); |
| } |
| function enroll(built) { |
| if (!BACKEND_URL || window.THINKIFIC_USER.id === "PREVIEW") return; // skip in preview / until wired |
| // Send the full plan (id + slug + title) so the backend can enroll AND |
| // save it for the "My PD Plan" page. |
| var plan = built.plan.map(function (item) { |
| return { |
| id: item.course.id, |
| slug: item.course.slug || "", |
| title: item.course.title || ("Course " + item.course.id), |
| domain: item.domain |
| }; |
| }); |
| fetch(BACKEND_URL, { |
| method: "POST", |
| // text/plain keeps this a "simple" request, avoiding the CORS preflight |
| // that Google Apps Script web apps can't respond to. Body is still JSON. |
| headers: { "Content-Type": "text/plain;charset=utf-8" }, |
| body: JSON.stringify({ |
| userId: window.THINKIFIC_USER.id, |
| email: window.THINKIFIC_USER.email, |
| plan: plan, |
| shape: built.shape |
| }) |
| }).catch(function (err) { console.error("Enrollment request failed:", err); }); |
| } |
| render(); |
| })(); |
| </script> |
Filter by
Rabbi Zev Pam
A classroom environment that reaches all learners.
Rabbi Baruch Fried
A comprehensive framework for Halacha learning.
Rabbi Chaim Biberfeld
Innovation in dealing with the Outlier Student.
Rabbi Dr. Elimelech Gottlieb
Effective communication with students.
Rabbi Dr. Elimelech Gottlieb
Effective communication with students.
Rabbi Daniel Frank
Practical communication tools and strategies that will enhance your learning environment.
Dr. Yitzchok Goldberg
Guiding your anxious students on their quest for success.
Rabbi Yitzchak Coopersmith
Explore the core truths of Emunah for yourself and inspire your students.
Rabbi Yehoshua Levy
Know what to answer when the going gets tough.
Rabbi Avrohom Anisfeld
Tips and tricks to create and maintain emotional security for children.
Rabbi Aharon Lopiansky
What Do We Want them to Remember? A Purim Conversation
Mrs. Nechama Fried, Ms Ed, BCBA
Supporting disorganized, distracted and overwhelmed students. Approx. 1 hours per class.Grade 1-4
Rabbi Yaakov Oppen
From Passengers to CoPilots, Part 2
Rabbi Shlomo Goldberg
Where Courage and Consideration Meet, Part 2
Rabbi Yosef Elefant
From Pesach to Shavuos: The Sefirah Message
Mr. Yaakov Engel
Hiring, onboarding, effective feedback, and accountability.Grade 1-8
Rabbi Yaakov Bogart
The Art of Communication: How to Handle Difficult Conversations and Build Strong Partnerships
Rabbi Shmuel Yaakov Klein
When History Feels Present: Addressing Today's Anti-Semitism Epidemic
Rabbi Gershon Miller
Making Torah Hers: Your Students Role in Kabalos HaTorah
Rabbi Shlomo Usher Tauber
A Deep Dive into Understanding Our Talmidim
HaRav Avrohom Schorr, shlita
Purim's Deeper Meaning for Our Generation
Rabbi Zev Brown
Supporting the Anxious Child in the Classroom: Recognize anxiety in the classroom and respond calmly, clearly, and effectively.
Dovid Becker, LCSW
Helping the Child with ADHD Succeed: Practical tools to support students struggling with executive functioning and everyday classroom demands.
HaRav Yaakov Bender, shlita
What a Great Rebbe Does Differently
Rabbi Yehoshua Levy
Saying What You Mean Without Being Mean
Rav Nisan Kaplan
Kabalos Hatorah in Ourselves and Our Talmidim
Mr. Yehuda Zachter
Financial Planning for Rebbeim
Rabbi Yehoshua Levy, Rabbi Sharir Yablonsky
Leadership Exchange: Communication & Culture
R' Chaim Marcus
What Children of Divorce Wish Their Teachers Knew
HaRav Uren Reich, shlita
Divrei Chizuk for Erev Tisha B'Av
HaRav Elya Brudny, shlita
Divrei Chizuk for Pesach: The Role of V'Hegadita L'Bincha
Rabbi Yehuda Abramsky
Finish the Year with Flourish & Impact | Lower Elementary Rebbeim
Rabbi Shmuel Yaakov Klein
Finish the Year with Flourish & Impact | Upper Elementary Rebbeim
No courses match the selected filters.
Questions? We’ve got answers.
Everything you need to know about the Chinuch Hub, our courses, and how to get started.
All your chinuch professional development in one place — online, or by phone.
Five domains, built for Limudei Kodesh and General Studies teachers alike: Social-Emotional, Lesson Planning, Lesson Delivery, Classroom Environment, and Subject Matter. Plus content by division — from Early Childhood through High School, plus Leadership and Special Ed.
Recorded — 150+ classes and growing, with new releases every season. Video and audio options available.
Most classes are free. A few select classes are well worth the subsidized price.
Most run 45 minutes to 1.5 hours.
We’ve done the hard work for you. Classes are grouped into guided collections by topic, level, and grade — Foundations for newer teachers building their foundation, Advanced for experienced teachers sharpening their skills. Complete a collection, earn a certificate.
Certificate programs take you further: the ICC Coaching Course, 3+3 New Teacher Training, DLI Special Ed, and Mashgiach Training.
Two ways: take the Personal Learning Plan quiz at hub.torahumesorah.org, or email [email protected] and we’ll point you in the right direction.
Call the Chinuch HubLine — 718-400-7886 — for phone access to the full catalog. Pause, rewind, adjust speed, all from your keypad.
In the handouts section of each video. Can’t access the website? Email [email protected] and we’ll gladly assist.
The Chinuch Hub is Torah Umesorah's on-demand professional development platform for educators — one piece of TU's CORE framework, delivering the Ongoing Education and Resources pillars straight to teachers.
Chizuk & Hadracha
Access to Roshei Yeshiva, archived guidance & live consultation via phone/Zoom
Ongoing Education
Professional development, certificate programs & coaching
Resources
Upgraded Chinuch.org, curated catalogs, materials showcase & resource partnerships
Educators Network
Moderated peer cohorts by role, networking events and forums