Circuitverse: User's Settings / Preferences

Created on 29 Jan 2020  路  18Comments  路  Source: CircuitVerse/CircuitVerse

Is your feature request related to a problem? Please describe.
Circiutverse is a growing platform and lack of any way to customize its behaviour by users is starting to make problems. For an example implementation of new emails system (#845) or GDPR Compliance (#379) are impossible due to lack of settings.

Describe the solution you'd like
Create a new settings page on /users/:id/settings that will match new UX style
The page should contain settings divided into categories. In my opinion, hard-coding options and adding them to the database is a bad decision. I think options should be generated via a configuration file in JSON for example:

{
    "name" : "fork-button",
    "display_name" : "Hide fork button on project pages",
    "category:" : "Platform"
}

That implementation will make settings harder to implement but will benefit in the future. Settings page should be generated via this JSON file. At database, settings can be put into one array cell. The main values like Username Email Password etc. should be hard-coded cause they won't be changed at all. Also, all settings can be represented as an object.

The settings should be accessible from the user's dropdown

image

Example fields in configuration

Account

  • Username
  • Download your information (GDPR #379)

Email #845

  • Receive Emails (main checkbox)
  • Receive Newstsleller emails (checkbox)
  • Receive fork notification emails (always, only milestones, off)
  • Receive star notification emails (always, only milestones, off)

Platform

  • Key Bindings (They will be probably added in GOSC'20)
  • Language (#963)

Security (#844 contains audit that talks about account security)

  • Change Password
  • 2FA
  • Sign out of all other sessions
  • Delete account (GDPR #379)

Describe alternatives you've considered
There are no other possible implementations at all

Are you working on this? (Yes/No)
Yes (since 5 May)

enhancement help wanted

Most helpful comment

It's best you guys divide the work. I agree with @MrBartusek taking up this and @harsha-iiiv working on i18n.

All 18 comments

We can also add an option to customize the key bindings.

how should we implement this in the database ?

@YashKumarVerma The best implementation, in my opinion, will be making some sort of array cell in a database for each user, rather than hard-coding values cause that will make adding new settings not painful at all

Platform

  • Might be used in the future

@MrBartusek I think I am missing something here. Can you elaborate?

I think notifications can also be put under the settings tab.

@shubhankarsharma00 done

Good one

Can i work on this @nitin10s @tachyons

Sure

Hey @harshgujrati, I was recently thinking about this issue and I think I could work on it and, as I can see you also claimed #963. Both this and 963 are huge projects so what about that: you will work on i18n and I shall work on that. Please respond!

Okay @MrBartusek i will make a pr in which i will make settings for user and will include language option after that you can add more settings and after completing i18n we can work together on more settings, is that okay @MrBartusek

@harshgujrati are you sure you can handle the whole system that I designed here and i18n? That quite a lot of work

It's best you guys divide the work. I agree with @MrBartusek taking up this and @harsha-iiiv working on i18n.

@harshgujrati what about that?

I was also saying the same that i will implement i18n and you work on settings, in the pr i was only making the setting tab and will add setting column in user database in which we will store the settings in the form of hash which i have done in the assingment of GSoC after that you can add various settings and we will store language preference of the user there only, is that ok @MrBartusek @nitin10s

@harshgujrati I don't think that would be good idea to make one feature in multiple prs, maybe you will work on i18n and add an option to use it after I complete my part, how about that?

okay @MrBartusek

No activity on this issue for a prolonged duration, will be closed if no further activities in next 7 days

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ankitkataria picture ankitkataria  路  4Comments

ryuk156 picture ryuk156  路  4Comments

satu0king picture satu0king  路  5Comments

satu0king picture satu0king  路  5Comments

darkshredder picture darkshredder  路  8Comments