Assistance on Demand

The Assistance on Demand (AoD) is a generic open-source web platform that enables the rapid deployment of machine/human/crowd-based assistance services on demand by allowing service suppliers to easily register their assistance service and individuals to seek assistance in an organized fashion from a set of predefined (i.e. already registered) service sources based on type of need, quality of service desired, and other personal preferences. The AoD platform particularly focuses on solving accessibility challenges for people with disabilities and enables matching service providers to service consumers. In particular, AoD can be considered as a marketplace through which service providers offer free or paid services while service consumers may search for services that they need. The AoD web platform has been implemented following the W3C guidelines (WCAG) to ensure accessibility for as many consumers as possible.

Users / Actors

The users of the Assistance on Demand can be organized in the following groups:

  • Service providers / service developers who want to offer services, either human or web based (also called machine based), through the AoD platform.
  • Service consumers (end-users) including people with disabilities, older people, employees with different skills and expectations as well as third parties that are interested in using a service.
  • Care givers who are interested in setting up a network of services for those that they provide care for (after completing an authorization process).
  • Public or private organisation, association or community that decides to use the Assistance on Demand platform and/or open source s/w to create its own AoD instance, towards offering a variety of services. This could be, for instance, an association of people with disabilities in a given country, or a given community offering services to a group of people.
  • Administrator is a special user with technical background (probably a system administrator) who is responsible for the installation and maintenance of the platform, as well as the monitoring of the normal operation of the platform.

Supported Functionality

The Assistance on Demand (AoD), once set up and properly configured by an organization or company, offers a set of unique features.

  • It allows individuals who seek assistance to search in an organized manner in a set of predefined sources based on the type of need, the type (human or machine based) and quality of the required service, and other personal preferences.
  • It allows application developers and service providers to easily register the services that they offer (or set up new ones), which can be of any type e.g. machine, human, crowd-based assistance services, etc. In this way, they can promote and sell their services bringing them closer to large audiences.
  • It supports multiple charging models and enables payment for all services through the associated P4All payment system, including the support of micropayment and micro-funding schemes. In this way, the AoD relieves service providers from developing/deploying their own charging/payment infrastructures. This does not exclude the possibility for service providers to use their own payment system, if they wish.
  • It enables the offering of multiple services to one (or more users), i.e. it allows an individual in need of care or their carer to define  a network of assistance services.
  • It supports the set up and offering of multi-modal technical support offered by humans or automatic systems.
  • It offers zero/default configuration mode options for efficiently supporting users with low digital literacy in setting up AoD services.
  • It may include crowd-funding functionality for new services, thus it can help service providers to discover new user needs and undertake the development of new services.

The services registered in the AoD platform may be offered by:

  • Humans, i.e. offered by specific individuals. In case of human service, each service provider enters his/her details and the description of the service he/she offers, the AoD lists the available options to the interested user and once the match is made, the next step is the payment, if this is not a charge-free service. The AoD infrastructure is not involved furthermore, apart from the fact that the service consumers can rate this service to create a “community-based trust” related to the supplier.
  • Machines: these are mainly software services created by different developers (companies/ individuals/ organizations/communities); they may be offered under different charging schemes or free of charge.

Any ethical/legal polcies relevant to offering or consumption of services, the authentication of service providers, the control of services offered, etc. are defined by the organization offering/instantiating the AoD platform.

Further information about AoD functionalities supported by the AoD platform can be found below

User registration and account management

With regard to the authentication mechanism used by the Assistance on Demand platform, there are two implemented solutions. A) an autonomous authentication system can be used based on the active sessions of the AoD platform. An alternative easy-to-configure option is related to the Identity and Access Manager (IAM) that SingularLogic S.A.vhas implemented in the context of the P4All project. The IAM is based on the ForgeRock OpenAM services (open source). These services are based on the well-known OAuth 2.0 protocol and the Openid connect layer.

In both cases mentioned above, the user can create a new account by entering the following details:

  • the first and last name,
  • the username (unique),
  • the password (twice for confirmation issues),
  • a personal valid email account,
  • the mobile number (if available),
  • the nationality,
  • the level of familiarity with Informational Technologies (IT),
  • the user group(s) to which the user wishes to register in relation to service suppliers, relatives/cares, etc.
  • the user’s answer to a simple question for verification purposes.

After successfully completing the registration process, a given user can edit his/her profile and can browse in all sections of the AoD platform.

Multiple charging models (per service)

Each service, hosted in AoD platform is associated with a charging model – this is defined during the service’s registration process. The supported charging models are:

  • Free
  • Pay one-off
  • Pay per day
  • Pay per week
  • Pay per month
  • Pay per usage

The charging and payment processes are performed via the Paypal.

Service registration and management

A service provider can register a service in the AoD platform to make it available to service consumers by following a step-by-step wizard. The provider has to enter the following details:

  • its title,
  • the description of the service,
  • the type of the service, human or machine based,
  • the relevant categories that best describe the service,
  • a representative image,
  • a set of keywords that describe the service,
  • the associated charging models of the service (free or paid policies),
  • the price of the service (if paid) as well as the currency,
  • guidelines with respect to the potential configuration requirements, installation and usage of the service,
  • the associated target users/groups; the service may be offered to all individuals or to a pre-specified group of users,
  • a list of supported languages (if applicable),
  • the geographical coverage in kilometers (for the case where a service requires the physical presence of the provider and/or the customer), and
  • his/her skype ID as one of the technical support communication options (optional).

AoD platform also includes a dedicated dashboard for the service providers through which they can access the list of the services that they own and edit or delete them. Optionally, the service provider can define for their service(s) a set of predefined settings (called zero configuration). In the meantime, any service provider is able to upload multimodal technical support resources for each service (see Multimodal technical support). Many of the registered attributes of the services mentioned above are used for facilitating searching by the end user and matching with their needs and preference (see Listing of assistance services), thus aiming to improve the end-user experience.

Multimodal technical support

Part of the AoD services offered to service consumers are technical support services offered through a variety of modalities including peer/community support. The technical support may focus on questions related to the use of AoD or on any other technical problem related to the use of a specific device/software or, in general, ICT-relevant support.

The technical support service follows a cascading model and is offered by a network of entities which may include machines and humans. In brief, the user types in the relevant field of the UI their technical problem in order to search for a suitable answer in the “technical support” module included in the AoD. The various modalities supported by the AoD platform for providing technical support include documentation (document with clear instructions and/or Frequently Asked Questions in various formats), tutorial videos, community-based technical support offered by registered volunteers and professional technical support provided either by paid individuals, organisations or communities. AoD supports the formation of communities of individuals who can offer technical support in general or technical support with respect to a specific device/platform/solution. A variety of communication channels between the members of the community and the user in need of technical assistance can be used such as skype, or teamviewer. AoD provides the technical ability to offer such services to the interested users. Any ethical/legal polcies relevant to the remote control of devices (e.g. from team viewer software) or to the potential screening of persons/organisations offering technical support are defined by the organization offering/instantiating the AoD platform.

It is important to note that:

  • The offering of community-based technical support requires the prior formation of the community. For the formation of technical support communities, during user registration, AoD will prompt the user to enter information with respect to his/her skills and whether he is willing to:
    • offer technical support as a volunteer or professional
    • for which service support is offered. Two options are available: AoD, “other-please specify”. In the 2nd option the service ID number in the AoD or a keyword has to be used in order to complete specification of the service for which support is offered.
    • Define the channel(s) through which the technical support will be provided (skype chat, skype talk, other).

To provide a technical support Quality of Service-aware cascade, rating of the technical support services has to be already available by the consumers. This is also a prerequisite for the try-different functionality (see next sections). The principle is that only users who consumed a service are eligible to rate the service that they experienced. To ensure this, AoD communicates with the P4All payment platform (for services where this is used) to become aware of whether a user has purchased a service or with the security/IAM module to check whether the user has used a free-of-charge service.

Technical support related to AoD platform. AoD platform includes a Help center component. The Help Center consists of multiple generic topics while each topic includes several articles. Any type of user has the capability to access it in order to find useful information about the AoD platform. When the user selects and accesses the article of his/her interest, its content will have the following structure:

  • Explore AoD through a user-friendly  document or a wizard that explains to you how to use AoD (this is considered as machine based support - level 1)
  • AoD novice user? Watch this video (machine based support - level 2)
  • AoD novice user? Listen to our simple-to-follow instructions (this activates a recorded audio guidance and corresponds to machine based support - level 3)
  • James volunteers to help you with AoD! (A human-based technical support service coming from a community of volunteers).
  • Do you need guidance from a professional? A paid human-based technical support service of level 2 is offered by a community of paid technical support providers through skype or telephone. (For making the payment, the P4All payment infrastructure is involved.) 
  • An asynchronous human based technical support provided by the system administrator through email.

Community-based AoD technical support service management. Any service provider is able to initiate a community to offer technical support for AoD on a volunteer basis. The service provider can register a new service under the Technical support category, by denoting the type of the service as community-based and selecting the skype as the communication channel. This action triggers the generation of a notification towards the AoD administrator.  Following administrator’s agreement, the service provider is prompted to include this service or not as an option when a user presses the “help” button. In case that he/she answers positively, the service appears together with the rest of the technical support resources related to AoD. Afterwards, other authenticated users can be added in the community that supports this service following a similar process.

Non-AoD-specific technical support. Any service provider is able to upload a set of (technical support) resources for each service that they provide. The number and exact type of technical support options depend on the service provider as well as on the existence of any related community. In general, the supported types of resources are:

  • Document providing explanations about the service, e.g. how to use it (machine based support - level 1)
  • Videos with captions showing how to use it (machine based support - level 2)
  • Human-based technical support service(s) provided by volunteer end users (human based support - level 1)
  • Human-based technical support service(s) provided by professional service providers who may be paid (human-based support – level 2)

From the service consumer’s perspective, these resources are accessible through the detailed preview of any service. The service consumer can access the documents and videos or can communicate with a volunteer or a professional user in order to get answers to his/her questions.

Community-based non-AoD-oriented technical support service management. Any service provider is able to form a community of professionals for providing technical support to users who use a specific product (i.e. Office word).  The provider can register the new service, called let’s say “technical support for office word”, marks it as community-based service and defines the charge per issue. The service is categorized under Technical support category. This means that from that point on, a service with the described details will appear in the Technical support service listing. Other users can join to the service i.e. “technical support for office word” initiated by a service provider, provided that the service provider agrees to this. The service consumers or/ and other users can find this service using the AoD search component.

Listing of assistance services

Any service consumer (end-user), authenticated or not, has access to the home page of the AoD (login is optional for browsing) and is able to search for the services of his/her interest thought the AoD search component. In particular, the end-user can limit the search options by providing input for one or more of the following criteria:

  • the desired categories of services (depicted as a tree structure),
  • the service providers of interest,
  • the type of service, human or machine-based,
  • the payment policy, free of charge or paid,
  • the desired range of price,
  • the desired range of service rating; 0 star (lowest) up to 5 ones (highest). The service rating is derived from the aggregation of users’ evaluation, provided that they have already used/purchased it. 
  • the geographical coverage of services starting from the user’s current location. The search component considers the input of users (expressed in kilometers), converts it into a circle having as radius the user’s input and as center the current location of the user and searches for services based on the circle radius. 

AoD filters and limits the available services according to the user’s preferences and displays a set of services that meet the user’s choices. The end user can sort them per title (ascending/descending) or per price (lower to higher or vice versa). Two types of results view are supported, the block view or the list one. In both cases, the end-user is able to access an overview for each service and select the interesting one. Once he/she selects the service, additional details are available. Then, the end user can proceed to purchase the service or can directly use it in case of free-of-charge. Any user should be authenticated in order to complete the service purchase.

Service rating

This feature is based on an algorithm that takes into account the existing evaluation results of a specific service as formed thanks to the ratings provided by a group of service consumers and calculates the aggregated QoS score per service. The range of the score is between 0 and 5 stars. The value 0 maps to the lowest score while the value 5 to the highest one.

Configurable Assistance on Demand service network

One of the AoD features is the creation of a network of assistance (NAS) services either by the interested users themselves or by a carer through a simple procedure. The prospective user enters the AoD and through an intuitive and simple user interface, which can be configured according to their personal preferences, can set up a network of assistance on demand services covering multiple activities of their life and exploiting the wealth of AoD services accessed through the AoD platform. Placing emphasis on easiness of use, users with advanced PC use skills are offered the option to define more detailed configurations of the AoD services network, while more novice users or users with basic PC use skills will have certain options set to default values so that the configuration burden is minimised, provided that the service suppliers support the, so-called, zero-configuration option.

The complexity of navigating a multi-tiered system sliced up into many different service categories may get out of control, depending on the type and number of assistance services a person needs. In order to alleviate such complexity and help the user find the appropriate needed services, AoD allows on users to search for assistance services:

  • either based on keyword search, or
  • by following a structured search. It is important to note that the administrator of each AoD instance is capable of modifying this categorisation so as to fit the needs of the target user group since categorisation of services is expected to be very much instance-specific.

The flow, in practice, is the following one:

  • the care giver searches for the person to whom they provide care to and requires authorization to setup a network of services on their behalf,
  • a notification is sent to the person assisted by the carer requesting their confirmation/agreement to proceed to the NAS set up,

the care giver views the available categories of services through a step-to-step wizard and is able to mark the selected services as interesting (add them to a wishlist) or purchase others on behalf of the user that they assist.

Try-different (chain of services)

The AoD platform can exploit the aggregated QoS rating of every registered service in order to suggest to the consumer services with “higher QoS” when the ‘try different” button of the AoD user interface is pressed.

QoS – cost negotiation

The QoS-cost negotiation functionality can provide a list of registered in AoD services that satisfy the service consumer preferences in terms of Quality of Service and cost. The service consumer defines through the AoD user interface the desired (range of) Quality of Service (QoS) and the desired (range of) cost of the services that they want to search and, consequently, the “cost-QoS aware filtering” component provides to the user those services that meet the requested QoS and cost. The algorithm that lies beneath this component takes into account the aggregated QoS of each service based on previous users’ ratings, and the cost of the services input by the service providers when registering a service to the AoD platform, compares them against user requests and finally ranks and presents the services based on highest QoS and lowest cost (considering the charging model).

Management and customization options

An organization or individual is able to install the AoD platform and then customize it using the management panel. The customization possibilities include the following:

  • Logo icon, favicon & brand name customization. It is possible to change the default logo icon and the favicon of the AoD instance as well as its brand name.
  • Instance metadata customization. It is possible to manage the HTML meta details of the AoD instance from the management panel avoiding to edit this piece of code. Metadata are used from search engine like Google.
  • Available languages management. It is possible to define the languages that the platform may support. It is also possible to associate each language with corresponding icons.
  • File system management. It is possible to manage all the static files of the AoD instance. For example, It is possible to choose the flag icon per available language.
  • Contact details management. It is possible to manage the contact attributes of the application (skype, phone number, email account, address etc) which are accessible by users.
  • Social links management. It is possible to manage the links to social network (Facebook, Twitter, Linkedin etc) via the management panel.
  • Management of services’ categories. Each service is associated with at least one category. It is possible to modify (add, update, remove) the categories of services according to the organization’s needs. It is worth tstress that a hierarchical tree structure of service categories is supported.
  • Components management. The AoD platform consists of a number of functionalities and corresponding technical components. It is possible to activate or deactivate a component/functionality from the management panel. The components that can be (de)activated are the following:
    • Network of assistance services: see explanation in the relevant link,
    • UI options: a generic plugin that enriches the accessibility of the AoD platform,
    • Crowd funding 
    • Social network 
    • Newsletter
    • Add to cart
  • Presentation themes management. It is possible to choose one of the available default themes. It is also possible to generate new themes (basic CSS experience is required).
  • Translation management. It is possible to manage the translation of two types of data pools; data that are given as input to the AoD instance by all types of users (e.g. data describing a service) and static data that are included in JavaScript, html and python files.
  • Multi-modal help center management. The Help center consists of thematic areas public or/and private. Each thematic area includes articles while each article may comprise of plain text, multiple audio/video files and documents such as PDFs, office documents.
  • Web robots management. It is possible to define rules for the web robots (also called crawlers).
  • Cookie policy management. It is possible to customize the context of the cookie policies from the administration panel in all available languages. AoD platform keeps some user preferences such as the desired language and the presentation theme to achieve the best browsing experience for the users.
  • Integration with Google analytics. The AoD platform supports, by default, integration with Google analytics to track the traffic of the platform. It is possible to retrieve a dedicated key from the Google and then, import this key in the platform. Basic programming experience is required.

For further details, access the AoD management and customization guide

Installation guide

The AoD software has been implemented on python 2.7 and Django framework using a MySQL database.

The released source code is hosted at the github website (visit the link while the installation guides can be found at the link The deployment of the Assistance on Demand platform has been tested in Ubuntu distributions.

Useful links


The following link takes you to a prototype of the Assistance on Demand platform developed within the Prosperity for All project to demonstrate the available functionalities and possibilities

The Assistance on Demand P4All demo-instance is hosted here.