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:
Action | Target-App | Happens When... | And you need to... | Use Logic in... |
NEW | Worker | A client posts a new request | New Opportunity must be displayed in "listening" view of worker app (if eligible) | Worker in Home ("listening screen") |
DELETE | Worker | A client cancels an open request | You must delete this opportunity from the New Opportunities list. | Worker in Home |
APPLY | Client | A Worker accepts and wins the opportunity | Alert client, owner of the request, and move to work in progress. | Client in Waiting Screen |
COMPLETE | Client Worker | Either worker or client flag the request as complete/finished | Alert recipient with respective FinishCode and move to applicable home. | Recipient in Work in Progress Screen |
INQUIRY | Worker | Client posts a new inquiry | New Opportunity is displayed, as with NEW, but instead of Apply button there is Bid button | Worker in Home |
BID | Client | Worker posts a new bid | New Bid count badge on sideMenu increases so that Client knows there is a new Bid | Any screen with sidemenu active |
HIRE | Worker | A client posts a new request for a selected worker | Alert selected worker and move to work in progress for new Request | Worker in Home |
REPOST | Worker | A request times out and the client select to repost openly | Same as New Behaviour, only check for SourceID to remove original request | Worker in Home |
PAYFAIL | Client | A payment is rejected by processor | Client is alerted and redirected to restart payment process | Client in Payment Webview |
PAYGOOD | Client | A payment is accepted by processor | Client is alerted and redirected to Payment summary for given ReqID in Sidemenu | Client in Payment Webview |