Skip to content

AirCasting API and web application

License

Unknown, AGPL-3.0 licenses found

Licenses found

Unknown
LICENSE
AGPL-3.0
COPYING
Notifications You must be signed in to change notification settings

BrunoKestemont/AirCasting

 
 

Repository files navigation

Build Status Code Climate

AirCasting - Share your Air!

About

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.

Developing

Branching strategy

  • master is stable code, which automatically deployes to aircasting.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.

Prerequisite: Debian / Ubuntu

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

Prerequisite: Mac

# install rvm https://rvm.io/rvm/install
brew install gsl
brew install imagemagick
brew install mysql@5.7

App (any OS)

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

Tests

run tests

RAILS_ENV=test bundle exec rake db:create db:migrate
bundle exec rspec
yarn test

API documentation

Read more here.

Assets version bumping

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.

Importing a big db dump to a server, i.e. staging

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!

Troubleshooting

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

Problems with mysql2 gem

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('');.

Contribute

If you'd like to contribute just use the usual github process - fork, make changes, issue a pull request.

Contact

You can contact the authors by email at info@habitatmap.org.

Thanks

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.

License

The project is licensed under the GNU Affero GPLv3. For more information see COPYING and visit http://www.gnu.org/licenses/agpl.html.

About

AirCasting API and web application

Resources

License

Unknown, AGPL-3.0 licenses found

Licenses found

Unknown
LICENSE
AGPL-3.0
COPYING

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 54.5%
  • JavaScript 34.0%
  • HTML 8.4%
  • CSS 3.0%
  • Shell 0.1%