In Maintenance system, a requester will create a new request for an issue. Each issue will have a specific maintenance type associated with it. Requesters will have role-based access for the business units they can request for. Requester must select the appropriate maintenance type while requesting. The provider, responsible for a particular maintenance type will receive a notification. Provider must respond to the request with an appropriate resolution and attach any quotation if required. The requester will receive a notification once the provider has submitted a valid response. Requester can verify and either approve or reject the quote based on whether the response meets his initial requirements. If the requester approves the quote, the provider will receive a notification and he can start the job when the assigned technician is ready. If the requester rejects the quote, the provider needs to send a new response. Once the job is stopped, a job completion report is generated, where, the provider needs to verify all the details and add quoted amount, assigned person, serviceman remarks and any related attachments if necessary. Now, the report will be submitted from the providers end and the requester receives a notification for the same. Requester will check the report and again approve/reject based on multiple reasons like work not done properly, wrong amount input, wrong attachments. If the report is rejected, the provider needs to change the report based on the requesters reasons and change it accordingly. Lastly, the requester must provide a valuable feedback for the work done by the technician.