Freifunk Node Database
JavaScript Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
config
db
doc
lib
public
script
test
vendor
.gitignore
.gitmodules
.project
MIT-LICENSE
README.rdoc
Rakefile

README.rdoc

Freifunk Node Database

This is a simple web application for maintaining a list of nodes (and subnets) within a mesh network such as Freifunk.

Instead of trying to mess with automated data aggregation and doing funky statistics stuff this database is focused on rather “offline” data to be maintained by the node owners. A major design principle applied is KISS. Currently there is no aggregation of live data (except for the live map layer and the topology graph which both are being generated by external scripts by now).

For a live installation visit db.hannover.freifunk.net

It's development has just started and therefore most of the features are yet listed as planned.

Features

  • IP Address validation to ensure unique, separate addresses

  • Auto-generation/proposal of IP addresses for Subnets and Nodes

  • Geo location lookup for node based on given postal address

  • Map displaying nodes

    • Base Layer from OpenStreetMap.org

    • Main Layer displays data from the node database

    • Additional layers to display data from external datasources (e.g. OLSR nameservice plugin)

  • User self-signup with E-Mail activation and password reminder

  • Simple role based authorization

  • Basic admin backend

  • RESTful Webservice interface

Planned Features

  • “Click here to join Freifunk”-Wizard for users with very limited technical knowledge

    • Suggest existing nearby subnet based on geo location

  • Messaging system (allow sending emails to people without exposing their email to the public)

  • Search function

  • Tags (acts_as_taggable?)

  • Localization

  • Gradual engagement (nobody likes signup forms)

  • Enrich user profiles, e.g. avatar, jabber, etc.

  • Require HTTPS for sensitive actions

  • Mass mailer for admin (ar_mailer)

  • Rewrite cgi-bin-map.kml in ruby: add caching and filters

  • Rewrite topo.pl in ruby: add caching and filters

Installation

  1. Clone main application

    $ git clone git://github.com/knox/nodes.git
  2. Clone plugins

    $ git submodule init
    $ git submodule update
  3. Create configuration files to suit your needs

    $ cp config/database.yml.sample config/database.yml
    $ vi config/database.yml
    $ cp config/config.yml.sample config/config.yml
    $ vi config/config.yml
  4. Generate site key (encrypts user passwords)

    $ rake auth:gen:site_key
  5. Create database, load chema and initialize with the seed data

    $ rake db:setup

Todo

  • Write tests (RSpec?)

  • Write documentation (github wiki)

  • Graceful handling of invalid requests (respond with http 404 where appropriate)

  • Polish geo location lookup (separate controller)

  • Polish map layer

Plugins / Gems

  • Geokit-Rails by Bill Eisenhauer & Andre Lewis is released under the MIT License

    http://github.com/andre/geokit-rails
  • MapLayers by Pirmin Kalberer is released under the MIT License

    http://github.com/pka/map_layers
  • restful_authentication by Rick Olson is released under the MIT License

    http://github.com/technoweenie/restful-authentication
  • role_requirement by Timothy Curtis Harper and Jonathan Barket is released under the MIT License

    http://github.com/timcharper/role_requirement
  • StripAttributes by Ryan McGeary is released under the MIT License

    http://github.com/rmm5t/strip_attributes
  • will_paginate by Mislav Marohnic and PJ Hyett is released under the MIT License

    http://github.com/mislav/will_paginate
  • ujs_sort_helper by Stuart Rackham and Wynn Netherland is released under the MIT license

    http://github.com/pengwynn/ujs_sort_helper

References

This application is inspired by FFSomething

https://dev.leipzig.freifunk.net/trac/wiki/FFSomething

The cgi-bin-map.kml script is written by Sven-Ola and was published on the OLSR Mailinglist

http://lists.olsr.org/pipermail/olsr-dev/2008-August/002369.html

Most of the authentication and authorization stuff has been taken from the nice tutorial by Matthew Solt, released under the MIT License

http://github.com/activefx/restful_authentication_tutorial

License

Freifunk Node Database is released under the MIT license.

Copyright © 2009, 2010 Mikolas Bingemer