source-academy / frontend

Frontend of Source Academy, an online experiential environment for computational thinking (React, Redux, Saga, Blueprint)
https://sourceacademy.org
Apache License 2.0
103 stars 168 forks source link

[Request] Settings in user profile #1168

Open JingYenLoh opened 4 years ago

JingYenLoh commented 4 years ago

Ace editor already supports alternative bindings such as Vim or Emacs modes. This is a request to enable choosing those bindings, so we can edit source code in our preferred way.

martin-henz commented 4 years ago

I'm quite interested in this. How would we present this to the users? Quite some time ago, someone floated the idea of a "Settings" menu item, along with "Help" and "About". In those settings, we could specify editor options and runtime limits, for example.

Screenshot 2020-05-27 at 1 07 22 PM
JingYenLoh commented 4 years ago

I envisioned a dropdown above the editor, allowing the user to select the editing mode.

image

However, I am unfamiliar with SA20/21 goals. A Settings page would make sense if cadet-frontend is intending to implement more user customizations. Additionally, keeping the option behind a Settings page would avoid confusion, as such editing modes are unrelated to the rest of the controls, which are all part of the module's learning goals.

Help and About are out of the scope of this request. I'd defer to cadet-frontend maintainers to decide those, in a separate issue.

martin-henz commented 4 years ago

Thanks for the mock-up!

I think such a drop-down menu would be much too prominent. Students would typically change their Ace mode three or four times max throughout the entire semester, and the majority of students (I estimate) would not touch the Ace mode at all. That's why I thought a less prominent and more global setting would be preferrable. I think local browser storage would be fine for this. (As opposed to saving this on the server.) This way the setting would also work for casual users of the textbook.

Not sure if you understood my comment about "Help" and "About". I only wanted to suggest a place for the "Settings" option. A good place might be here:

martin-henz commented 4 years ago

Regarding the goals: I'm adding "online" to the SA tagline: Immersive online experiential environment for learning programming

The editor plays a central role in this aspiration, so your comments and suggestions are very much appreciated!

martin-henz commented 4 years ago
Screenshot 2020-06-13 at 4 08 33 PM

Things are moving fast. We already have a profile page!

We could have the following items as "Settings" in the profile page:

Screenshot 2020-06-13 at 4 13 00 PM
martin-henz commented 2 years ago

This could be part of the user setting: #1847