Microservices with Clojure
上QQ阅读APP看书,第一时间看更新

User stories

The next step is to list the user stories that will be supported by the Helping Hands application. Here are the user stories for the application:

  • As a Service Consumer, I can create an account so that I can search for services and book them
  • As a Service Consumer, I can search for required services so that I can book one for my task
  • As a Service Consumer, I can subscribe to one or more services so that I can get my task done on a regular basis
  • As a Service Consumer, I would like to rate the services offered so that others can benefit from the feedback and choose the best services offered for a particular task
  • As a Service Consumer, I want to get notifications so that I can get reminded of the service schedule
  • As a Service Provider, I can create an account so that I can register one or more services for consumers
  • As a Service Provider, I want to register one or more services so that I can get service requests
  • As a Service Provider, I want to specify the service location area so that I can get only service requests that are near to my place
  • As a Service Provider, I want to specify the price and availability so that I can get only service requests that are feasible to serve and the ones I am interested in
  • As a Service Provider, I want to get notifications when a service request is placed so that I can attend to it

Apart from user stories, there are some non-functional requirements (https://en.wikipedia.org/wiki/Non-functional_requirement) as well that must be addressed by the Helping Hands application:

  • All the implementations must be tracked and versioned in a revision control system. The Helping Hands application will use the external hosting service GitHub to track the code base.
  • All the dependencies must be explicitly declared. The Helping Hands application will be implemented using Clojure (https://clojure.org/) with Leiningen (https://leiningen.org/) for dependency management.
  • All services must have authentication and authorization built in.
  • Configurations must be specified externally and not hardcoded in the application.
  • All events must be logged to understand the state of the application and monitor it in production.
Non-functional requirements are a part of twelve-factor methodology ( https://12factor.net/), which covers twelve different aspects that must be addressed by the application. Part-3 and Part-4 of this book address some of these important aspects for the Helping Hands application in detail.