This is the AirCasting project - the project aims to build a platform for gathering, visualization and sharing of environmental data. To learn more about the platform visit aircasting.org.
master
is stable code, which automatically deployes toaircasting.org
. If you're setting up your own copy of Aircasting use this branch.staging
is a base branch to which we merge code. It automatically deployes to staging server. It may contain some work-in-progress code or unfinished features.
sudo apt-get install bzip2 curl subversion git-core -y
# install rvm https://rvm.io/rvm/install
sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config imagemagick mysql-server libmysqlclient-dev redis-server libgsl0-dev nodejs -y
# install rvm https://rvm.io/rvm/install
brew install gsl
brew install imagemagick
brew install mysql@5.7
rvm install 2.2.10
rvm use 2.2.10
gem install bundler
git clone git://github.com/HabitatMap/AirCasting.git
cd aircasting
cp config/database.yml.example config/database.yml
# `socket:` in `config/database.yml` should be equal to the path from
# `mysqladmin variables -uroot | grep socket | grep "\.sock"`
cp config/secrets.yml.example config/secrets.yml
# fill proper secrets in config/secrets.yml
bundle install
bundle exec rake db:create db:migrate
bundle exec foreman start
yarn install
# visit http://localhost:3000
run tests
RAILS_ENV=test bundle exec rake db:create db:migrate
bundle exec rspec
yarn test
Read more here.
Whenever changing code tounching google maps, the data-version
attribute in app/views/layouts/map.html.haml
should
be bumped. This ensures that the assets will reload correctly.
For restoring a big db dump you can try to opitimize a process by changing the database configuration temporarily. See example post on Stack Overflow
mysql -u root -p
use MY_DATABASE_NAME;
set global net_buffer_length=1000000; --Set network buffer length to a large byte number
set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number
SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour
source file.sql --Import your sql dump file
SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!
In case you encounter a similar error
Mysql2::Error: Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column ...
please check if any of these files
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/local/etc/my.cnf
- ~/.my.cnf
contain sql_mode = "..."
. If that's the case, make sure to remove ONLY_FULL_GROUP_BY
from the string. Otherwise, just add
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
to any existing configuration file. If none exists just create ~/.my.cnf
as follows
[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Note: If you installed mysql using a dmg file, you will have to create ~/.my.cnf according to the insturctions above, Even if some of the other files listed above contains sql_mode = "..."
- this is just a left over from the previous instalations and will not be used by mysql installed by dmg.
To double check the configuration works
bundle exec rails c
ActiveRecord::Base.connection.execute("show variables like 'sql_mode'").to_a
# the return value should not contain ONLY_FULL_GROUP_BY
If you run into error while installing mysql2 with exit code 2 try installing form this source.
If you run into problems with db:migrate related to passwords make sure that you change the root password to ''
. To do that open /your/path/to/mysql -uroot -p
provide the temporary password you were given during installation, then execute set password = password('');
.
If you'd like to contribute just use the usual github process - fork, make changes, issue a pull request.
You can contact the authors by email at info@habitatmap.org.
AirCasting uses The YourKit Java Profiler for Performance Tuning
YourKit is kindly supporting open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. Take a look at YourKit's leading software products: YourKit Java Profiler and YourKit .NET Profiler.
The project is licensed under the GNU Affero GPLv3. For more information see COPYING and visit http://www.gnu.org/licenses/agpl.html.