Skip to content

Feature/hots hitl rubric form - #181

Open
afifasultana-ai wants to merge 5 commits into
mainfrom
feature/hots-hitl-rubric-form
Open

Feature/hots hitl rubric form#181
afifasultana-ai wants to merge 5 commits into
mainfrom
feature/hots-hitl-rubric-form

Conversation

@afifasultana-ai

Copy link
Copy Markdown
Collaborator

Pull Request: [Feature/Fix Description]

📝 Description

Closes: [JIRA-XXXX or GitHub Issue #XXX]

🎯 Type of Change

  • New feature
  • Bug fix
  • Documentation update
  • Performance improvement
  • Refactoring
  • Dependency update

🔍 Changes Made

  • Change 1
  • Change 2
  • Change 3

🧪 E2E Testing Checklist

Required before merging to staging:

  • Feature tested locally: npm run dev
  • No console errors (DevTools → Console)
  • Signup test: created test user testcoach+staging+[random]@example.com
  • Baseline assessment: answered questions, received persona (A/B/C/D)
  • Module viewing: clicked Module 1, video played
  • Content gate: video 90% watched before quiz unlocks
  • Quiz: answered questions, score calculated correctly
  • Module completion: passed at 80%+ score
  • Dashboard: shows completed modules and next module
  • Endline: accessible only after all modules passed
  • Certificate: generated and PDF downloads correctly
  • Supabase: new user appears in auth.users table
  • Supabase: new profiles/assessments created in correct tables
  • Mobile responsive: tested at 375px viewport
  • No sensitive data in code: no API keys, passwords, emails hardcoded
  • Code follows project conventions and standards

📸 Screenshots (if UI change)

🔄 Deployment Checklist

  • Tested on staging environment (if auto-deployed)
  • No breaking changes to database schema (or migrations included)
  • Environment variables documented (if new ones added)
  • Performance: page load time acceptable

🚨 Breaking Changes

  • This PR introduces breaking changes (describe below)
  • Requires data migration
  • Requires configuration change

If checked, describe the impact:

📋 Checklist

  • Code follows project standards (DEVELOPMENT_STANDARDS.md)
  • No hardcoded secrets or sensitive data
  • Tests added/updated (if applicable)
  • Documentation updated (if needed)
  • Commit messages are clear and descriptive
  • No merge conflicts with staging branch

🔗 Related Issues

  • Related to: [Issue/PR]
  • Depends on: [Issue/PR]
  • Blocked by: [Issue/PR]

👀 Reviewers

⚠️ Notes for Reviewers


DO NOT MERGE until:

  1. ✅ Code review approved
  2. ✅ All E2E tests pass (checkbox above)
  3. ✅ CI/CD (GitHub Actions) passes

Remember: This goes to staging first, then production after staging QA passes.

afifasultana-ai and others added 5 commits July 6, 2026 12:47
Each ICT coach now sees only teachers from their assigned schools.
- Add ict_coach_school_assignments table + RLS migration
- Seed 303 coach→school mappings across 51 ICT coaches
- API: GET /coaching/teachers/dc-scores accepts coach_name query param; falls back to full region list if no assignments found
- Frontend: SmartScheduleTab passes profile.full_name to loadTeachers; cache key bumped to v2 to bust stale data
- CORS expanded to cover all local Vite ports (5173–5179, 8080–8099)
- Add IctCoachSchoolAssignment SQLAlchemy model

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rewrite PindiSmartScheduleTab and PunjabSmartScheduleTab to use new
  HOTSDashboard component (mirrors DCDashboard: 3 stat cards, tabbed
  tiers, expandable HOTS indicator grid, offline banner)
- Add HOTSDashboard.tsx for HOTS framework (6 indicators, PunjabTeacher type)
- Fix Vite proxy: route /api to production Railway API to bypass CORS in dev
- Fix authApiClient: use ?? instead of || so empty VITE_API_URL produces
  relative URLs that the Vite proxy intercepts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix HotsScores type: correct field names (classroom_management,
  lesson_planning, instructional_strategies, student_engagement,
  assessment_feedback, multigrade_setup) matching the DB schema
- Fix HOTS_DIMENSIONS in observation-utils: correct 6 indicators with
  proper max values (CM/9, LP/9, IS/12, SE/9, AF/9, MG/3 = 51 total)
- Fix getProficiencyLevel: thresholds aligned to PINDI_CRITICAL_PCT (60%)
  and PINDI_ON_TRACK_PCT (75%) — Needs Urgent / Follow-up / On Track
- Add hotsTeachers.ts: upsertTeacherHotsScores() rolls up observation
  scores to rawalpindi_teacher_scores or punjab_teacher_scores, auto-
  detecting the correct table by cluster, and invalidates the hook cache
- Wire HotsRubricForm into DraftObservationsTab for framework='HOTS';
  FICO observations keep NeoAnalysis + neo_status submit gate unchanged

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ScheduleVisitModal: when framework='HOTS', Visit Type and Visit
  Purpose become free-text inputs (not ICT-specific dropdowns); FICO
  option removed from visit type list
- ScheduleVisitModal: for HOTS, show editable Subject + Grade text
  inputs inline in the teacher card (Pindi teacher data has no subject/
  grade, so coaches fill these in at observation time)
- Pindi & Punjab schedule payloads: prefer formData.subject/grade over
  teacher.subject/grade so the coach-entered values are used
- Fix observations.ts: use ?? instead of || so VITE_API_URL="" produces
  relative URLs that the Vite proxy intercepts (was falling back to
  localhost:8000 and failing silently)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant