All Projects → ONSdigital → address-index-api

ONSdigital / address-index-api

Licence: MIT license
Address Index is an application which resolves addresses

Programming Languages

scala
5932 projects
HTML
75241 projects
CSS
56736 projects
Cycript
5 projects
javascript
184084 projects - #8 most used programming language
groovy
2714 projects

Projects that are alternatives of or similar to address-index-api

fias
Ruby wrapper for the Russian FIAS database (Федеральная Информационная Адресная Система)
Stars: ✭ 82 (+215.38%)
Mutual labels:  address
SPPickerView
这是一个选择器,功能类似系统的UIPickerView,但是比UIPickerView的适用范围广得多
Stars: ✭ 28 (+7.69%)
Mutual labels:  address
python-censusbatchgeocoder
A simple Python wrapper for U.S. Census Geocoding Services API batch service
Stars: ✭ 40 (+53.85%)
Mutual labels:  address
vscode-ethover
Ethereum Account Address Hover Info and Actions
Stars: ✭ 35 (+34.62%)
Mutual labels:  address
intelliroutes
Support for Play Routes in IntelliJ IDEA
Stars: ✭ 21 (-19.23%)
Mutual labels:  play-framework
macorg
MAC Address Org Auto-Detection
Stars: ✭ 32 (+23.08%)
Mutual labels:  address
vue-thailand-address-autocomplete
🇹🇭 Autocomplete ที่อยู่ในประเทศไทย
Stars: ✭ 49 (+88.46%)
Mutual labels:  address
wipri
(Network Metadata Privacy) MAC Address spoofer with bonus combo (options): hostname + signal spoofer - *no disconnects!* Privacy Changing w/Brand Mimics: run as command or optional new randomized identity each boot; includes flags for continually changing random times/changing valid OUI addresses + Hostname randomizer + Device/Signal/location an…
Stars: ✭ 26 (+0%)
Mutual labels:  address
iceaddr
Python package to look up information about Icelandic street addresses, postcodes and placenames
Stars: ✭ 21 (-19.23%)
Mutual labels:  address
zx-ip-address
Deprecated
Stars: ✭ 96 (+269.23%)
Mutual labels:  address
play-docker-aws-tutorial
101 tutorial: How to deploy Play application to Amazon Lightsail (AWS) using Docker
Stars: ✭ 25 (-3.85%)
Mutual labels:  play-framework
genderkit
Gender Construction Kit - The UK guide to changing things linked to gender
Stars: ✭ 55 (+111.54%)
Mutual labels:  united-kingdom
vue-address
多级联动地址选择器
Stars: ✭ 33 (+26.92%)
Mutual labels:  address
play-silhouette-rest-mongo
Seed project for Play Framework 2.6 with Silhouette 5.0, exposing a REST API for sign-up and signin. ReactiveMongo + MongoDB used as a backing store.
Stars: ✭ 19 (-26.92%)
Mutual labels:  play-framework
ethereum-checksum-address
Convert Ethereum address to a checksummed address
Stars: ✭ 20 (-23.08%)
Mutual labels:  address
cashaddrjs
CashAddr.js: The new Bitcoin Cash address format for Node.js and web browsers.
Stars: ✭ 36 (+38.46%)
Mutual labels:  address
play2-scala-pdf
A PDF module for Play Framework 2 (Scala)
Stars: ✭ 25 (-3.85%)
Mutual labels:  play-framework
play-silhouette-reactivemongo-seed
Seed Application for PlayFramework, Silhouette and ReactiveMongo
Stars: ✭ 22 (-15.38%)
Mutual labels:  play-framework
react-thailand-address-typeahead
jquery.Thailand.js in React
Stars: ✭ 78 (+200%)
Mutual labels:  address
play-ebean
Play Ebean module
Stars: ✭ 29 (+11.54%)
Mutual labels:  play-framework

README

Build Status Codacy Badge codecov

What is this repository for?

Address Index is a Play Framework (2.8.8) application which matches addresses.

The system works via large Elasticsearch (7.9.3) indices build primarily from AddressBase Premium data.

The input can be a complete address (from any source), and the system uses advanced data science techniques to determine the most likely matching AddressBase entries with UPRNs (Unique Property Reference Numbers).

Addresses can be matched one at a time or in batches.

Additional functions exist for postcode searching and partial address string matching for typeaheads.

Plans to deploy the application as a service available to all members of the Public Sector Mapping Agreement have been put on hold for the duration of the Census test. The support team are awaiting a decision on the future of this.

How do I get a sneek peak of the API?

Two Docker images have been created which give a feel for the API. The Docker images include an Elasticsearch 7.3.1 cluster prebuilt with the required Address Index indices. The indices are a subset of AddressBase (the Exeter subset). The other Docker image contains a version of the API that will work with the Elasticsearch indices. The docker-compose.yml file also contains a Kibana and Cerebro service to view the cluster. To get started:

  1. Run docker-compose up on https://github.com/ONSdigital/address-index-api/blob/master/docker-compose.yml

  2. The cluster status can be viewed with either Cerebro or Kibana:

     Cerebro: http://localhost:1234
     and then http://es:9200
    
     Kibana: http://localhost:5601
    
  3. To run API calls open a browser or API testing app, Postman etc.

     http://localhost:9001/
    

    Endpoints can be found in the Swagger definition /openapi/swagger.json. View as HTML with examples here:

    https://github.com/ONSdigital/address-index-api/blob/develop/api-definitions

    The ai-swagger.json can be copied into the Swagger Editor to view it:

    https://editor.swagger.io/

How do I get set up for development?

  1. Required Installations

    • Java 11
    • sbt 1.5.5
    • Scala 2.13.6
    • Elasticsearch 7.9.3
    • An IDE such as IntelliJ is recommended
  2. Create Project from GitHub (IntelliJ shown as example)

    • File, New, Project From Version Control, GitHub
    • Git Repository URL - select https://github.com/ONSdigital/address-index-api
    • Parent Directory: any local drive, typically your IdeaProject directory
    • Directory Name: address-index-api or address-index-data
    • Clone

    The references in the build.sbt are used to draw down additional components

  3. Run

    • The project consists of an assembly of several subprojects - server, parsers, model and demo-ui

    • The list of sub projects can be seen by running sbt projects from the root of the project.

    • The list contains the project IDs that must be used for all sbt commands which require a Project ID to be supplied, for example:

    • sbt "project address-index-server" run

    • The application.conf of the demo-ui can point to the API on localhost or a deployed copy of the API

    • The application.conf of the server project points to an elastic search endpoint, this can be local or a server

    To run or test the demo-ui and server together on your local machine:

    Open two command windows running sbt as shown above, one for the API and one for UI

    Use run 9001 to have the API on port 9001 and run 9000 to have the UI on 9000 (i.e. from the root of the address-index-api project run the following commands : sbt "project address-index-server" "run 9001" sbt "project address-index-demo-ui" "run 9000" ) If the UI's application.conf is set to look at localhost:9001 for the API it will work.

    Note that when working on the UI you can save changes and it will autodeploy. This doesn't work with the API becuase of the CRFSuite executable. You have to exit out of sbt and rerun.

How do I run unit tests

sbt test

will run them all, or you can select a subproject, or use testOnly feature to restrict what is run.

How do I run performance tests

See Running Performance Tests

Related Repos

Address Index Data - Apache Spark job used to create the Elasticsearch index

Address Index Developers - Flask web site for API users

Address Index UI - New Flask UI to replace current demo-ui

What if I just want to use the API

See API Help and Swagger

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].