Monday, February 15, 2010

NCharlie Project Mockup, Domain Model

Here are the mockups of the two project screens I will focus on in the next few posts.  First, here is a the page that allows users to create a new task board:

TaskBoard02

I will want this application to allow users to set up multiple task boards for different teams/groups.  Since I’d like to use this software at work someday, each task board will have a unique CommunityId and PageId so they can reside in a portal application.  Once a new task board is created, columns and tasks may be added to it:

TaskBoard01

A task can move forward and backward through the columns.  Columns and tasks may be deleted.

The problem domain contains Boards, Columns and Tasks.

This set of user stories describes the functionality of the task board:

  • When adding a new Board, the Board Name, CommunityId and PageId should be specified.
  • When adding a new Column to a Board, the Column name should be specified.
  • When adding a new Task, a Task description should be specified.
  • When displaying a Board, all the Board’s columns should be shown.
  • A new Column should be added to the end of the Board’s list of columns.
  • A Column may be deleted.
  • When displaying a Column on a Board, all the Column’s Tasks should be shown.
  • A Task may Task should be added to the end of the Column’s list of Tasks.
  • A Task may be moved from its Column to an adjacent Column.

I wrote unit tests for the non-trivial stories above, and created domain objects and methods to make them pass:

domain-tests

Here is the class diagram for this simple domain:

class-diagram

I tagged the code for this post in source control, you can check it out here.  Next I’ll walk through the data access code… Or I’ll create view models and UI elements… Or I’ll step back and explain some patterns in the NCharlie starter project… I’ll have to surprise you because I don’t know yet!

No comments:

Post a Comment