Updated Roadmap (markdown)

Marcin Kurczewski 2013-10-01 14:30:10 -07:00
parent b60223f4cc
commit 97afa2b3ac

@ -1,82 +1,89 @@
- Registration stuff # Registration stuff
- □ Logging in - ☐ Logging in
- □ Registering - ☐ **Registering**
- □ First user becomes superadmin - ☐ **First user becomes superadmin**
- □ User name - ☐ **User name**
- □ Password (twice) - ☐ **Password (twice)**
- □ Optional e-mail address - ☐ **Optional e-mail address**
- □ Sending activation e-mail [configurable, on/off] - ☐ Sending activation e-mail [configurable, on/off]
- □ Must-check checkboxes [configurable, on/off +texts in Markdown so we can do "I agree that by registering I will be shown R18 content"] - ☐ Must-check checkboxes [configurable, on/off +texts in Markdown so we can do "I agree that by registering I will be shown R18 content"]
- □ Editing one's details - ☐ Registration approval by admin [configurable, on/off]
- □ E-mail address - ☐ Editing one's details
- □ Password - ☐ E-mail address
- □ Name [configurable, on/off] - ☐ Password
- □ Gravatar support - ☐ Name [configurable, on/off]
- □ Logging out - ☐ Gravatar support
- □ Retrieving lost password through e-mail address - ☐ Logging out
- Posts stuff - ☐ Retrieving lost password through e-mail address
- Adding post
- □ Content type (image, flash, youtube) # Posts stuff
- □ The post content itself - Adding post
- □ Live preview of images - ☐ Content type (image, flash, youtube)
- Ways to select the file: - ☐ The post content itself
- □ Drag'n'drop - ☐ Live preview of images
- □ Click to select - Ways to select the file:
- □ Paste url - ☐ Drag'n'drop
- □ Customizable post thumbnail - ☐ Click to select
- [proposition] Flagging post: SFW/Sketchy/NSFW - ☐ Paste url
- □ Multiple upload - ☐ Customizable post thumbnail
- □ Ability to remove accidentally selected images before final upload - [proposition] Flagging post: SFW/Sketchy/NSFW
- □ Tags - ☐ Multiple upload
- □ Autocomplete - ☐ Ability to remove accidentally selected images before final upload
- □ Content type changes UI behaviour (it's senseless to upload file with content type set to youtube) - ☐ Tags
- Implementation details - youtube can be stored as files as well, just plaintext containing URL/ID - ☐ Autocomplete
- □ Image gets unique file name so that it can be hotlinked by registered users, but it's url cannot be guessed by unregistered ones (accessing nsfw post by `/post/30065d2112f85177a20b81d2c4dd08fe.jpg` vs `/post/244.jpg`) - ☐ Content type changes UI behaviour (it's senseless to upload file with content type set to youtube)
- Implementation detail: secret salt concatenated to random suffix [configurable] - Implementation details - youtube can be stored as files as well, just plaintext containing URL/ID
- Ensure no other post exists with that name. - ☐ Image gets unique file name so that it can be hotlinked by registered users, but it's url cannot be guessed by unregistered ones (accessing nsfw post by `/post/30065d2112f85177a20b81d2c4dd08fe.jpg` vs `/post/244.jpg`)
- Editing posts - Implementation detail: secret salt concatenated to random suffix [configurable]
- Implementation details: try to avoid duplicated code between post adding and editing, especially for validation stuff. - Ensure no other post exists with that name.
- □ Tags - Editing posts
- □ Autocomplete - Implementation details: try to avoid duplicated code between post adding and editing, especially for validation stuff.
- □ Thumbnail - ☐ Tags
- [Proposition] flagging: SFW/sketchy/NSFW - ☐ Autocomplete
- Browsing posts - ☐ Thumbnail
- Search capabilities: - [Proposition] flagging: SFW/sketchy/NSFW
- □ No filter, just browsing - Browsing posts
- □ Containing tag X - Search capabilities:
- □ Not containing tag X - ☐ No filter, just browsing
- □ Uploaded by user X - ☐ Containing tag X
- □ Favorited by user X - ☐ Not containing tag X
- □ Favorited by >= X users - ☐ Uploaded by user X
- □ Cool boolean logic - ☐ Favorited by user X
- Sorting capabilities: - ☐ Favorited by >= X users
- □ Chronologically - ☐ Cool boolean logic
- □ By tag count (?) - Sorting capabilities:
- □ By favorite count - ☐ Chronologically
- □ By comment count - ☐ By tag count (?)
- □ By content type (image, youtube, flash) - ☐ By favorite count
- □ Paging - ☐ By comment count
- □ Automatic retrieval of next page when scrolled to bottom [configurable, on/off] - ☐ By content type (image, youtube, flash)
- If we're going to implement SFW/Sketchy/NSFW: - ☐ Paging
- □ Make these configurable what to show to registered users and what not, - ☐ Automatic retrieval of next page when scrolled to bottom [configurable, on/off]
Otherwise: - If we're going to implement SFW/Sketchy/NSFW:
- □ Hide some images from unregistered users by showing them placeholder images [configurable; dictionary containing one registered-only tag -> one URL to placeholder map] - ☐ Make these configurable what to show to registered users and what not,
- □ In either appraoch, some kind of default filter (like there is on wallbase.cc) so registered users must opt-in before showing NSFW content Otherwise:
- □ Post removal - ☐ Hide some images from unregistered users by showing them placeholder images [configurable; dictionary containing one registered-only tag -> one URL to placeholder map]
- □ Adding post to favorites - ☐ In either appraoch, some kind of default filter (like there is on wallbase.cc) so registered users must opt-in before showing NSFW content
- □ Removing post from favorites - ☐ Post removal
- Comments stuff - ☐ Adding post to favorites
- □ Adding comment - ☐ Removing post from favorites
- □ Modification of comment contents
- □ Comment removal # Comments stuff
- □ Comment display - ☐ Adding comment
- □ Processing contents with Markdown parser - ☐ Modification of comment contents
- Privileges stuff - ☐ Comment removal
- □ Access ranks that are mapped into bit arrays, where each bit means something else (for example, admin has "can edit any comment" set to 1 while anonymous user has "can upload new post" set to 0). Configurable. - ☐ Comment display
- Admin stuff - ☐ Processing contents with Markdown parser
- □ Listing users
- □ Changing user passwords/mails/whatever # Privileges stuff
- □ Renaming tags - ☐ Access ranks that are mapped into bit arrays, where each bit means something else (for example, admin has "can edit any comment" set to 1 while anonymous user has "can upload new post" set to 0). Configurable.
- □ Merging tags (!)
- Misc # Admin stuff
- ▣ Every request should be able to show essential information in JSON format when accessed with ?json suffix in URL. This would be *the* API. - ☐ Listing users
- ☐ Changing user passwords/mails/whatever
- ☐ Renaming tags
- ☐ Merging tags (!)
- ☐ Approval of pending registrations [only if approval pending enabled in config]
# Misc
- ☑ Every request should be able to show essential information in JSON format when accessed with ?json suffix in URL. This would be *the* API.