Frontend And Backend Minutes - UOA-SE701-Group3-2021/3Lancers GitHub Wiki
This is a collection of the meeting minutes that happened with the frontend and backend sub-groups.
- Discuss data requirements for each widget √
- Discuss linting rules for both repos ×
- Discuss GitHub Actions for both repos ×
- Widgets endpoint, specify which widget(s) to get data for
- Need to make a separate call first to see which widgets
- Future: validate date of creation
- Need to think about how often to send puts to edit widget positions
- Edit mode, periodic sync?
- For puts, want to change fields in individual items (e.g. todo list item, event) by gibing some identification of item + new fields to change
- Habit trackers just changing whether a habit has been completed for a given day
- Can delete whole habit in weekly view, but can't edit start date, end date, etc.
- Backend to develop API specifications - to be done by Tuesday
- Backend and Frontend to describe their issues further and put up on GitHub project board - to be done by tomorrow's meeting
- Discuss linting rules and GitHub actions in a future meeting
- Backend to ask further questions outside of meeting
Database schemas
widgets: {
TodoList: [
{INTdate: _, position: [{_}], data [{todolistitem}], INTfuture-user_id: _}
],
Calendar: [
{INTdate: _, position: [{_}], data: [{event}], INTfuture-user_id: _}
],
HabitTracker: [
{INTdate: _, position: [{_}], INTfuture-user_id: _}
],
Text: [
{date: _, position: _, data: _}
]
}
Text is the only array that can have multiple objects with the same date value. The combination of date and position comprises the 'primary key'.
habitTrackers: [{
Name: _,
DaysOfWeek: [],
StartDate: _,
EndDate: _,
completedDates: []
}]
- Daily view: which widgets are present + their order
- Row / column values (future: size)
- Future: if we can find a way to store positions, that would be preferable.
- Text widget: text, date (accurate to teh day)
- Events
- Is all day event or not
- Date (accurate to the day)
- start time (accurate to the minute)
- end time (accurate to the minute) need to agree on the string format
- start time + end time will be set to 12am and 12am in backend to force non-null
- event name
- Future: add more fields to events e.g. location
- Text
- Due date (accurate to the day) need to agreee on the string format or timestamp
- Status (completed, not completed, cancelled, moved)
- (update status and due date)
- Backend returns all overdue ones for a given date
- Goal/habit - text
- Array of objects that are date-boolean pairs to say whether donefor that day or not
- When creating habit, add all valid dates with false values to know which dates should have habit
- Can boiund to an arbitrary max length of how lon gthey can repeat a habit for (e.g. 1 month)
- Array of objects that are date-boolean pairs to say whether donefor that day or not
Return to frontend: {Date: _, Data: [{name: _, done: true/false}]}
Stored in databae: Data [{
Name: _,
DaysOfWeek: [],
StartDate: _,
EndDate: _,
completedDates: [],
}]