manoexperta was redesigned for better performance and reliability. The new version does not use SocketIO web sockets anymore, and now leverages the power of Firebase-Firestore for direct notifications that control the flow of the app.


The client and worker app must "connect" to their respective channels as described below under Client Integration and listen for messages that are relayed to them on real-time. Messages are sent either to channel or direct to specific users to trigger actions on the app, they are core for the app so that users are not forced to refresh to get updates on requests.



Client Integration - "connect to server"


Documentation Pending...



Server Messages - "options and actions"


This is the global class for all messages that are received, not all information is required for all message types but this standardisation should help you better manage them.


    {
     "reqType":"N",
     "blockedXP":0,
     "wonbyexp":2,
     "latLng":"19.415881-99.168156",
     "catName":"Mudanzas",
     "action":"NEW",
     "bidExpert":0,
     "bidAmount":0,
     "exclusive":0,
     "imgURL":"",
     "reqId":1,
     "clientId":1,
     "describe":"Lorem ipsum description of request",
     "catId":11,
     "clientFinishCode" : 0,
     "workerFinishCode" : 0,
     "sourceId" : 0,
     "msgDate" : "March, 14 2021 20:05:31"
     }


the most important field is "action" which determines what the app needs to do:

ActionTarget-AppHappens When...
And you need to...Use Logic in...
NEWWorker A client posts a new requestNew Opportunity must be displayed in "listening" view of worker app (if eligible)Worker in Home ("listening screen")
DELETEWorkerA client cancels an open requestYou must delete this opportunity from the New Opportunities list. Worker in Home
APPLYClientA Worker accepts and wins the opportunityAlert client, owner of the request, and move to work in progress.
Client in Waiting Screen
COMPLETEClient
Worker
Either worker or client flag the request as complete/finishedAlert recipient with respective FinishCode and move to applicable home. Recipient in Work in Progress Screen
INQUIRYWorkerClient posts a new inquiryNew Opportunity is displayed, as with NEW, but instead of Apply button there is Bid buttonWorker in Home
BID
ClientWorker posts a new bidNew Bid count badge on sideMenu increases so that Client knows there is a new BidAny screen with sidemenu active
HIREWorkerA client posts a new request for a selected workerAlert selected worker and move to work in progress for new Request
Worker in Home
REPOSTWorkerA request times out and the client select to repost openlySame as New Behaviour, only check for SourceID to remove original request
Worker in Home 
PAYFAILClientA payment is rejected by processorClient is alerted and redirected to restart payment processClient in Payment Webview
PAYGOODClient
A payment is accepted by processorClient is alerted and redirected to Payment summary for given ReqID in SidemenuClient in Payment Webview