In the previous post we got a first, vague impression of what we will build during this series:
[…] to build an application which allows […] to notify the users of […] code snippets about updates.
Now it is time to become more concrete and to define what our application is supposed to do. For this purpose I will write some stories/use cases. So here we go:
Creating a project: The user choses to create a new project, enters the project information, and the system creates the project.
Posting a message: The user selects a project and enters the message, which is then published by the system.
Subscribing to a project: The user selects a project and subscribes to it, so that he gets all future messages of the selected project.
Importing an external feed: The user enters the url of an external feed, so that he will get all messages provided by that feed.
There are more use cases like Unsubscribing from a project, but they are not that important at the moment.
So we can move on to identify the conceptual classes and draw the domain model. But that’s a task for tomorrow…