Slide 1

Slide 1 text

or preaching to the converted the things I do for free beer neo4j or a case study

Slide 2

Slide 2 text

Background

Slide 3

Slide 3 text

Github Twitter Blog Me RKS_FOR

Slide 4

Slide 4 text

Github Twitter Blog Me RKS_FOR kouphax

Slide 5

Slide 5 text

Github Twitter Blog Me kouphax http://yobriefca.se RKS_FOR

Slide 6

Slide 6 text

Github Twitter Blog Me http://yobriefca.se @kouphax RKS_FOR kouphax

Slide 7

Slide 7 text

Kainos Githu Twitt Blog Me WORKS_FOR LVED_WITH

Slide 8

Slide 8 text

Kainos WORKS_FOR GDS INVOLVED_WITH s y TEAM_WITHIN

Slide 9

Slide 9 text

GDS INVOLVED_WIT ERTP Innovations Licensify TEAM_WITHIN

Slide 10

Slide 10 text

GDS ERTP Innovations Licensify Cab Off. TEAM_WITHIN RTMENT_OF INVOLVED_WIT

Slide 11

Slide 11 text

Cab Off. TEAM_WITHIN Gov. DEPARTMENT_OF RTMENT_OF

Slide 12

Slide 12 text

Gov. DEPARTMENT_O DFID DEPARTMENT_OF PUBLISHES_TO WORK_WITH

Slide 13

Slide 13 text

PUBLISHES_TO IATI

Slide 14

Slide 14 text

Gov. DEPARTMENT_O DFID DEPARTMENT_OF PUBLISHES_TO WORK_WITH

Slide 15

Slide 15 text

DFID DEPARTMENT_O PUBLISHES_TO WON_WORK_WITH Kainos RKS_FOR

Slide 16

Slide 16 text

Kainos WORKS_FOR Me WON_WORK_WIT W_RELATED

Slide 17

Slide 17 text

WORKS_FOR Me SOMEHOW_RELATED Me

Slide 18

Slide 18 text

Aid Platform

Slide 19

Slide 19 text

The ability to trace all money spent through its entire journey from source to its final destination

Slide 20

Slide 20 text

IATI XML DFID Website DFID Systems DFID Systems DFID Systems

Slide 21

Slide 21 text

X Aid Platform IATI XML DFID Systems DFID Systems DFID Systems

Slide 22

Slide 22 text

Aid Platform IATI XML IATI XML IATI XML IATI XML IATI XML IATI XML IATI XML

Slide 23

Slide 23 text

The Solution

Slide 24

Slide 24 text

Data Access Data Loader JVM/Scala Play! 2 jQuery/D3 Persistence TileStream Leaflet IATI XML IATI XML

Slide 25

Slide 25 text

Region Country Organisation Budget Project Component Transaction Disbursement Location Results Document

Slide 26

Slide 26 text

#1 hell is other people’s api

Slide 27

Slide 27 text

OIPA API JVM/Scala Play! 2 jQuery/D3 MySQL TileStream Leaflet IATI XML IATI XML

Slide 28

Slide 28 text

#2 relational databases are a lie

Slide 29

Slide 29 text

Anorm/Migrations Data Loader JVM/Scala Play! 2 jQuery/D3 PostgreSQL TileStream Leaflet IATI XML IATI XML

Slide 30

Slide 30 text

#3 once you go graph...

Slide 31

Slide 31 text

Neo4J Data Loader JVM/Scala Play! 2 jQuery/D3 TileStream Leaflet IATI XML IATI XML

Slide 32

Slide 32 text

val org = createNode(orgModel) val country = createNode(countryModel) org --> “HAS_RECIPIENT_COUNTRY” --> country neo4j-scala

Slide 33

Slide 33 text

val index = getNodeIndex("activity").get val node = index.get("id",id).getSingle val budgets = node.doTraverse[Budget]( follow ->- “HAS_BUDGET” ){ END_OF_GRAPH }{ ALL_BUT_START_NODE } neo4j-scala

Slide 34

Slide 34 text

query[Node](""" | START global=node(0) | MATCH global-[:IS_SUB_LOCATION]->location<-[:IS_REC | RETURN DISTINCT n | ORDER BY n.projectBudget desc | LIMIT 5 """.stripMargin).map(_.toCC[Activity]) neo4j-scala

Slide 35

Slide 35 text

The Future

Slide 36

Slide 36 text

C’est Fini Slides and Resources http://yobriefca.se