Revamp Preferences
We will be making preferences persistent across sessions by storing them in a relational database.
I believe that the available options should still be populated on the page from the preferences.json
file, as this allows us to specify templated options for select
elements quite easily. Querying the preferences database would then allow us to pre-fill out the form with the currently active options.
New fields that the preferences form should handle are:
-
Toolset preferences (Programming, Writing) -
Code highlighting colourscheme (see https://jmblog.github.io/color-themes-for-google-code-prettify/ for a list of themes, it would likely be sufficient to store the name of a given theme in the User Preferences database) -
User's real name (text entry box, store the string in database) -
User's email address -
User bio -
Profile avatar -
Class enrollment (an array, of length one or more)
The revamped preference page should also allow a user to upload either a PNG or JPG file to display as their avatar on their profile page. See issue #36 (closed) for more details on proposed design and discussion on implementation.