Initiatives

Shared service layer - Search

INT-862-242

About

Why the work is being done

Service layers create a piece of functionality which many charities can use to achieve similar things.
 
This project is to create an alpha version of one of those layers - Search.

Many charities have search tools on their websites, This could be a branch finder or other geographical search. Or the charity could have a library of advice or support documents which needs a search function.
 
There are many good pre-existing products to create and query search indexes, however over time they may change their underlying APIs or become obsolete, leading to many charities having to pay to update/change their websites/services.
 
To reduce the duplicated effort across the sector in setting up and then changing software to integrate with different search providers we propose building a platform which acts as a facade onto different search providers, giving charities and their digital support partners a consistent and constant API to create indexes and send search queries. This project is to develop an Alpha of that software.

Problem to solve

How might we create a shared search platform for civic society organisations so that consistency and reuse is maximised?

Who are the users and what do they need to do

Software developers and project managers in digital suppliers supporting charities.
 
Digital teams within charities and civic society organisations
Description of the work:
  • Development and deployment of an Alpha of the product which other organisations can integrate with and use as part of their product. 
  • Integration of at least one hosted search provider such as, but not necessarily including, Elastic Search, Algolia etc
  • Definition of an API for the product, adhering to RESTful best practices and using Open Standards where required (such as for the structuring of geographical data)
  • The API must include an authentication layer where charities/digital partners can provide credentials. This layer will need to adhere to agreed standards.
  • The solution should be able to be hosted on an instance, or container or using a serverless host (AWS Lambda or similar).

Expected outputs include:

  • Standardardised documentation for the product, including detailed instructions for creating instances of the product in local, staging and production environments
  • API documentation
  • Configuration documentation
  • Weeknotes for the process of development
  • Weekly project updates
  • Commented source code adhering to best practices
  • Product deployed to an alpha environment

Key project resources