Application components
To address the user stories, there will be three main components and two helper components, as shown in the following diagram. The Registration Component will manage all the user accounts and related CRUD operations. The Service Component will handle all service-related operations such as create, update, and lookup. The Order Component will help place the orders, search for the historical order, and also rate the services. It will also help to maintain a status for the service order and generate relevant alerts in the form of SMS and email using an external service:
There will be two helper components—Geo Location and Alerting. These components will help connect the application to external services to get geolocation tags and send alerts in the form of SMS and email via provided APIs. Components, their responsibilities, and related databases are summarized in the following table: