diff --git a/README.md b/README.md index 690166cee..770629f39 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,24 @@ -# iD - friendly JavaScript editor for OpenStreetMap +# iD - friendly JavaScript editor for [OpenStreetMap](http://www.openstreetmap.org/) + +[![Build Status](https://secure.travis-ci.org/systemed/iD.png)](https://travis-ci.org/systemed/iD) [![](https://raw.github.com/systemed/iD/master/screenshot.jpg)](http://geowiki.com/iD/) -[Try the online demo of the most recent code.](http://geowiki.com/iD/) +[Try the online demo of the most recent code.](http://geowiki.com/iD/) and +[open issues for bugs and ideas!](https://github.com/systemed/iD/issues) ## Basics -* iD is a JavaScript-based [OpenStreetMap](http://www.openstreetmap.org/) editor. -* It's intentionally simple. This is not a 90% editor - - not even a 70% editor. It should let you do the most basic tasks while - not breaking other people's data. Nothing more. (Same goes for the code, - so go easy on the abstraction. :) ) -* We're aiming to support modern desktop browsers and mobile browsers. The map - rendering uses [SVG](http://en.wikipedia.org/wiki/Scalable_Vector_Graphics) via - [d3](http://d3js.org/). +* iD is a JavaScript [OpenStreetMap](http://www.openstreetmap.org/) editor. +* It's intentionally simple. It lets you do the most basic tasks while + not breaking other people's data. +* We support modern browsers. Data is rendered with [d3](http://d3js.org/). -## Architecture - -* iD uses [d3](http://d3js.org/) for graphics & managing databindings to the - map. There's a tiny tiled-map core, but the majority of the action is in - dynamic rendering of the editable map data. -* This project aims to create a usable object model of [OpenStreetMap data](http://wiki.openstreetmap.org/wiki/Tags) - in Javascript that can be transformed by actions and serialized back into - [changesets](http://wiki.openstreetmap.org/wiki/Changeset) - -## Getting started +## Participate! +* [Read NOTES.md, our ongoing dev journal](https://github.com/systemed/iD/blob/master/NOTES.md) * Fork this project. We eagerly accept pull requests. * See [open issues in the issue tracker if you're looking for something to do](https://github.com/systemed/iD/issues?state=open) -* All the code is in js/iD. To run the code locally, just fork this project and run it from a local webserver. With a Mac, you can enable Web Sharing and drop this in your website directory. @@ -37,38 +27,7 @@ If you have Python handy, just `cd` into `iD` and run python -m SimpleHTTPServer -## How it works - -The code inherits many elements from the [Potlatch 2](http://wiki.openstreetmap.org/wiki/Potlatch_2) -and [JOSM](http://josm.openstreetmap.de/) editors. - -We store technical notes in [NOTES.md](https://github.com/systemed/iD/blob/master/NOTES.md). The -basic architecture is as follows: - -* Map: vector rendering, panning behaviors & zoom/center state -* Tiles: receives map centers & draw tiles as a background for iD -* Connection: requests `/map` data from osm, parses this data and delivers it to the Graph -* Graph: stores a javascript object of `id -> osm object` -* History: stores multiple graphs which represent undo states - -Relationships: - -* Map has-a Tiles -* Map has-a Connection -* Map has-a History -* History has-many Graphs - -## Coding tips - -This project has a few basic guidelines for incoming code. The cardinal rules are: - -1. Soft tabs only -2. Everything should pass [jshint](http://www.jshint.com/) without warning -3. Never write bugs - -(you can write bugs). If you need a style guide, [AirBNB has a decent one.](https://github.com/airbnb/javascript) - -Come on in, the water's lovely. More help? Ping RichardF or tmcw on IRC +Come on in, the water's lovely. More help? Ping RichardF, tmcw, or jfire on IRC (`irc.oftc.net`, in `#osm-dev` or `#osm`), on the OSM mailing lists or at richard@systemeD.net.