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.