[ROADMAP] Timetable creation in AlekSIS
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 #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 AlekSIS/onboarding/AlekSIS-App-Lesrooster#2 (closed)) (@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) -
Add queries and mutations needed for performing CRUD actions on relevant objects (especially Lesson model) -
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