/Profiles

An open source profiles API for non profits

Primary LanguageJavaScriptThe UnlicenseUnlicense

Profiles

What will profiles do?

Receives profile information and creates a new user or adds information to an existing one, then returns a unique ID to be attached to other services database records.

Allows you to do advanced demographic querying outputting unique id's which can then be used to search other services that have those id's assosiated.

Setup

  1. Rethinkdb with homebrew: brew update && brew install rethinkdb
  2. Nodejs: https://nodejs.org/download/

Run

  1. sudo npm install
  2. rethinkdb
  3. npm start
  4. npm test
  5. npm run docs
  6. RethinkDB admin panel: http://localhost:8080/

Tech

  1. Koa
  2. Rethinkdb
  3. apiDoc
  4. Mandrill

TODO

Client

  1. login
  2. create organisation
  3. create service keys for each platform

Server

  1. recieves valid user record from service
  2. finds existing user by email
  3. if new creates record
  4. adds record to user history
  5. returns condenced record with all data with profiles id

SDK

  1. add key
  2. send data

Checks

  • Email
  • First name, Last Name, IP
  • First name, Last Name, Postcode

What we do with incomplete records?

  1. Store them in a bulk dump of records for querying in the future

How do we condense profiles?

  1. Merge records from the oldest to the newest so the last data is from the newest record
  2. Allow for manual checking of records history with a visual comparison and selectable overides

Questions

  • Is it worth trying to validate profiles to use when confirming legal identity to add further validation to whatever action they were involved with?