{"id":15994230,"url":"https://github.com/jexp/rfid-graph","last_synced_at":"2025-04-05T00:15:44.951Z","repository":{"id":4253919,"uuid":"5379971","full_name":"jexp/rfid-graph","owner":"jexp","description":"Ruby code to insert openbeacon tracker sightings into a neo4j graph using neography and cypher","archived":false,"fork":false,"pushed_at":"2013-06-08T23:47:00.000Z","size":337,"stargazers_count":1,"open_issues_count":0,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-10T08:31:16.769Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jexp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-08-11T13:30:10.000Z","updated_at":"2013-10-29T06:26:06.000Z","dependencies_parsed_at":"2022-08-06T15:16:41.750Z","dependency_job_id":null,"html_url":"https://github.com/jexp/rfid-graph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Frfid-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Frfid-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Frfid-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jexp%2Frfid-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jexp","download_url":"https://codeload.github.com/jexp/rfid-graph/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266570,"owners_count":20910837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T07:07:31.634Z","updated_at":"2025-04-05T00:15:44.929Z","avatar_url":"https://github.com/jexp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Sample Ruby application to read [OpenBeacon](http://www.openbeacon.org) RFID tracking sightings into a neo4j graph.\nand visualizing a RFID-Graph with Neovigator (connected donuts)\n\n## Data Model\n\n    (person {name, twitter,github})-[:HAS_TAG]-\u003e(tag {tag})\n\n### Simple with talk as relationship\n\n    tag1-[talk:TALKED {begin,end}]-\u003etag2 # simple model\n\n### Advanced with talk as node\n\n    tag1-[:TALKED]-\u003e(talk {interval,begin,end})\u003c-[:TALKED]-tag2\n    // old data (later than TIMEOUT) pushed to separate node\n    talk-[:PREV]-\u003e(prev {interval,begin,end})\n\n## Usage\n\n### Setup Openbeacon Tracker\n\n1. get openbeacon tags and reader, configure the reader via serial port to an ip network of your choice\n2. power the reader via USB or PoE and connect to your machine, make sure to set it up as the _server-ip_ from the reader configuration\n3. put batteries in the tags and use them\n4. clone the [openbeacon github repository](https://github.com/meriac/openbeacon) \n5. go to `openbeacon/host/services/openbeacon-tracker`\n5. enter your reader as `{0x457 /*=id 1111*/ , 1 /* room */, 1 /* floor */, 1 /* group */, 100 /* X */, 100 /* Y */},` in `bmReaderPositions.h`; run `make`\n6. run ./openbeacon-tracker 2\u003e\u00261 | ./filter-singularsighting logs/sightings.json\n7. those json files can then be polled and inserted into the neo4j graph\n\n### Configure and Start the Neo4j Server\n\n1. [download](http://neo4j.org/download) and unzip Neo4j server\n* add `node_auto_indexing=true` and `node_keys_indexable=tag,name,twitter,github,interval` to `/path/to/neo4j/conf/neo4j.properties`\n* start the server with `/path/to/neo4j/bin/neo4j start`\n\n### Configure the data insertion\n    apt-get install ruby rubygems\n    sudo gem install bundler\n    bundle install\n\nMake a people.cvs file (name,rfid-tag-id,twitteraccount):\n\n    head people.cvs\n    \u003eDavid Peart,554,\n    \u003eMarcus Ericsson,573,mericsson\n    \nImport the people\n\n    bundle exec -Ilib lib/people.rb people.csv\n\npull in tag data from openbeacong tracker every 20s\n\n    while [ true ]; do bundle exec -Ilib lib/parse.rb path/to/last_json; sleep 20; done\n\n* enjoy and go hacking [Visualizations from OpenBeacon at BruCON 211](http://www.openbeacon.org/BruCON_2011)\n\n![sample.json graph in Neo4j Web interface](https://img.skitch.com/20120811-qqy4m5j8r8h6u3jtn64535hbaq.gif)\n\n### Neovigator\n\n* `bundle install`\n* `bundle exec rackup # neovigator webapp`\n* push it to heroku and add the neo4j add-on (`heroku addons:add neo4j --neo4j-version 1.8.M06`)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Frfid-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjexp%2Frfid-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjexp%2Frfid-graph/lists"}