Updated Roadmap (markdown)

Marcin Kurczewski 2013-10-05 09:44:17 -07:00
parent c373a28e56
commit 7035eb6cd8

@ -1,118 +1,118 @@
# Registration # Registration
- ☑ Logging in - ~~Logging in~~ done
- ☑ Logging out - ~~Logging out~~ done
- Registering - Registering
- ☑ First user becomes superadmin - ~~First user becomes superadmin~~ done
- ☑ User name - ~~User name~~ done
- ☑ Password (twice) - ~~Password (twice)~~ done
- ☑ Optional e-mail address - ~~Optional e-mail address~~ done
- ☑ Sending activation e-mail [configurable, on/off] - ~~Sending activation e-mail [configurable, on/off]~~ done
- 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"]
- Registration approval by admin [configurable, on/off] - Registration approval by admin [configurable, on/off]
- Editing one's details - Editing one's details
- E-mail address - E-mail address
- Password - Password
- Name [configurable, on/off] - Name [configurable, on/off]
- Gravatar support - Gravatar support
- Retrieving lost password through e-mail address - Retrieving lost password through e-mail address
# Shoutbox # Shoutbox
- Shoutbox support [configurable, on/off] - Shoutbox support [configurable, on/off]
- Listing messages - Listing messages
- Adding message - Adding message
- Some kind of parsing (Markdown lite?) - Some kind of parsing (Markdown lite?)
- Paging - Paging
- Endless scrolling [configurable, on/off] - Endless scrolling [configurable, on/off]
This is going to be good polygon for privileges engine. This is going to be good polygon for privileges engine.
# User pages # User pages
- Gravatar - Gravatar
- Joined on - Joined on
- Access rank - Access rank
- "Favorites" tab - "Favorites" tab
- "Uploaded" tab - "Uploaded" tab
- Manipulation controls for admins: - Manipulation controls for admins:
- Ban button - Ban button
- Access rank combobox - Access rank combobox
# Posts # Posts
## Adding new post ## Adding new post
- Content type (image, flash, youtube) - Content type (image, flash, youtube)
- The post content itself - The post content itself
- Live preview of images - Live preview of images
- Ways to select the file: - Ways to select the file:
- Drag'n'drop - Drag'n'drop
- Click to select - Click to select
- Paste url - Paste url
- Customizable post thumbnail - Customizable post thumbnail
- Flagging post: SFW/Sketchy/NSFW - Flagging post: SFW/Sketchy/NSFW
- Multiple upload - Multiple upload
- Ability to remove accidentally selected images before final upload - Ability to remove accidentally selected images before final upload
- Tags - Tags
- Autocomplete - Autocomplete
- Flagging: SFW/sketchy/NSFW - Flagging: SFW/sketchy/NSFW
- Content type changes UI behaviour (it's senseless to upload file with content type set to youtube) - 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 - 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`) - 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] - Implementation detail: secret salt concatenated to random suffix [configurable]
- Ensure no other post exists with that name. - Ensure no other post exists with that name.
## Editing posts ## Editing posts
- Implementation details: try to avoid duplicated code between post adding and editing, especially for validation stuff. - Implementation details: try to avoid duplicated code between post adding and editing, especially for validation stuff.
- Tags - Tags
- Autocomplete - Autocomplete
- Adding - Adding
- Removal - Removal
- Thumbnail - Thumbnail
- Flagging: SFW/sketchy/NSFW - Flagging: SFW/sketchy/NSFW
- Favorites - Favorites
- Adding - Adding
- Removal - Removal
- Comments - Comments
- Adding comment - Adding comment
- Modification of comment contents - Modification of comment contents
- Comment removal - Comment removal
- Comment display - Comment display
- Processing contents with Markdown parser - Processing contents with Markdown parser
- Spoiler support (`[spoiler]...[/spoiler]`?) - Spoiler support (`[spoiler]...[/spoiler]`?)
- Post permalink support (`@123`) - Post permalink support (`@123`)
- Tag permalink support (`#mushishi`) - Tag permalink support (`#mushishi`)
## Browsing posts ## Browsing posts
- Search capabilities: - Search capabilities:
- No filter, just browsing - No filter, just browsing
- Containing tag X - Containing tag X
- Not containing tag X - Not containing tag X
- Uploaded by user X - Uploaded by user X
- Favorited by user X - Favorited by user X
- Favorited by >= X users - Favorited by >= X users
- Cool boolean logic - Cool boolean logic
- Sorting capabilities: - Sorting capabilities:
- Chronologically - Chronologically
- By tag count (?) - By tag count (?)
- By favorite count - By favorite count
- By comment count - By comment count
- By content type (image, youtube, flash) - By content type (image, youtube, flash)
- Paging - Paging
- Automatic retrieval of next page when scrolled to bottom [configurable, on/off] - Automatic retrieval of next page when scrolled to bottom [configurable, on/off]
- Make SFW/sketchy/NSFW configurable: - Make SFW/sketchy/NSFW configurable:
- let admin decide what to show to registered users and what not - 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 - let admin decide what's the default mask for any logged in user
- when user changes SFW/sketchy/NSFW, remember his choice next time he logs in. - when user changes SFW/sketchy/NSFW, remember his choice next time he logs in.
## Post removal ## Post removal
- Post removal - Post removal
# Admin # Admin
- Listing users - Listing users
- Changing user passwords/mails/whatever - Changing user passwords/mails/whatever
- Renaming tags - Renaming tags
- Merging tags (!) - Merging tags (!)
- Approval of pending registrations [only if approval pending enabled in config] - 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? Almost all of above can be easily done with manual access to db. Are we sure we want to invest time implementing this?
# Misc # 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. - 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. - ~~Every request should be able to show essential information in JSON format when accessed with ?json suffix in URL. This would be *the* API.~~ done