by Ted Neward, Nick Chalko
Make these subsections
The proposed features of GeekBlog are done in XP-style "stories": one-sentence
descriptions that hopefully convey the basic heart of the idea. Some are in
varying degrees of support already, but need either further extension, revision,
refactoring, or amendment. They are listed roughly in the desired order of
completion. If anybody is already at work on this, their name is listed in brackets
following the story. Please contact Ted Neward before starting to work on a
particular feature, so as to avoid accidental duplication of effort.
The following list of stories need to be done to call GeekBlog a 1.0 release:
- Allow posting entries via EMail from weblogauthor
[Ted Neward, Steve Loughran]
- EMail subject == blog title
- EMail body == blog body
- Attachments == files to store on site (???)
- Verify From: address is on accepted list of inputs. (This won't
protect against all forms of attacks--for example, attackers can
always mock up the From: address in a bogus email attack--but at
the moment it's not worth spending a million to protect a dime.)
- (Other security options include doing PGP or hashing the message;
basic goal here is to be able to post new blog entries from
Microsoft Outlook running NewsGator--in essence, make Outlook the
one-stop blog center.)
- Validate user-entered blog text against RSS validator before accepting;
also, do basic screening against malicious HTML (only allow certain HTML
tags, toss out anything that smells suspicious--failfast, as opposed to
- Auto-submit to RSSValidator online?
- Do simple XML parse of entry-as-RSS?
- CDATA-escape the whole entry?
- Allow entries to be marked as "articles":
[Ted Neward] -- DONE!
- List 10 most recent articles on sidepanel
- Provide "All articles" link to list of all articles on sidepanel
- Nospam email from blog comments; this means when Don Box posts a comment and
gives his email address, turn "email@example.com" into "dbox_at_microsoft.com"
so as to help him avoid being victimized by spam harvesters [Ted Neward] -- DONE!
- External configuration (don't rely on web.xml anymore) [Ted Neward] -- DONE!
- Allow file(s) upload for entry reference; this means when a new entry is posted,
accept a (dynamically-growing) list of files to upload, as well as the relative
filepath to store those files at. Make it easy to upload images, binary archives,
and so on, to the site. Create directories as necessary. [Ted Neward] -- DONE!
Any database changes should be auto-upgrading; DataManager should be
able to automatically install the schema if GeekBlog has never been run before,
or else alter an existing schema to upgrade it to latest versions.
The remainder of the list is as follows:
- Add commenter URL to comments as optional data item
- A few different "skins" for the site (CSS and possibly different-looking
JSP pages) would be nice just to verify that it can be done. What might
*really* be interesting would be to randomly select the skin, like the
headshot currently does.
- Provide HTTP If-Modified-Since and Last-Modified headers for RSS feed
- WYSIWYG HTML editor in edit.jsp
- Support "quoting" a la Radio
- Lucene integration for fast content searches [Brian Maso]
- "Remember" comment information in cookie
- Offline entry support (WebService to accept posted entries) [Steve Loughran]
- Pingback client support
- Pingback server support
- Trackback client support
- Trackback server support
- Collapse similar referrals
- JDBCDataManager implementations: MSSQLDataManager, MySQLDataManager, ...
- General statistics reporting
- Weblog hit count, RSS hit count, etc.
- Complete referral hit report
- Email statistics to weblogauthor
- Add comments as part of RSS feed
- Entry categories
- Add "category" to all DataManager APIs
- Entries can belong to 0..* categories
- Allow viewing blog by category axis ("category" query param)
- Import entries from RSS (for restoration)
- Export entries as PDF (RSS->FO->PDF) (for readable archival)
- Realistically this would be easier if we had an XSL:FO tag; is this
under way at the Jakarta Taglibs XTags project? Should it be?
- Mailing list integration:
- New users sign up via weblog; users must confirm by clicking link; etc.
- Provide mailing list removal page
- EMail posted entries to mailing list
- EMail posted comments to mailing list
- Multiple user weblog support
- userid becomes part of URLs; may require "hiding" all endpoints
behind a single servlet with mapping--FrontController servlet that
redirects to JSP based on part of the URL. For example:
(Naturally, nothing prevents a host from running multiple GeekBlogs
already, each in its own ServletContext. This story assumes we want
multiple users in one GeekBlog DataManager.)
- http://host/geekblog/ted/ ==> go to Ted's index.jsp
- http://host/geekblog/ted?date=20030101 ==> go to Ted's index.jsp?date=20030101
- http://host/geekblog/ted/login ==> go to Ted's login.jsp
- http://host/geekblog/kevin/ ==> go to Kevin's index.jsp
- http://host/geekblog/brian?date=20030101 ==> go to Brian's index.jsp?date=20030101
- http://host/geekblog/nick/login ==> go to Nick's login.jsp
- . . .
- Add user to all DataManager APIs