-
Notifications
You must be signed in to change notification settings - Fork 11
Use Case Blog
This isn't intending to be the One True Blog Platform -- we shouldn't fool ourselves into believing that we are going to compete with Wordpress or LiveJournal any time in the foreseeable future. But it's an easy enough Use Case that we should do it early: the Development Blog for Querki should move into Querki itself, as part of the dogfooding.
The basics here are trivial; most of the work is going to be dealing with comments. That is almost arbitrarily complex (it turns into building all of CommYou if I let it), so we'll have to be careful to keep it constrained, at least at first.
Implementing a Blog is almost bizarrely easy. The main Model is Post; Properties include Title, Content and Tags. The Space's public front page is simply a listing of Posts, in reverse chronological order.
Most of the interesting work here is actually the comment system. This doesn't have to be complex to begin with -- the UI might be flat-threaded -- but we probably want to build the machinery for heavyweight threading into the data model from the start, so we can get it right.
The other big requirement here is RSS. To call it a serious blog system, we have to provide an RSS feed. This should be considered a general Feature, and should really be factored out into the Use Case Whats New, which should be an ancestor App to this one.
While we're at it, let's fix a key weakness of other blogging platforms. One thing that drives me nuts about blogs is that they always display newest-first. This is great is you're reading it every day, but makes it harder to catch up when I've fallen behind, and often is a remarkable PITA if I'm trying to read from the beginning.
What I really want is the ability to say, "Display from Here" -- specify a particular entry, and show it in oldest-first order from there. That way, you just scroll down and get things in a natural order.
Ideally, this mechanism should be implemented generally enough to easily support at least three major sub-cases:
-
From the Beginning: I start from the oldest blog entry, and begin reading from there.
-
From Entry X: From a particular entry, I can say "Display From Here", and get the blog in natural order starting there. Combined with Bookmarks, and this makes it easy to keep track of the blog.
-
From Date Y: The system asks me for a date, and display everything starting at that date. (Kind of like LJ's Archive function, but better.)
-
Feature - Comments: Almost the heart and soul of the Blog App, but will be available as a universal feature you can turn on for any Thing and Model in the system. The fact that everything can have comments underscores the social nature of Querki.
-
Feature -- Sort Order: We need to be able to control the sort order of the index page, to be reverse-chronological.
-
Feature -- Creation Date Property: In order to manage the sort order, the Creation Date of a Thing needs to be tracked as a pseudo-Property.
-
Feature -- Parameterized Pages: This is necessary in order to Display From Entry. I should have a page that displays entries in oldest-first order, with an optional parameter that says where to start. If no parameter is given, I display from the beginning of the blog.
-
Feature -- Bookmarks: In this case, the Bookmark is a single-value property on me, saying which entry I have most recently read. Combined with Display From Entry, it becomes very easy to keep up with the blog -- whenever I come back to it, I see only the new entries, in natural order. This likely winds up a better UI than other blogging platforms.