[ROADMAP] Timetable creation in AlekSIS #59

Closed
opened 2023-05-26 15:31:09 +02:00 by yuha · 29 comments
Member

The following things have to implemented and tested:

  • Back- and frontend for planning of lessons: Linking teachers to courses and providing courses with designated lesson count (per week)
    • Planning of school structure (sort classes into grades and courses into classes)
  • Frontend for (manual) group-wise creating and editing of timetables based on the new timetable data model structure described in https://edugit.org/AlekSIS/official/AlekSIS/-/issues/58
  • Ensuring compatibility with existing data, e.g. from past UNTIS imports
  • Inclusion of other timed events (e.g. holidays, school events, exams ...) in timetable creation process

While developing the timetable frontend, the following requirements (partly expressed by pilot schools) have to be taken into consideration:

  • Blocking time slots/rooms/relevant persons in timetable creation frontend in case a conflict exists (e.g. when the teacher who is supposed to teach a lesson in question is already teaching another one at the same time)
  • Collect statistics about the work load of teachers (= the lessons/substitutions taught), visualize this information and use it e.g. when creating substituted lessons
  • Allow for planning of multiple parallel courses in one group ("Wahlpflichtkurse")/non-class-based lesson planning ("Kurssystem")
  • long term: Reach level of automation comparable with established/already in use timetable planning software avoiding increased workload - e.g. consideration of other concurring events (final goal: mainly automatically created timetables without much need for manual correction)
  • long term: Also allow planning of supervisions and substitutions via the new frontend; short term: Ensure generalization of frontend components so that the said features can be implemented without much effort
  • Allow editing of all information that is supposed to be used by the calendar frontend/delivered via iCal feed (e.g. notes in lessons, special colors, ...?)
  • Consider possible use case of lessons not taking place every week -> implications for frontend?
  • Consider partly usage of existing calendar component for some parts of the workflow
  • TBA (considering e.g. meeting with HNS)

In order to implement the new features given the requirements described above, the following steps are suggested:

  • Collect ideas on the UI implementation of common workflows in timetable creation processes (considering the workflows of existing software) resulting in wireframes demonstrating the frontend components to be created
  • Implement lesson planning in front- and backend
    • Implement school structure planning (@ZugBahnHof)
      • Extend group data model in order to represent grades (Jahrgänge) and classes (→ roles; also @ZugBahnHof)
      • Create school structure planning component
    • Implement course planning ("Unterrichtsplanung") (TimeboundCourseConfig model in Lesrooster https://edugit.org/AlekSIS/onboarding/AlekSIS-App-Lesrooster/-/issues/2) (@yuha)
      • Extend data model for courses in order to link lesson quotas to courses
      • Create course planning component
  • Implement timetable creation ("Stundenplanerstellung"/"Magnettafel") components (in which app?) (@yuha and @ZugBahnHof)
  • Implement frontend linkage between Cursus/Lesrooster and newly created timetable creation components
  • Check accessibility of relevant external data (e.g. other events, groups, ...) via GraphQL API and, if necessary, expand it
  • Check existing permission structure in relevant apps and, if necessary, adapt it
  • Drop existing substitution creation process
The following things have to implemented and tested: - [ ] Back- and frontend for planning of lessons: Linking teachers to courses and providing courses with designated lesson count (per week) - [ ] Planning of school structure (sort classes into grades and courses into classes) - [ ] Frontend for (manual) group-wise creating and editing of timetables based on the new timetable data model structure described in https://edugit.org/AlekSIS/official/AlekSIS/-/issues/58 - [ ] Ensuring compatibility with existing data, e.g. from past UNTIS imports - [ ] Inclusion of other timed events (e.g. holidays, school events, exams ...) in timetable creation process While developing the timetable frontend, the following requirements (partly expressed by pilot schools) have to be taken into consideration: - [ ] Blocking time slots/rooms/relevant persons in timetable creation frontend in case a conflict exists (e.g. when the teacher who is supposed to teach a lesson in question is already teaching another one at the same time) - [ ] Collect statistics about the work load of teachers (= the lessons/substitutions taught), visualize this information and use it e.g. when creating substituted lessons - [ ] Allow for planning of multiple parallel courses in one group ("Wahlpflichtkurse")/non-class-based lesson planning ("Kurssystem") - [ ] long term: Reach level of automation comparable with established/already in use timetable planning software avoiding increased workload - e.g. consideration of other concurring events (final goal: mainly automatically created timetables without much need for manual correction) - [ ] long term: Also allow planning of supervisions and substitutions via the new frontend; short term: Ensure generalization of frontend components so that the said features can be implemented without much effort - [ ] Allow editing of all information that is supposed to be used by the calendar frontend/delivered via iCal feed (e.g. notes in lessons, special colors, ...?) - [ ] Consider possible use case of lessons not taking place every week -> implications for frontend? - [x] Consider partly usage of existing calendar component for some parts of the workflow - [ ] TBA (considering e.g. meeting with HNS) In order to implement the new features given the requirements described above, the following steps are suggested: - [x] Collect ideas on the UI implementation of common workflows in timetable creation processes (considering the workflows of existing software) resulting in wireframes demonstrating the frontend components to be created - [ ] Implement lesson planning in front- and backend - [x] Implement school structure planning (@ZugBahnHof) - [x] Extend group data model in order to represent grades (Jahrgänge) and classes (→ roles; also @ZugBahnHof) - [x] Create school structure planning component - [x] Implement course planning ("Unterrichtsplanung") (`TimeboundCourseConfig` model in Lesrooster https://edugit.org/AlekSIS/onboarding/AlekSIS-App-Lesrooster/-/issues/2) (@yuha) - [x] Extend data model for courses in order to link lesson quotas to courses - [x] Create course planning component - [x] Implement timetable creation ("Stundenplanerstellung"/"Magnettafel") components (in which app?) (@yuha and @ZugBahnHof) - [x] Add queries and mutations needed for performing CRUD actions on relevant objects (especially Lesson model) - [x] Check usability of https://edugit.org/AlekSIS/libs/vue-draggable-grid and, if necessary, adapt it to fit new requirements - [ ] Implement frontend linkage between Cursus/Lesrooster and newly created timetable creation components - [ ] Check accessibility of relevant external data (e.g. other events, groups, ...) via GraphQL API and, if necessary, expand it - [ ] Check existing permission structure in relevant apps and, if necessary, adapt it - [ ] Drop existing substitution creation process
Author
Member

assigned to @yuha

assigned to @yuha
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Owner
1. Fächer, Räume, Slots, Lehrer definieren
2. Gruppendefinition (Jahrgang → Klasse → ggf. Kurs)
3. (eigentlich 4) Kurse definieren (ggf. mit automatischer Anlage von Kursgruppe, konfigurierbar)
4. Unterrichtsplanung (Stunden und Lehrkräfte zu Kursen
5. "Magnettafel" → klassenweise Planung
	5.1. klassenübergreifenden Unterricht (Gruppe des Kurses ist eine andere als die Klasse, möglicherweise die Obergruppe)
	5.2. jede Gruppenebene planbar, mit gescheiter Kollisionserkennung über Ebenen hinweg
	5.3. enthalten: Planungsraster, rechts zu planenden Elemente, unten aufgeteilt: Raumplan, Lehrerplan
	5.4. Auswahl für ValidityRange
	5.5. Kopierfunktion
	5.6. Publish-Funktion
	5.7. Auf der jeweiligen Gruppenebene werden angezeigt
		5.7.1. Kurse mit der gleichen Gruppe als Obergruppe
		5.7.2. Kurse mit der gleichen Gruppe
		5.7.3. Kurse mit mehreren Obergruppen, die Untergruppen von der aktuellen Gruppenebene sind
		5.7.4. immer die Gruppen und die Obergruppen dazu schreiben
1. Fächer, Räume, Slots, Lehrer definieren 2. Gruppendefinition (Jahrgang → Klasse → ggf. Kurs) 3. (eigentlich 4) Kurse definieren (ggf. mit automatischer Anlage von Kursgruppe, konfigurierbar) 4. Unterrichtsplanung (Stunden und Lehrkräfte zu Kursen 5. "Magnettafel" → klassenweise Planung 5.1. klassenübergreifenden Unterricht (Gruppe des Kurses ist eine andere als die Klasse, möglicherweise die Obergruppe) 5.2. jede Gruppenebene planbar, mit gescheiter Kollisionserkennung über Ebenen hinweg 5.3. enthalten: Planungsraster, rechts zu planenden Elemente, unten aufgeteilt: Raumplan, Lehrerplan 5.4. Auswahl für ValidityRange 5.5. Kopierfunktion 5.6. Publish-Funktion 5.7. Auf der jeweiligen Gruppenebene werden angezeigt 5.7.1. Kurse mit der gleichen Gruppe als Obergruppe 5.7.2. Kurse mit der gleichen Gruppe 5.7.3. Kurse mit mehreren Obergruppen, die Untergruppen von der aktuellen Gruppenebene sind 5.7.4. immer die Gruppen und die Obergruppen dazu schreiben
Author
Member

marked the checklist item Collect ideas on the UI implementation of common workflows in timetable creation processes (considering the workflows of existing software) resulting in wireframes demonstrating the frontend components to be created as completed

marked the checklist item **Collect ideas on the UI implementation of common workflows in timetable creation processes (considering the workflows of existing software) resulting in wireframes demonstrating the frontend components to be created** as completed
Author
Member

changed the description

changed the description
Member

changed the description

changed the description
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

changed the description

changed the description
Author
Member

created branch 59-roadmap-timetable-creation-in-aleksis to address this issue

created branch [`59-roadmap-timetable-creation-in-aleksis`](/AlekSIS/official/AlekSIS/-/compare/master...59-roadmap-timetable-creation-in-aleksis) to address this issue
Author
Member

changed the description

changed the description
Owner

marked the checklist item Implement school structure planning (@ZugBahnHof) as completed

marked the checklist item **Implement school structure planning (@ZugBahnHof)** as completed
Owner

marked the checklist item Extend group data model in order to represent grades (Jahrgänge) and classes (→ roles; also @ZugBahnHof) as completed

marked the checklist item **Extend group data model in order to represent grades (Jahrgänge) and classes (→ roles; also @ZugBahnHof)** as completed
Owner

marked the checklist item Create school structure planning component as completed

marked the checklist item **Create school structure planning component** as completed
Owner

marked the checklist item Implement course planning ("Unterrichtsplanung") (TimeboundCourseConfig model in Lesrooster https://edugit.org/AlekSIS/onboarding/AlekSIS-App-Lesrooster/-/issues/2) (@yuha) as completed

marked the checklist item **Implement course planning ("Unterrichtsplanung") (`TimeboundCourseConfig` model in Lesrooster https://edugit.org/AlekSIS/onboarding/AlekSIS-App-Lesrooster/-/issues/2) (@yuha)** as completed
Owner

marked the checklist item Extend data model for courses in order to link lesson quotas to courses as completed

marked the checklist item **Extend data model for courses in order to link lesson quotas to courses** as completed
Owner

marked the checklist item Create course planning component as completed

marked the checklist item **Create course planning component** as completed
Owner

marked the checklist item Check usability of https://edugit.org/AlekSIS/libs/vue-draggable-grid and, if necessary, adapt it to fit new requirements as completed

marked the checklist item **Check usability of https://edugit.org/AlekSIS/libs/vue-draggable-grid and, if necessary, adapt it to fit new requirements** as completed
Owner

marked the checklist item Add queries and mutations needed for performing CRUD actions on relevant objects (especially Lesson model) as completed

marked the checklist item **Add queries and mutations needed for performing CRUD actions on relevant objects (especially Lesson model)** as completed
Owner

marked the checklist item Implement timetable creation ("Stundenplanerstellung"/"Magnettafel") components (in which app?) (@yuha and @ZugBahnHof) as completed

marked the checklist item **Implement timetable creation ("Stundenplanerstellung"/"Magnettafel") components (in which app?) (@yuha and @ZugBahnHof)** as completed
Owner

marked the checklist item Consider partly usage of existing calendar component for some parts of the workflow as completed

marked the checklist item **Consider partly usage of existing calendar component for some parts of the workflow** as completed
Sign in to join this conversation.
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
aleksis/AlekSIS#59
No description provided.