Download src/components/tuition/chapter-dashboard/sessionData.ts from asnannp/DocDoeAI: direct link, hf CLI and curl.
- Browser
- Download file 9.04 kB
-
https://huggingface.co/spaces/asnannp/DocDoeAI/resolve/main/src/components/tuition/chapter-dashboard/sessionData.ts
- Command line
-
hf download hf://spaces/asnannp/DocDoeAI/src/components/tuition/chapter-dashboard/sessionData.ts
-
curl -L -o sessionData.ts https://huggingface.co/spaces/asnannp/DocDoeAI/resolve/main/src/components/tuition/chapter-dashboard/sessionData.ts
9.04 kB
| import { | |
| BookOpen, | |
| Home, | |
| LineChart, | |
| MessageSquareText, | |
| UserRound, | |
| } from "lucide-react"; | |
| import type { LucideIcon } from "lucide-react"; | |
| export type MissionStepId = "lesson" | "notes" | "quiz" | "feedback" | "next"; | |
| export type MobileScreenId = "today" | "lesson" | "notes" | "quiz" | "feedback" | "weakAreas" | "next"; | |
| export type SourceRef = { | |
| file_name: string; | |
| book?: string; | |
| printed_page?: number; | |
| pdf_page?: number; | |
| }; | |
| export type SessionNavItem = { | |
| label: string; | |
| href: string; | |
| icon: LucideIcon; | |
| active?: boolean; | |
| }; | |
| export type MissionStep = { | |
| id: MissionStepId; | |
| label: string; | |
| }; | |
| export type NoteCardData = { | |
| id: number; | |
| title: string; | |
| body: string; | |
| tag?: string; | |
| tone?: "default" | "warning"; | |
| source_refs?: SourceRef[]; | |
| }; | |
| export type QuizOptionData = { | |
| key: "A" | "B" | "C" | "D"; | |
| text: string; | |
| }; | |
| export type TuitionQuizData = { | |
| id?: string; | |
| mode?: "choice" | "review"; | |
| questionNumber: number; | |
| totalQuestions: number; | |
| question: string; | |
| source?: string; | |
| options: QuizOptionData[]; | |
| correctOption: QuizOptionData["key"]; | |
| answerOutline?: string; | |
| keywords?: string[]; | |
| questionType?: string; | |
| marks?: number; | |
| source_refs?: SourceRef[]; | |
| }; | |
| export type TuitionFeedbackData = { | |
| why: string; | |
| conceptTested: string; | |
| mistake: string; | |
| toRevise: string; | |
| source?: string; | |
| source_refs?: SourceRef[]; | |
| }; | |
| export type WeakAreaData = { | |
| label: string; | |
| accuracy?: number; | |
| status: "Weak" | "Average" | "Review"; | |
| studentAnswer?: string; | |
| correctAnswer?: string; | |
| source_refs?: SourceRef[]; | |
| }; | |
| export type FlashcardData = { | |
| front: string; | |
| back: string; | |
| type: string; | |
| status: string; | |
| marks?: number; | |
| source_refs: SourceRef[]; | |
| }; | |
| export type AnswerCorrectionRuleData = { | |
| id: string; | |
| applies_to: string[]; | |
| rule: string; | |
| keyword_map?: Record<string, string[]>; | |
| source_refs: SourceRef[]; | |
| }; | |
| export type TuitionSessionData = { | |
| student: { | |
| name: string; | |
| initials: string; | |
| streak: string; | |
| }; | |
| brand: { | |
| name: string; | |
| tagline: string; | |
| }; | |
| classLabel: string; | |
| board?: string; | |
| subject?: string; | |
| chapterLabel: string; | |
| chapterShortTitle: string; | |
| chapterSubtitle: string; | |
| missionLabel: string; | |
| missionGoal: string; | |
| missionId?: string; | |
| chapterId?: string; | |
| missionTitle?: string; | |
| nextMissionTitle?: string; | |
| sessionProgress: number; | |
| estimatedTime: string; | |
| video: { | |
| currentTime: string; | |
| duration: string; | |
| speed: string; | |
| progress: number; | |
| }; | |
| lessonTakeaway: string; | |
| lessonBoard: { | |
| title: string; | |
| subtitle: string; | |
| points: string[]; | |
| source_refs?: SourceRef[]; | |
| }; | |
| formulaText: string; | |
| missionSteps: readonly MissionStep[]; | |
| notes: NoteCardData[]; | |
| quiz: TuitionQuizData; | |
| feedback: TuitionFeedbackData; | |
| checklist: string[]; | |
| doubtTeacher: { | |
| question: string; | |
| answer: string; | |
| }; | |
| weakAreas: WeakAreaData[]; | |
| flashcards: FlashcardData[]; | |
| nextStep: { | |
| completedTitle: string; | |
| completedSubtitle: string; | |
| tomorrowPlan: string[]; | |
| }; | |
| answerCorrectionRules: AnswerCorrectionRuleData[]; | |
| source_refs: SourceRef[]; | |
| formulas?: unknown[]; | |
| derivations?: unknown[]; | |
| numericalPatterns?: unknown[]; | |
| visualLessonFrames?: unknown[]; | |
| }; | |
| export const missionSteps = [ | |
| { id: "lesson", label: "Watch Lesson" }, | |
| { id: "notes", label: "Key Notes" }, | |
| { id: "quiz", label: "Quiz" }, | |
| { id: "feedback", label: "Feedback" }, | |
| { id: "next", label: "Next Step" }, | |
| ] as const satisfies readonly MissionStep[]; | |
| export const missionStageOrder = missionSteps.map((step) => step.id) satisfies MissionStepId[]; | |
| export const mobileMissionFlow = ["today", "lesson", "notes", "quiz", "feedback", "weakAreas", "next"] as const satisfies readonly MobileScreenId[]; | |
| export const noteTabs = ["Key Notes", "Formula Sheet", "Board Answer"] as const; | |
| export const missionNextActions: Record<MissionStepId, string> = { | |
| lesson: "Watch the source-backed lesson", | |
| notes: "Read the 5 key notes", | |
| quiz: "Answer the mission quiz", | |
| feedback: "Review the answer rule", | |
| next: "Save weak areas and continue", | |
| }; | |
| export const tuitionSession: TuitionSessionData = { | |
| student: { | |
| name: "Asnan", | |
| initials: "AS", | |
| streak: "", | |
| }, | |
| brand: { | |
| name: "DocDoe", | |
| tagline: "Today's Tuition", | |
| }, | |
| classLabel: "+2 Physics", | |
| chapterLabel: "Chapter 1: Electric Charges and Fields", | |
| chapterShortTitle: "Chapter 1", | |
| chapterSubtitle: "Electric Charges and Fields", | |
| missionLabel: "Today's Chapter Mission", | |
| missionGoal: "Understand Coulomb's Law, finish one quiz, fix weak points.", | |
| sessionProgress: 65, | |
| estimatedTime: "~45 mins", | |
| video: { | |
| currentTime: "12:18", | |
| duration: "28:40", | |
| speed: "1.0x", | |
| progress: 43, | |
| }, | |
| lessonTakeaway: | |
| "Force \u221d q\u2081q\u2082 and Force \u221d 1/r\u00b2. Doubling distance \u2192 force becomes 1/4th.", | |
| lessonBoard: { | |
| title: "Coulomb's Law", | |
| subtitle: "Electric Charges and Fields", | |
| points: [ | |
| "Force is directly proportional to the product of charges.", | |
| "Force is inversely proportional to the square of distance.", | |
| "Force acts along the line joining two point charges.", | |
| ], | |
| source_refs: [], | |
| }, | |
| formulaText: "F = k |q1 q2| / r\u00b2", | |
| missionSteps, | |
| notes: [ | |
| { | |
| id: 1, | |
| title: "Law statement", | |
| body: "Force between two point charges is directly proportional to the product of charges.", | |
| tag: "NCERT 1.1", | |
| }, | |
| { | |
| id: 2, | |
| title: "Formula", | |
| body: "F = k |q\u2081q\u2082| / r\u00b2, where k = 9 \u00d7 10\u2079 N m\u00b2/C\u00b2.", | |
| tag: "Board formula", | |
| }, | |
| { | |
| id: 3, | |
| title: "Meaning of r\u00b2", | |
| body: "When distance doubles, force becomes one-fourth. This is the inverse square relation.", | |
| tag: "PYQ 2024", | |
| }, | |
| { | |
| id: 4, | |
| title: "Direction of force", | |
| body: "Force acts along the straight line joining the two point charges.", | |
| tag: "NCERT 1.2", | |
| }, | |
| { | |
| id: 5, | |
| title: "Common exam mistake", | |
| body: "Using r instead of r\u00b2 is the #1 error in board exams.", | |
| tag: "Exam alert", | |
| tone: "warning", | |
| }, | |
| ] satisfies NoteCardData[], | |
| quiz: { | |
| questionNumber: 1, | |
| totalQuestions: 5, | |
| question: | |
| "According to Coulomb's law, what happens to the electrostatic force between two point charges if the distance between them is doubled?", | |
| source: "PYQ 2024", | |
| options: [ | |
| { key: "A", text: "It becomes half" }, | |
| { key: "B", text: "It becomes one-fourth" }, | |
| { key: "C", text: "It becomes four times" }, | |
| { key: "D", text: "It remains the same" }, | |
| ] satisfies QuizOptionData[], | |
| correctOption: "B" as const, | |
| }, | |
| feedback: { | |
| why: "F is proportional to 1/r\u00b2. If r becomes 2r, (2r)\u00b2 = 4r\u00b2, making the force 1/4th.", | |
| conceptTested: "Inverse square dependence of Coulomb's Law", | |
| mistake: "You chose 1/r instead of 1/r\u00b2. This is the most common board exam error.", | |
| toRevise: "Mathematical interpretation of inverse square laws.", | |
| source: "NCERT Ch.1, Ex. 1.1", | |
| }, | |
| checklist: [ | |
| "Learn today's concept", | |
| "Read the key notes", | |
| "Pass the checkpoints", | |
| "Fix weak areas", | |
| "Save revision", | |
| ], | |
| doubtTeacher: { | |
| question: "Why does the force act strictly along the line joining them?", | |
| answer: | |
| "Because electrostatic force is a central force. By symmetry, the only unique direction between two point charges is the straight line connecting them.", | |
| }, | |
| weakAreas: [ | |
| { label: "Inverse square law", accuracy: 30, status: "Weak", studentAnswer: "half", correctAnswer: "one-fourth" }, | |
| { label: "Units & dimensions", accuracy: 60, status: "Average" }, | |
| { label: "Direction of force", accuracy: 70, status: "Average" }, | |
| ] satisfies WeakAreaData[], | |
| flashcards: [], | |
| nextStep: { | |
| completedTitle: "Great job, Asnan!", | |
| completedSubtitle: "You've completed today's mission.", | |
| tomorrowPlan: ["Revise: Inverse square law", "Learn: Gauss's Theorem"], | |
| }, | |
| answerCorrectionRules: [], | |
| source_refs: [], | |
| formulas: [], | |
| derivations: [], | |
| numericalPatterns: [], | |
| visualLessonFrames: [], | |
| }; | |
| /** Minimal global rail — Progress holds weekly plan, weak areas, revision, practice. */ | |
| export const sessionNavItems: SessionNavItem[] = [ | |
| { label: "Today", href: "/tuition", icon: Home, active: true }, | |
| { label: "Learn Anything", href: "/learn-anything", icon: BookOpen }, | |
| { label: "Study Chat", href: "/study-chat", icon: MessageSquareText }, | |
| { label: "Progress", href: "/progress", icon: LineChart }, | |
| { label: "Profile", href: "/settings", icon: UserRound }, | |
| ]; | |
| export const mobileBottomNavItems: SessionNavItem[] = [ | |
| { label: "Today", href: "/tuition", icon: Home, active: true }, | |
| { label: "Learn", href: "/learn-anything", icon: BookOpen }, | |
| { label: "Chat", href: "/study-chat", icon: MessageSquareText }, | |
| { label: "Progress", href: "/progress", icon: LineChart }, | |
| { label: "Profile", href: "/settings", icon: UserRound }, | |
| ]; | |