Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seamless Timetable Sync: Implement Account Creation and Social Sign-In for NUSMods #3749

Open
kin-chong opened this issue Jul 13, 2024 · 5 comments

Comments

@kin-chong
Copy link

Is your feature request related to a problem? Please describe.

I'm always frustrated when I have to manually transfer my timetables between different devices. It becomes inconvenient and time-consuming, especially when changes need to be made on the go.

Describe the solution you'd like

I would like NUSMods to have a feature allowing users to create an account or sign in using Google, Facebook, or Apple. This would enable automatic syncing of timetables across all devices, ensuring that any updates made on one device are reflected on all others seamlessly.

Describe alternatives you've considered

Only alternative I can really think of is the feature that has already been implemented. However, every time there is a change user would be required to resend a link to themselves again.

Additional context

Adding account creation or social sign-in options would greatly enhance user experience by providing a reliable and efficient way to manage timetables across multiple devices. This feature is especially beneficial for students who frequently switch between laptops, tablets, and smartphones for their academic planning.

@ravern
Copy link
Member

ravern commented Jul 14, 2024

Thanks for your suggestion :)

I think the challenge of adding the ability to "sign in" on NUSMods has two fronts:

  1. Technical challenge: We don't currently have a database running, so we can't actually store any custom information that isn't directly provided to us from NUS unless we set one up. That will be challenging to maintain.
  2. Data protection: Storing user information as an "NUS official project" is challenging, there is much more control over this and it might make building new stuff for NUSMods much harder.

@ravern
Copy link
Member

ravern commented Jul 14, 2024

Would love to see if we can explore unique solutions for this challenge though, since this is fundamentally just about getting data synced between mobile and web.

@iZUMi-kyouka
Copy link
Contributor

Each user may be given the choice to 'sync' the data of their NUSMods account if the user requests for that. A hash is then generated for that particular 'account', which could also be password-protected if the user wants to. Then the user can just put in the hash generated, and the password (if one is set), to load their data from the database.

Information that will make a particular user identifiable will not be collected. Some colission handling should be put in place since it is possible for multiple people to share the exact same timetable and planner data. In this sense, privacy issue is largely eliminated since the only thing that links someone with their data is the hash of the generated data.

If a database cannot be procured, then maybe a feature to download a user's data may be provided. The user can then load this data on any instance of NUSMods.

@kin-chong
Copy link
Author

Since the shareable link contains the data and information of the user's timetable:
https://nusmods.com/timetable/sem-1/share?CS1010=TUT:03,LAB:B03,SEC:1&ES1103=SEC:S13&GEA1000=TUT:D02&MA1301=LEC:1,TUT:2
and each student has OneDrive provided to them, would it be possible to have them sign in using their school account, have the information formatted in a similar way in a file and then have the file automatically uploaded and retrieved by NUSMods from the student's OneDrive?

@jloh02
Copy link
Member

jloh02 commented Aug 18, 2024

This would prove to have a number of challenges as well

  1. afaik the OneDrive API key access is restricted by NUS so will need NUS approval. this will lead to multiple data protection concerns from office side
  2. onboarding an application to NUS SSO will also require approval from NUS

An alternative that may be considered is to use third-party SSOs (e.g. Google) where users share a folder with an NUSmods account. This way data protection will be controlled purely by the user.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants