From 97afa2b3accd562f978a62655169089ce0011d7b Mon Sep 17 00:00:00 2001 From: Marcin Kurczewski Date: Tue, 1 Oct 2013 14:30:10 -0700 Subject: [PATCH] Updated Roadmap (markdown) --- Roadmap.md | 171 ++++++++++++++++++++++++++++------------------------- 1 file changed, 89 insertions(+), 82 deletions(-) diff --git a/Roadmap.md b/Roadmap.md index adb3224..4b23bb2 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -1,82 +1,89 @@ -- Registration stuff - - □ Logging in - - □ Registering - - □ First user becomes superadmin - - □ User name - - □ Password (twice) - - □ Optional e-mail address - - □ 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"] - - □ Editing one's details - - □ E-mail address - - □ Password - - □ Name [configurable, on/off] - - □ Gravatar support - - □ Logging out - - □ Retrieving lost password through e-mail address -- Posts stuff - - Adding post - - □ Content type (image, flash, youtube) - - □ The post content itself - - □ Live preview of images - - Ways to select the file: - - □ Drag'n'drop - - □ Click to select - - □ Paste url - - □ Customizable post thumbnail - - [proposition] Flagging post: SFW/Sketchy/NSFW - - □ Multiple upload - - □ Ability to remove accidentally selected images before final upload - - □ Tags - - □ Autocomplete - - □ Content type changes UI behaviour (it's senseless to upload file with content type set to youtube) - - Implementation details - youtube can be stored as files as well, just plaintext containing URL/ID - - □ 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`) - - Implementation detail: secret salt concatenated to random suffix [configurable] - - Ensure no other post exists with that name. - - Editing posts - - Implementation details: try to avoid duplicated code between post adding and editing, especially for validation stuff. - - □ Tags - - □ Autocomplete - - □ Thumbnail - - [Proposition] flagging: SFW/sketchy/NSFW - - Browsing posts - - Search capabilities: - - □ No filter, just browsing - - □ Containing tag X - - □ Not containing tag X - - □ Uploaded by user X - - □ Favorited by user X - - □ Favorited by >= X users - - □ Cool boolean logic - - Sorting capabilities: - - □ Chronologically - - □ By tag count (?) - - □ By favorite count - - □ By comment count - - □ By content type (image, youtube, flash) - - □ Paging - - □ Automatic retrieval of next page when scrolled to bottom [configurable, on/off] - - If we're going to implement SFW/Sketchy/NSFW: - - □ Make these configurable what to show to registered users and what not, - Otherwise: - - □ Hide some images from unregistered users by showing them placeholder images [configurable; dictionary containing one registered-only tag -> one URL to placeholder map] - - □ In either appraoch, some kind of default filter (like there is on wallbase.cc) so registered users must opt-in before showing NSFW content - - □ Post removal - - □ Adding post to favorites - - □ Removing post from favorites -- Comments stuff - - □ Adding comment - - □ Modification of comment contents - - □ Comment removal - - □ Comment display - - □ Processing contents with Markdown parser -- Privileges stuff - - □ 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. -- Admin stuff - - □ Listing users - - □ Changing user passwords/mails/whatever - - □ Renaming tags - - □ Merging tags (!) -- 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. \ No newline at end of file +# Registration stuff +- ☐ Logging in +- ☐ **Registering** + - ☐ **First user becomes superadmin** + - ☐ **User name** + - ☐ **Password (twice)** + - ☐ **Optional e-mail address** + - ☐ 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"] + - ☐ Registration approval by admin [configurable, on/off] +- ☐ Editing one's details + - ☐ E-mail address + - ☐ Password + - ☐ Name [configurable, on/off] +- ☐ Gravatar support +- ☐ Logging out +- ☐ Retrieving lost password through e-mail address + +# Posts stuff +- Adding post + - ☐ Content type (image, flash, youtube) + - ☐ The post content itself + - ☐ Live preview of images + - Ways to select the file: + - ☐ Drag'n'drop + - ☐ Click to select + - ☐ Paste url + - ☐ Customizable post thumbnail + - [proposition] Flagging post: SFW/Sketchy/NSFW + - ☐ Multiple upload + - ☐ Ability to remove accidentally selected images before final upload + - ☐ Tags + - ☐ Autocomplete + - ☐ Content type changes UI behaviour (it's senseless to upload file with content type set to youtube) + - Implementation details - youtube can be stored as files as well, just plaintext containing URL/ID + - ☐ 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`) + - Implementation detail: secret salt concatenated to random suffix [configurable] + - Ensure no other post exists with that name. +- Editing posts + - Implementation details: try to avoid duplicated code between post adding and editing, especially for validation stuff. + - ☐ Tags + - ☐ Autocomplete + - ☐ Thumbnail + - [Proposition] flagging: SFW/sketchy/NSFW +- Browsing posts + - Search capabilities: + - ☐ No filter, just browsing + - ☐ Containing tag X + - ☐ Not containing tag X + - ☐ Uploaded by user X + - ☐ Favorited by user X + - ☐ Favorited by >= X users + - ☐ Cool boolean logic + - Sorting capabilities: + - ☐ Chronologically + - ☐ By tag count (?) + - ☐ By favorite count + - ☐ By comment count + - ☐ By content type (image, youtube, flash) + - ☐ Paging + - ☐ Automatic retrieval of next page when scrolled to bottom [configurable, on/off] + - If we're going to implement SFW/Sketchy/NSFW: + - ☐ Make these configurable what to show to registered users and what not, + Otherwise: + - ☐ Hide some images from unregistered users by showing them placeholder images [configurable; dictionary containing one registered-only tag -> one URL to placeholder map] + - ☐ In either appraoch, some kind of default filter (like there is on wallbase.cc) so registered users must opt-in before showing NSFW content +- ☐ Post removal +- ☐ Adding post to favorites +- ☐ Removing post from favorites + +# Comments stuff +- ☐ Adding comment +- ☐ Modification of comment contents +- ☐ Comment removal +- ☐ Comment display + - ☐ Processing contents with Markdown parser + +# Privileges stuff +- ☐ 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. + +# Admin stuff +- ☐ 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. \ No newline at end of file