Simple, straightforward backend for creating and managing places/POIs (or in german "Orte") and additional informations of a web-based map. Output is a public available API w/JSON and exportable as CSV/JSON/GeoJSON.
Based on Ruby on Rails 5, MySQL/MariaDB, jQuery, Leaflet and Foundation 6.
This application is work in progress. Contributions are welcome (see below).
This application uses Nominatim, a search engine for OpenStreetMap data to look up address and geolocation data. By implementing this application you should respect the Nominatim Usage Policy!
Basic steps for a local installation on your machine:
- Webserver (Apache, NGINX)
- Ruby 2.6+, RVM, ...
- MySQL/Maria DB
- ffmpeg (for the video upload feature), ImageMagick (fpr the image upload feature)
$ git clone git@github.com:ut/ORTE-backend.git
$ gem install bundler
$ bundle install
$ sudo mysql -u root
> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
> GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost';
> CREATE DATABASE orte CHARACTER SET utf8 COLLATE utf8_general_ci;
> exit;
$ bundle exec rails db:schema:load
$ bundle exec rails db:seed
If you need custom credentials, e.g for a server installation, you can secre them with rails credentials and a master.key. Edit the credentials with
$ EDITOR=vim bundle exec rails credentials:edit
$ bundle exec rails s
Code + Design by Ulf Treger ulf.treger@googlemail.com with kind support from and collaboration with:
- Pragma Shift, Hamburg (code donation),
- Treffentotal 2018, Hamburg (first use public case with a map at map.treffentotal.de, which gets its geolocations from ORTE backend via JSON),
- Participants of recent workshops of city/data/explosion at Kunst- und Kulturverein Spedition, Bremen,
- and members of the working group "Queer narratives, mappped" 💖
Feedback, bug reports and code contributions are most welcome.
Send Feedback to ulf.treger@googlemail.com
Please file bug reports and feature request to our Github Repository at https://github.com/ut/ORTE-backend
For code contributions, please fork this repo, make a branch, commit your code & create a pull request.
All contributors shall respect the Contributor Covenant Code of Conduct
This project is licensed under a GNU General Public Licence v3