Team is asked by a start-up company to develop a software system which provides roadside assistant services. These services provide assistance to motorists whose vehicles have suffered a mechanical failure (e.g. flat batteries, flat tyres, towing, locked out or emergency fuel delivery) that leaves the driver stranded on the road. Customers can choose either:
• Membership subscription -- customers will pay a fixed membership fee annually and are entitled to unlimited roadside assistance callouts. This is similar to NRMA services.
• Pay-on-demand -- customers will pay per service use. When the need emerges (e.g. their car broke down), they will request assistance through the system. Prices are calculated and presented to customers up front. This is similar to Uber-style but for roadside assistance.
The company is building up its nationwide network of qualified roadside assistance professionals who also use the system to manage jobs (service callouts) and payments. The company is also recruiting new roadside assistance professionals who are able to register for joining using the same system.
Once a customer (motorist) makes a service request, it will be broadcasted to all the registered professionals who are available and capable to provide this service in nearby area (e.g. within 50 kms). They will receive information about the problematic vehicle (e.g. location, plate number, model, etc.), instructions and payment via the system. They can then decide whether they accept the request. The customer can see how many responders are in the area via the system and which one accepts their request. Once the service is completed, the customer can rate and review it using the system). Payment will be deducted from their credit card and will be credited to the professional's account (after a certain commission fee is taken).
The system supports the following key goals ( can be discuss with the detailed and specific requirements): • Manage customer memberships including types of users, user profiles and subscriptions. • Manage roadside assistance professionals • Manage road assistance service requests • Manage payment transactions • Manage reviews and ratings • Manage report generation (e.g. payment reports, service reports, etc.)
Create test data that is sufficiently large enough to simulate the system (e.g. at minimum 20 motorists, 100 roadside assistance professionals and 20 service requests and transactions). A script to randomly generate these data.