diff --git a/Roadmap.md b/Roadmap.md index ca1da6e..08e77cb 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -28,67 +28,69 @@ # Posts ## Adding new 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 - - ☐ Flagging: SFW/sketchy/NSFW - - ☐ 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. +- ☐ 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 +- ☐ Flagging post: SFW/Sketchy/NSFW +- ☐ Multiple upload + - ☐ Ability to remove accidentally selected images before final upload +- ☐ Tags + - ☐ Autocomplete +- ☐ Flagging: SFW/sketchy/NSFW +- ☐ 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 - - ☐ Adding - - ☐ Removal - - ☐ Thumbnail - - ☐ Flagging: SFW/sketchy/NSFW - - ☐ Favorites - - ☐ Adding - - ☐ Removal - - ☐ Comments - - ☐ Adding comment - - ☐ Modification of comment contents - - ☐ Comment removal - - ☐ Comment display - - ☐ Processing contents with Markdown parser - - ☐ Spoiler support (`[spoiler]...[/spoiler]`?) - - ☐ Post permalink support (`@123`) - - ☐ Tag permalink support (`#mushishi`) +- Implementation details: try to avoid duplicated code between post adding and editing, especially for validation stuff. +- ☐ Tags + - ☐ Autocomplete + - ☐ Adding + - ☐ Removal +- ☐ Thumbnail +- ☐ Flagging: SFW/sketchy/NSFW +- ☐ Favorites + - ☐ Adding + - ☐ Removal +- ☐ Comments + - ☐ Adding comment + - ☐ Modification of comment contents + - ☐ Comment removal + - ☐ Comment display + - ☐ Processing contents with Markdown parser + - ☐ Spoiler support (`[spoiler]...[/spoiler]`?) + - ☐ Post permalink support (`@123`) + - ☐ Tag permalink support (`#mushishi`) + ## 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 +- 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] +- ☐ Make SFW/sketchy/NSFW configurable: + - ☐ let admin decide what to show to registered users and what not + - ☐ let admin decide what's the default mask for any logged in user + - ☐ when user changes SFW/sketchy/NSFW, remember his choice. + ## Post removal - ☐ Post removal @@ -99,6 +101,8 @@ - ☐ Merging tags (!) - ☐ Approval of pending registrations [only if approval pending enabled in config] +Almost all of above can be easily done with manual access to db. Are we sure we want to invest time implementing this? + # Misc - ☐ 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. - ☑ 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