Social Timetabling
Planned Features
1. Share Timetables via Link
Save button that will upload the updated/edited timetable to a backend
Build a backend
Store timetable to database
Users can send the URL for their friends to view the timetable
User can view their own timetable with the same link from different devices (without creation of accounts)
The link is a frozen (other’s cant edit) version → users can import this into their own timetable system(?)
Multiple timetables are supported; would be another timetable that is imported into their list of timetables
There is also another link which is a live view to a user’s current timetable (this is updated when a user updates their timetable)
We will support users without having to sign up still
After Accounts is Implemented
2. Adding Friends
Through one-time friend links (similar to Discord server invites)
Through friend code (similar to Steam)
Sacked the idea of using zID because this could be a privacy concern where someone’s name is revealed through zID.
A user can choose to turn on if they want to allow their friends to view their timetable (but they have to be friends).
By pressing into a friend’s profile, you can view their current timetable (if friend allows)
3. Creating Friend Groups
User can have multiple friend groups
Each friend group can have a timetable
4. One Timetable amongst a Group
Like a Google doc, friends in a group can concurrently edit (can see multiple cursors) on one timetable
e.g. A group of 3 is all doing COMP1511, there will be 3 COMP1511 cards (each with one person’s profile to a card) and dragged to a spot they prefer or on the unscheduled column.
A person can click on the + on another card to get their profile onto it → deleting their original COMP1511 card.
OR
A person can drag their card onto the same spot (overlaying before they drop the card) as another card and that would 'merge' the cards i.e. their profile is added to the other card and their original COMP1511 card is deleted.
OR everyone should have their own class card (prevents concurrent modification problems)
view that can temporarily hide other’s cards
Use:
CRDTs
websocket server to broadcast changes, use protocol buffers for sending data from notangles app to websocket server
5. Shared Events
This will build on https://csesoc.atlassian.net/jira/software/projects/NTGL/boards/3?selectedIssue=NTGL-385
But edits made to the event (e.g. changing the time or day, or deleting the event) will appear on everyone’s timetable
6. View My Timetables
A user can view their timetables from different devices on the same account.
User can have multiple timetables (feature to be implemented by T2)
7. User will have an Account
This account will store personal data
Personal details
Timetables
Friends
8. Overlay Friends' Timetables
9. See what classes friends are in
Figma Links