-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Setup & Notes
The following need to be installed.
- git
- postgres
- postgis
- rbenv (ruby package manager)
- ruby
- geos (geospatial library that supports the rgeo gem)
- imagemagick (for manipulating image file uploads)
Install all of your prequisites using homebrew
brew install git postgres postgis rbenv ruby-build geos imagemagick
Add rbenv to bash so that it loads every time you open a terminal
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile
Install Ruby
rbenv install 2.4.0
ruby -v
git clone https://github.com/camsys/oneclick-core.git
Setup rbenv to default to ruby 2.4.0
cd oneclick-core
rbenv local 2.4.0
Ruby <2.4 is incompatible with OpenSSL 1.1 so you may have to install OpenSSL 1.0 and then link it. For example:
brew install rbenv/tap/[email protected]
rvm install 2.1.2 -C --with-openssl-dir=`brew --prefix [email protected]`
Install bundler and install gems.
gem install bundler
bundle install
If you receive a build error similar to this:
Installing pg 0.21.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
Install the gem manually in this manner: sudo gem install pg -v '0.21.0'
Do not run the command sudo bundle install
as it will cause unforeseen errors. If you run that command, you can undo it with sudo bundle install --system
Make an alias for starting and stopping postgres:
alias start-psql='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
alias stop-psql='pg_ctl -D /usr/local/var/postgres stop -s -m fast'
You can now start and stop postgres by typing start-psql
and stop-psql
respectively.
(Optional: Set postgres to turn on at startup)
Note: Ensure postgres is running by typing pg_isready
before moving on. You should see the message: "accepting connections"
This code creates your development database, loads the schema, and populates seed data:
rake db:setup
Optional: Add sample data to your development setup.
rake db:sample:all
To build locales and load locale files, run:
rake simple_translation_engine:update
Locally, you can configure ENV variables using a local_env.yml file. Copy the example file (local_env.yml.example), rename to local_env.yml
, and uncomment, modify, or add any ENV variables needed to configure your app properly.
rails s
Open a browser and go to localhost:3000
.
Login with
email: [email protected]
pword: welcome1
You may run into the following error when running migrations, especially during rake db:reset
:
PG::UndefinedObject: ERROR: type "geometry" does not exist
To fix this, follow the steps outlined here (https://stackoverflow.com/questions/7001447/postgis-error-type-geography-does-not-exist):
- Open the psql console. On heroku, you can do this by running
heroku pg:psql -a app-name
- Make sure you're connected to the right database, and run
CREATE EXTENSION Postgis;
- Quit psql with \q.
- Re-run migrations; they should work now.
Modules are included by adding the module name as an environment variable, set to any truthy value (e.g. "true"). Locally, this can be achieved by creating a config/oneclick_modules.rb
file. This can be copied over from config/oneclick_modules.rb.sample
as a starting point. On Heroku, these variables can be set directly as heroku config variables.
To set up the OneclickReferNET engine:
Locally:
- Create a copy of
config/oneclick_modules.rb.sample
in the config directory and rename itoneclick_modules.rb
. - Add or un-comment the line:
ENV["ONECLICK_REFERNET"] = "true"
- [THIS IS NO LONGER NECESSARY]run
bundle install
,rake oneclick_refernet:install:migrations
andrake db:migrate
- run
rake oneclick_refernet:load_database
to import the ReferNET database. This will take a while.
Heroku:
- In the Settings tab for your app, click "Reveal Config Vars". Create a new variable with KEY =
ONECLICK_REFERNET
and VALUE =true
. - May need to do
heroku restart -a app-name
or something to get it to reinstall gems. - [THIS IS NO LONGER NECESSARY] run
rake oneclick_refernet:install:migrations
- run
heroku run rake db:migrate -a app-name
- run
rake oneclick_refernet:load_database
to import the ReferNET database. This will take a while. - If desired setting up a scheduled daily task to run
rake oneclick_refernet:load_database_on_sunday
will only run theload_database
task if the day of the week is Sunday.
OneClick uses a custom translation engine, which implements localization via a Locale table, a TranslationKey table, and a Translation table. It also allows automatic translations using the Google Translate API. See wiki for description of rake tasks.