Updated Roadmap (markdown)

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

@ -1,118 +1,118 @@
# Registration
- ☑ Logging in
- ☑ Logging out
- 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
- Retrieving lost password through e-mail address
- ~~Logging in~~ done
- ~~Logging out~~ done
- Registering
- ~~First user becomes superadmin~~ done
- ~~User name~~ done
- ~~Password (twice)~~ done
- ~~Optional e-mail address~~ done
- ~~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"]
- Registration approval by admin [configurable, on/off]
- Editing one's details
- E-mail address
- Password
- Name [configurable, on/off]
- Gravatar support
- Retrieving lost password through e-mail address
# Shoutbox
- Shoutbox support [configurable, on/off]
- Listing messages
- Adding message
- Some kind of parsing (Markdown lite?)
- Paging
- Endless scrolling [configurable, on/off]
- Shoutbox support [configurable, on/off]
- Listing messages
- Adding message
- Some kind of parsing (Markdown lite?)
- Paging
- Endless scrolling [configurable, on/off]
This is going to be good polygon for privileges engine.
# User pages
- Gravatar
- Joined on
- Access rank
- "Favorites" tab
- "Uploaded" tab
- Manipulation controls for admins:
- Ban button
- Access rank combobox
- Gravatar
- Joined on
- Access rank
- "Favorites" tab
- "Uploaded" tab
- Manipulation controls for admins:
- Ban button
- Access rank combobox
# Posts
## Adding new post
- Content type (image, flash, youtube)
- The post content itself
- Live preview of images
- 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)
- 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`)
- 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`)
- 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
- 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 next time he logs in.
- 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 next time he logs in.
## Post removal
- Post removal
- Post removal
# Admin
- Listing users
- Changing user passwords/mails/whatever
- Renaming tags
- Merging tags (!)
- Approval of pending registrations [only if approval pending enabled in config]
- Listing users
- Changing user passwords/mails/whatever
- Renaming tags
- 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.
- 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.~~ done