This is transient file that lists functionalities to be implemented before
first major release.

everything related to posts:
    - single post view
        - post content
        - post tags
            - number of tag usages
        - basic information
            - uploader's picture
                - remember about support for anonymous uploads
            - safety
            - source
            - image dimensions
            - time of last edit
            - time of upload
            - time of last feature
            - how many times the post was featured
        - download
            - permalink
        - delete
        - feature
        - fav
        - score (see notes about scoring)
        - editing
            - tags
            - source
            - safety
            - content
            - thumb
            - relations
            - ability to loop video posts
            - post edit history (think
              http://konachan.com/history?search=post%3A188614)
        - relations
        - previous and next post (difficult)
            - remember last search
            - take care of pages
            - add A/D hotkeys
        - hiding posts
        - link to iqdb and/or tineye

    - featured posts
        - ability to feature the post
        - show the post on main page
        - tag list
        - uploader

    - random post
        - regard safety settings

    - ability to paste many urls in post upload

    - post listing
        - better thumbnail loading
        - content type indicators (try to use CSS)
        - fav count
        - score
        - comment count
        - regard safety settings
        - add warning if no posts were found
        - search filters
            - tag
            - -tag
            - submit:rr-
            - comment:rr-
            - comment: 3..5
            - fav:rr-
            - fav:3..5
            - score:3..5
            - tag:3..5
            - date:today
            - date:yesterday
            - date:yyyy[-mm[-dd]]..yyyy[-mm[-dd]]
            - filesize:3K..5M
            - imgsize:huge/large/medium/small
            - id:3,4,5
            - hash:postName
            - type:img/flash/yt/video
            - special:liked
            - special:disliked
            - special:fav
            - special:hidden
        - search order
            - order:id
            - order:date
            - order:score
            - order:comments
            - order:favs
            - order:tags
            - order:commentdate
            - order:favdate
            - order:filesize
            - order:random (at least unstable version)
        - safe/sketchy/unsafe buttons and top navigation search goes to post
          list presenter

everything related to users:
    - banning
    - show link to user's uploads
    - show link to user's favs
    - show link to user's liked posts
    - better avatar loading

everything related to tags:
    - tag listing
    - tag autocompletion (difficult)
    - time of last tag usage
    - time of tag addition
    - mass tag
    - tag merging
    - editing tags
        - tag relations
        - tag aliases
        - tag categories (from config.ini)
        - tag descriptions
        - tag edit history

everything related to comments:
    - adding comments
    - listing comments in post view
    - listing comments in comment list view
    - deleting
    - editing
    - markdown
    - score (see notes about scoring)

refactors:
    - make PostDao use TagDao when creating not existing tags (perhaps use
      separate PostTagDao for this)
    - post view proxy should retrieve full tags and full user
    - centralize markdown prefix decorators
    - add enum validation in IValidatables (needs refactors of enums and
      possible disposal of EnumHelper in favor of something more subtle)
    - (idea) keep denormalized data in separate tables, i.e. tag usages in
      tag_meta or post favorite count in post_meta, so that it's obvious what
      can be recalculated on demand and what is real data
    - change AbstractSearchService to AbstractSearchParser
    - embed AbstractSearchService into Dao (it sucks to include XSearchService
      together with Dao)
    - simplify template loading in presenters - right now template loading
      requires _, util and promise:
          promise.wait(util.loadTemplate('blah'))
              .then(function(html) {
                  template = _.template(html); });
    - move content spinner code to separate module - it makes little sense for
      individual presenters to use PresenterManager

miscellaneous:
    - add customizable favicon
    - add customizable logo
    - add log engine and log everything that should be logged
        - I don't think browsing online logs is very necessary
    - add help, api documentation
    - add version on homepage that reads version from package.json and git hash
    - make script faster, right now every request to backend takes 200ms
      (current suspect: dependency injector and sqlite)
    - add tool for migrating szurubooru database
    - endless pager should include information about page number
    - add README and INSTALL - apache2 has good README:
      http://svn.apache.org/repos/asf/httpd/httpd/trunk/README
      remember to mention mod_mime_magic
    - add spinner to forms such as registration, user query, login, settings
      etc. make sure the code isn't too duplicated.

notes about scoring:
    - anonymous users should be able to score posts
    - anonymous users should be able to revoke and correct their scores
    - it should be difficult to score post repeatedly (add protection in local
      storage, anything more is probably an overkill)
    - scored of authorized users should be persisted into database so it can be
      searched for with special:liked and special:disliked

some day:
    - configure mails and ensure it works with gmail