You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Javier Alvarez 0c8c53f7b2
Merge branch 'master' of github.com:Vizzuality/cartodb
13 years ago
app map tab removed 13 years ago
config Refactored resque 13 years ago
db Added subdomains to users 13 years ago
doc updated redis keys to reflect simplified schema call 13 years ago
lib Fixed variables names in documentation 13 years ago
misc Typo fix: EmtpyTable > EmptyTable 13 years ago
public Merge branch 'master' of github.com:Vizzuality/cartodb 13 years ago
script Adds resque gem and first mailer jobs 14 years ago
spec Improved specification of Table#to_csv method to check if the_geom fields where exported 13 years ago
tmp Add tmp folder to the repo and fix wrong javascript filenames in asset_packages 14 years ago
vendor/plugins Externalized cartodb-importer 13 years ago
.gitignore App config and database.yml are not ignored anymore 13 years ago
.rvmrc .rvmrc 14 years ago
Capfile Add capistrano deploy scripts and staging database configuration params 14 years ago
Gemfile Update cartodb-importer version 13 years ago
Gemfile.lock Update cartodb-importer version 13 years ago
README.md Update README to reflecto possible error when compiling python gdal lib on osx 13 years ago
Rakefile Fix 14 years ago
Termfile last changes 13 years ago
Vagrantfile added vagrant file 13 years ago
config.ru Moving from ProtoCartodb to CartoDB 14 years ago
deploy_production.sh Adds deploy_production.sh script and comments deploy_staging.sh 14 years ago
deploy_staging.sh Adds deploy_production.sh script and comments deploy_staging.sh 14 years ago
jenkings.sh jenkings.sh to run ci tests 13 years ago
python_requirements.txt * Recover README.md lost in merge 13 years ago

README.md

CartoDB

Introduction

CartoDB is a HTTP wrapper for a PostgreSQL + PostGIS database. It is composed of different components:

  • PostgreSQL + PostGIS database: a dedicated postgresql database with geospatial functionalities
  • User Interface: allows the user to create and manage tables, and their data, import new ones, or export them to files
  • Pure SQL API endpoint: JSON API which allow users to run SQL queries and get their response in JSON format

Components

PostgreSQL + PostGIS database

Each CartoDB user has his own postgresql database, totally isolated from the other users databases, which extra geospatial functionalities provided by PostGIS. The users can, basically, do what they want in his database, there are no limitations.

User Interface

The UI is a front-end layer on the top of the database which helps the users to create new tables, and to manage the data from those tables. Also, the users can get the OAuth tokens to use the API from the interface.

This UI uses internally a REST API, which is only for internal use.

Also, all the import/export functionality has been externalized to a Ruby gem named cartodb-importer.

Both, UI and REST API, are implemented using Ruby on Rails.

Pure SQL API

SQL API allows the users to use their databases via HTTP requests and get a response in JSON format.

This component runs in Node.JS.

Setting-up the environment for developers

First time

  • Install Ruby 1.9.2

  • Install Node.JS and Npm, following these steps: https://github.com/joyent/node/wiki/Installation

  • Install PostgreSQL, PostGIS, GDAL, and Geo.

  • Install Redis from http://redis.io/download or using Homebrew.

  • Python dependencies:

  • Setup new hosts in /etc/hosts:

    # CartoDB
    127.0.0.1 api.localhost.lan developers.localhost.lan localhost.lan
    127.0.0.1 testhost.lan api.testhost.lan developers.testhost.lan
    # # # # #
    
  • Clone the Node SQL API in your projects folder:

    git clone git@github.com:tokumine/cartodb-sql-api.git
    
  • Clone the main repository in your projects folder:

    git clone git@github.com:Vizzuality/cartodb.git
    
  • Change to cartdb/ folder and rvm will require to create a new gemset. Say yes. If not, you must create a gemset for Ruby 1.9.2:

    rvm use 1.9.2@cartodb --create
    
  • Run bundle:

    bundle install --binstubs
    
  • Run Redis:

    cd /tmp
    redis-server
    
  • Run rake cartodb:db:setup

Every day usage

  • Check if Redis is running, if not cd /tmp; redis-server

  • Change to CartoDB directory

  • Run rake db:reset if you want to reset your data and load the databa from seeds.rb file

  • Run a Rails server in port 3000: rails s

  • In a separate tab run a Rails server in port 3001 for REST API: rails s -p 3001

  • In a separate tab change to Node SQL API folder and run node.js: node app.js developement

  • Open your browser and go to http://localhost.lan:3000

  • Enjoy