diff --git a/.gitignore b/.gitignore index b6c5a84..d286de3 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,8 @@ backups/ logs/ *.log *.bak + + + + +we are going to make improvements to our classroomcopilot app to allow a teacher user to create and manage a timetable of lessons taught to various classes and use tldraw to teach those lessons. Each lesson should have its own tldraw whiteboard (start with blank) and changes that are made to the whiteboard should be saved for later retrieval. Classes contain students. Each student in the class should have access to the tldraw whiteboards. Teachers should be able to manage students in their classes. \ No newline at end of file diff --git a/ddd b/ddd new file mode 100644 index 0000000..67beb1a --- /dev/null +++ b/ddd @@ -0,0 +1,124 @@ +1. Data Model Questions +Q1: Class vs Group Relationship +You say, "Current groups are generic." but there is no class implementation in supabase yet. + + +Q2: Student-Teacher Relationships +Should students be explicitly enrolled in classes by teachers, or: + +Can any student from the same institution join any class? +Only teachers can add or remove students in classes that belong to them. Classes can belong to multiple teachers from the same institute. We will add partnering instution access later (e.g. for teacher supply agencies to teach classes). Only teachers of the class (and admins) can add or remove students to classes, and manage enrollment requests. + + +Are there enrollment requests/approvals? Yes. Students from any institute can enrol to ad-hoc lessons/timetables. We forgot to add that ad-hoc timetables are created by normal institute teachers and partnering supply teacher institutes (institutes that are designated as supply haven't been implemented yet - see below for details). + +Can students be in multiple classes with the same teacher? Yes. Some classes may be designated as clubs, extra-curricular or other 'extra' type classes depending on the timetable. + +Q3: Timetable Scope +A single teacher may teach multiple institutes over time. Should timetables be: + +A) Per teacher (spanning all their institutes)? +B) Per teacher-per institute combination? +C) Institute-wide with teacher assignments? + +We are focussin two types of timetabling: Ad-hoc and Recurring. We will implement the following features in Q1: +A) Ad-hoc Timetable Creation: Supply teachers and school institute teachers crete ad-hoc lessons/timetables. Ad-hoc timetables are simple and should be entered manually. +B) Recurring Timetable Creation: Recurring timetables are created by normal institute teachers. These are created by supplying details about the nature of the timetable e.g. single/bi weekly, applicable days, number of lessons/blocks in the day, times of the lessons, classes for those lessons, possibly other details such as rooms etc. For a supply teacher they may indicate the insitute that they are teaching at or not (we will need to link partnering supply teacher institutes later). + + +2. Lesson & Whiteboard Association +Q4: Whiteboard Lifecycle + +Should each lesson instance have exactly one whiteboard (created on first open)? +If the timetable is ad-hoc then yes. + +Can a lesson have multiple whiteboards (e.g., prep notes + lesson board)? Yes this sounds like a good idea but only for recurring timetables belonging to an institute teachers. + +Should whiteboards persist when lessons are rescheduled/cancelled? +Canelling/rescheduling lessons is only available to institute teachers with recurring timetables. If a lesson is rescheduled/modified then we should keep the whiteboard associated with the lesson. If it is cancelled then we should delete the whiteboard. + +Q5: Student Access to Whiteboards + +Real-time collaborative during lesson only? Yes, real-time collaboration is only available during the live lessons only. + +Read-only access after lesson completion? Yes, after completion students should be able to get a read-only version of the same whiteboard (they will be able to save it to their own area when modified). + +Full editing permissions for students? For now we allow full editing permissions for the student. There is a presentation mode that we are working on and eventually we will add the ability for teachers to manage student interaction with more granularity. + +3. Scheduling Flexibility + +Q6: Ad-hoc vs Recurring +The requirement mentions both minimal ad-hoc and complex recurring timetables. Should we: + +C) Build recurrence gradually (start with ad-hoc, add recurrence later). We will implement RRULES later. + + +Q4: Timetable Draft States +Should timetables have lifecycle states? + +simple active/inactive for now, more complex states when adding rrecurrence. + + +4. Technical Implementation + +Q8: Supabase Schema Management +Current migration files are numbered (001_cc_schema.sql, etc.). For new features: +Switch to timestamp-based naming (20250225120000_...) + +Q9: Frontend Architecture +Should I create new route structures like: + +/timetable - main timetabling interface +/classes - class management +/lessons/:id - individual lesson views +Create NEW ROUTE STRUCTURES. + +5. Feature Scope & Phasing +Q10: MVP Scope Priority +From the full feature set, what's the absolute minimum for first release? + +My understanding: + +✅ Teacher creates classes with students +✅ Teacher creates simple timetable (single repeating pattern) +✅ Lessons linked to whiteboards +✅ Students access whiteboards in real-time +Out of MVP? + +Multi-week rotating schedules? Later +Full academic year with holidays? Later +Exam scheduling? Later +Report generation? Later +Duty blocks? Later +Break notes whiteboards? Later + + +Q11: Competitive Features +Are there any existing products we should study for UX patterns? + +Google Classroom? +Microsoft Teams/Classroom? + +Yes, use the research tool to research these. +Specialized tools like Firefly, iSAMS, SIMS? Not yet. We will integrate with these later. + +6. Business Logic Questions +Q12: Lesson Modifications +When a recurring lesson is modified: + + +D) All three options? Yes, do all three options below. +Edit this instance only (create exception)? +Edit this and future instances? +Edit all instances in series? + +Q13: Class Transfers +Can students move between classes mid-term? How should their whiteboard history be handled? No, we will handle this later. + +Q14: Notifications +We will not implement a notification system yet. + +Q15: Resource Attachments +Lesson resources mentioned as future consideration. Should we: + +A) Not implement now, leave schema extensible. We have started a file management system already that we will build in. \ No newline at end of file