devsoc-unsw / devsoc-unsw/notangles
[Rewrite-Frontend]: Connecting auto-timetable with backend
- Dominant language
- TypeScript
- Stars
- 79
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
## Things to implement
- route to connect frontend `Autotimetabler` with params
```typescript
const autoParams: (string | number)[] = [
startHour: number,
endHour: number,
selectedDaysStr: string,
breaksBetweenClasses: number,
daysAtUni: number
mode: enum ['hybrid', 'in person', 'online'] # adding
];
```
## Steps of data transfer
1. fronted send the constraint params and timetable_id to backend
2. backend get the selected Course Id from the timetable_id
3. backend call the graphql to get all the classes on each course
4. backend parse the class data into format for auto-timetable
5. backend request doAuto
6. backend get back the response
7. backend parse the response and update course in one transaction
8. backend return to frontend OK to invalidate the react query
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at the frontend Autotimetabler and trace the React Query request into the backend route, then follow the GraphQL class lookup and doAuto call. The work is done when the constraint parameters and timetable_id travel through the listed steps, course data is updated in one transaction, and the frontend receives OK to invalidate the React Query result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, react, typescript
- Domain
- api, full-stack
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100