A directory web application offering portability across desktop, mobile, and intermediate screen types.
This app collects and displays informal professional service providers, including those offering landscaping, plastering, and much more.
Refer to sources for inspiration: https://www.angi.com/ https://www.thumbtack.com/ https://www.checkatrade.com/
Front End The front end will allow the public to discover these service providers based on criteria such as location, service offered, pricing, etc. The public can list what they want the service providers to inquire about.
Back Office
Organisations: Agency - an organisation that aggregates agents. Operator - the organisation that owns and manages the platform.
User Types : An agent representing an agency registers service providers. An operator user has the administrative functions to manage the entire platform.
Service provider onboarding involves three steps: registration, payment, and verification.
Registration: An agent will register using the web browser on their phone. The application will collect their details, record their location using the GPS location of the device's GPS, and take pictures of the service provider along with their identity documents.
Payment: After registration, a payment will be sent to the service provider's mobile wallet via STK push.
Verification: The web application verifies the identity details provided to the national identity provider through its exposed API. Upon successful verification, the service provider is marked as active.
Agent onboarding: Like the service providers' onboarding, but there is no payment step.
Commissions: The payments collected from the service provider are distributed among the following parties: the Operator, the Agency, and the Agent. The distribution can be configured for each agency.
Reconciliation and Disbursement. Payments are gathered on a configurable schedule, and the resulting amounts are calculated for the operator, agent, and agency. These amounts are disbursed to the parties' mobile wallets. Confirmations from the mobile wallet provider will be used to reconcile the attempted disbursals.
Authentication and Access Control All actors, except the public, interacting with the web application will have account credentials to log in. Their access to the app will depend on their assigned roles.
Reports A comprehensive suite of filterable and searchable reports is anticipated, including: - Registrations: Payments received- Disbursements and outcomes- Audit the history of user access.
The code will be written in C# and Bootstrap, with MongoDB as the database. Integrations and interactions should follow an event-driven pattern, favouring Azure Service Bus Topics and Queues.
The identity provider to use is FusionAuth - https://fusionauth.io/download
Automated deployment IaC is required. It is expected that the application will run in containers and be elastically scalable. Code will be supplied to a GitHub repository of choice