Commit 9914b2e1 authored by Alexandre Friquet's avatar Alexandre Friquet
Browse files

Initial commit

parents
#
# OLIGAA - Stands for "Outil en Ligne d'Information et de Gestion des Activités
# des Associations" which is an online tool for associations to manage news,
# actors and activities.
# Copyright (C) 2010-2015 Comité Départemental du Sport Adapté de la Gironde (CDSA
# 33) <contact@cdsa33.org>
#
# This file is part of OLIGAA.
#
# OLIGAA is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# OLIGAA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with OLIGAA. If not, see <http://www.gnu.org/licenses/>.
#
# Used for cookies store name : identifies your app
APP_ID=OLIGAA
# Used for pdf file names and other stuff
APP_NAME="OLIGAA Prod"
# Secret token to verify identity of the provided cookies
# at least 30 chars : try `rake secret`
APP_SECRET_TOKEN='cookies_secret'
# Secret used to prevent cross-site scripting attacks
# with URL store for breadcrumb
GRETEL_TRAILS_SECRET='gretel_secret'
.bundle
db/*.sqlite3
log/*.log
tmp/
public/system
.DS_Store
vendor/bundle
coverage
.env
#
# OLIGAA - Stands for "Outil en Ligne d'Information et de Gestion des Activités
# des Associations" which is an online tool for associations to manage news,
# actors and activities.
# Copyright (C) 2010-2015 Comité Départemental du Sport Adapté de la Gironde (CDSA
# 33) <contact@cdsa33.org>
#
# This file is part of OLIGAA.
#
# OLIGAA is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# OLIGAA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with OLIGAA. If not, see <http://www.gnu.org/licenses/>.
#
require 'hirb'
Hirb.enable
Pry.config.print = proc do |output, value|
Hirb::View.view_or_page_output(value) || Pry::DEFAULT_PRINT.call(output, value)
end
--color
--format Fuubar
# Comment contribuer
OLIGAA est un logiciel libre et recueille avec intérêt tout avis ou contribution, n'hésitez donc pas à nous contacter.
Ce guide de contribution ne déroge pas à la règle :-)
## Donner votre avis
1. Vous pouvez nous écrire à **contact (at) cdsa33.org** ;
2. Formuler une demande (_issue_) dans [Framagit](https://git.framasoft.org/CDSA33/OLIGAA) (utilisant [Gitlab CE](https://about.gitlab.com/features/#community)).
Et discutons-en !
## Proposer du code
Il existe deux moyens de fournir du code pour OLIGAA, la première étant préférée :
1. Fourcher (_fork_) le projet sur [Framagit](https://git.framasoft.org/CDSA33/OLIGAA) et soumettre un [requête de fusion](https://git.framasoft.org/help/gitlab-basics/add-merge-request.md) (_merge request_) ;
2. Envoyer un correctif Git à **contact (at) cdsa33.org**.
Dans tous les cas, veuillez respecter la recommandation suivante.
### N'oubliez pas les tests
Votre correction aura bien plus de chances d'être intégré à l'outil si ce qu'elle améliore est bien testé. Si vous n'êtes pas à l'aise avec la batterie de tests actuelle, n'hésitez pas à nous en faire part.
À cette étape de lecture, vous devriez déjà savoir comment exécuter les tests, mais juste au cas où ;-)
```
bundle exec rake
```
#
# OLIGAA - Stands for "Outil en Ligne d'Information et de Gestion des Activités
# des Associations" which is an online tool for associations to manage news,
# actors and activities.
# Copyright (C) 2010-2015 Comité Départemental du Sport Adapté de la Gironde (CDSA
# 33) <contact@cdsa33.org>
#
# This file is part of OLIGAA.
#
# OLIGAA is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# OLIGAA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with OLIGAA. If not, see <http://www.gnu.org/licenses/>.
#
source 'https://rubygems.org'
gem "rails", "3.2.22"
gem 'dotenv-rails'
gem "paperclip"
gem "hirb"
gem "acts_as_list"
gem "pdfkit"
gem "will_paginate"
gem "truncate_html"
gem 'google-api-client', '~> 0.7.0'
gem 'delayed_job'
gem 'delayed_job_active_record'
gem 'daemons'
gem 'rdoc'
gem 'event-calendar', '~> 2.3.3', require: 'event_calendar'
gem 'jquery-rails'
gem 'formatize'
gem 'simple_form'
gem "nested_form"
gem 'geocoder'
gem 'gmaps4rails'
gem 'gretel', '3.0.5'
gem 'gretel-trails', '~> 0.0.5'
gem 'piwik_analytics', git: 'https://git.framasoft.org/infopiiaf/piwik_analytics.git'
group :assets do
gem 'sass-rails', " ~> 3.2.3"
gem 'coffee-rails', "~> 3.2.1"
gem 'uglifier', '>= 1.0.3'
gem 'jquery-ui-rails'
gem 'compass-rails'
# See https://github.com/sstephenson/execjs for javascript runtime library
# gem 'therubyracer', platforms: :ruby
gem 'susy'
gem 'turbo-sprockets-rails3'
gem 'zeroclipboard-rails'
gem 'fitvidsjs_rails'
gem 'font-awesome-rails'
gem 'jquery-colorpicker-rails'
end
group :development, :test do
gem "sqlite3"
gem 'rspec-rails'
gem 'pry-rails'
end
group :test do
gem 'simplecov', '>= 0.4.0', require: false
gem 'webmock', '~> 1.17.4'
gem 'vcr', '~> 2.9.3'
gem 'timecop', '~> 0.8.0'
gem 'capybara'
gem 'launchy'
gem 'factory_girl_rails'
gem 'shoulda-matchers'
gem 'database_cleaner'
gem 'selenium-webdriver'
gem 'capybara-webkit'
gem 'fuubar'
end
group :development do
gem 'mailcatcher'
gem 'brakeman'
end
GIT
remote: https://git.framasoft.org/infopiiaf/piwik_analytics.git
revision: 32b108ede107f35f1338f932d0ff6e7452409cb6
specs:
piwik_analytics (1.0.5)
actionpack
activesupport
rails (>= 3.0.0)
GEM
remote: https://rubygems.org/
specs:
RedCloth (4.2.9)
actionmailer (3.2.22)
actionpack (= 3.2.22)
mail (~> 2.5.4)
actionpack (3.2.22)
activemodel (= 3.2.22)
activesupport (= 3.2.22)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
rack (~> 1.4.5)
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
activemodel (3.2.22)
activesupport (= 3.2.22)
builder (~> 3.0.0)
activerecord (3.2.22)
activemodel (= 3.2.22)
activesupport (= 3.2.22)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activeresource (3.2.22)
activemodel (= 3.2.22)
activesupport (= 3.2.22)
activesupport (3.2.22)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
acts_as_list (0.2.0)
activerecord (>= 3.0)
addressable (2.3.4)
arel (3.0.3)
autoparse (0.3.3)
addressable (>= 2.3.1)
extlib (>= 0.9.15)
multi_json (>= 1.0.0)
bluecloth (2.2.0)
brakeman (3.1.1)
erubis (~> 2.6)
fastercsv (~> 1.5)
haml (>= 3.0, < 5.0)
highline (~> 1.6)
multi_json (~> 1.2)
ruby2ruby (>= 2.1.1, < 2.3.0)
ruby_parser (~> 3.7.0)
sass (~> 3.0)
slim (>= 1.3.6, < 4.0)
terminal-table (~> 1.4)
builder (3.0.4)
capybara (2.1.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
xpath (~> 2.0)
capybara-webkit (1.3.0)
capybara (>= 2.0.2, < 2.5.0)
json
childprocess (0.5.5)
ffi (~> 1.0, >= 1.0.11)
chunky_png (1.2.8)
cocaine (0.2.1)
coderay (1.0.9)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.6.2)
compass (0.12.2)
chunky_png (~> 1.2)
fssm (>= 0.2.7)
sass (~> 3.1)
compass-rails (1.0.3)
compass (>= 0.12.2, < 0.14)
crack (0.4.2)
safe_yaml (~> 1.0.0)
daemons (1.1.9)
database_cleaner (1.4.0)
delayed_job (3.0.5)
activesupport (~> 3.0)
delayed_job_active_record (0.4.4)
activerecord (>= 2.1.0, < 4)
delayed_job (~> 3.0)
diff-lcs (1.2.4)
docile (1.1.5)
dotenv (2.0.1)
dotenv-rails (2.0.1)
dotenv (= 2.0.1)
erubis (2.7.0)
event-calendar (2.3.3)
eventmachine (1.0.3)
execjs (1.4.0)
multi_json (~> 1.0)
extlib (0.9.16)
factory_girl (4.2.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.2.1)
factory_girl (~> 4.2.0)
railties (>= 3.0.0)
faraday (0.9.1)
multipart-post (>= 1.2, < 3)
fastercsv (1.5.5)
ffi (1.9.6)
fitvidsjs_rails (1.0.0)
railties (>= 3.1)
font-awesome-rails (4.4.0.0)
railties (>= 3.2, < 5.0)
formatize (1.1.0)
RedCloth (~> 4.2)
actionpack (~> 3.0)
bluecloth (~> 2.2)
fssm (0.2.10)
fuubar (1.2.1)
rspec (~> 2.0)
rspec-instafail (~> 0.2.0)
ruby-progressbar (~> 1.0)
geocoder (1.2.0)
gmaps4rails (2.1.2)
google-api-client (0.7.1)
addressable (>= 2.3.2)
autoparse (>= 0.3.3)
extlib (>= 0.9.15)
faraday (>= 0.9.0)
jwt (>= 0.1.5)
launchy (>= 2.1.1)
multi_json (>= 1.0.0)
retriable (>= 1.4)
signet (>= 0.5.0)
uuidtools (>= 2.1.0)
gretel (3.0.5)
rails (>= 3.2.0)
gretel-trails (0.0.5)
gretel (>= 3.0.0.beta6)
rails (>= 3.2.0)
haml (4.0.2)
tilt
highline (1.6.8)
hike (1.2.3)
hirb (0.7.1)
i18n (0.7.0)
journey (1.0.4)
jquery-colorpicker-rails (1.0.3.1)
jquery-ui-rails (~> 4.0)
jquery-rails (3.0.4)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
jquery-ui-rails (4.0.3)
jquery-rails
railties (>= 3.1.0)
json (1.8.3)
jwt (1.2.0)
launchy (2.3.0)
addressable (~> 2.3)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mailcatcher (0.5.11)
activesupport (~> 3.0)
eventmachine (~> 1.0.0)
haml (>= 3.1, < 5)
mail (~> 2.3)
sinatra (~> 1.2)
skinny (~> 0.2.3)
sqlite3 (~> 1.3)
thin (~> 1.5.0)
method_source (0.8.1)
mime-types (1.25.1)
multi_json (1.11.2)
multipart-post (2.0.0)
nested_form (0.3.2)
nokogiri (1.5.9)
paperclip (2.4.5)
activerecord (>= 2.3.0)
activesupport (>= 2.3.2)
cocaine (>= 0.0.2)
mime-types
pdfkit (0.6.2)
polyglot (0.3.5)
pry (0.9.12.2)
coderay (~> 1.0.5)
method_source (~> 0.8)
slop (~> 3.4)
pry-rails (0.3.0)
pry (>= 0.9.10)
rack (1.4.7)
rack-cache (1.5.1)
rack (>= 0.4)
rack-protection (1.5.0)
rack
rack-ssl (1.3.4)
rack
rack-test (0.6.3)
rack (>= 1.0)
rails (3.2.22)
actionmailer (= 3.2.22)
actionpack (= 3.2.22)
activerecord (= 3.2.22)
activeresource (= 3.2.22)
activesupport (= 3.2.22)
bundler (~> 1.0)
railties (= 3.2.22)
railties (3.2.22)
actionpack (= 3.2.22)
activesupport (= 3.2.22)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rake (10.4.2)
rdoc (3.12.2)
json (~> 1.4)
retriable (1.4.1)
rspec (2.13.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
rspec-core (2.13.1)
rspec-expectations (2.13.0)
diff-lcs (>= 1.1.3, < 2.0)
rspec-instafail (0.2.6)
rspec
rspec-mocks (2.13.1)
rspec-rails (2.13.2)
actionpack (>= 3.0)
activesupport (>= 3.0)
railties (>= 3.0)
rspec-core (~> 2.13.0)
rspec-expectations (~> 2.13.0)
rspec-mocks (~> 2.13.0)
ruby-progressbar (1.7.1)
ruby2ruby (2.2.0)
ruby_parser (~> 3.1)
sexp_processor (~> 4.0)
ruby_parser (3.7.1)
sexp_processor (~> 4.1)
rubyzip (1.1.6)
safe_yaml (1.0.4)
sass (3.2.9)
sass-rails (3.2.6)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
selenium-webdriver (2.44.0)
childprocess (~> 0.5)
multi_json (~> 1.0)
rubyzip (~> 1.0)
websocket (~> 1.0)
sexp_processor (4.6.0)
shoulda-matchers (2.1.0)
activesupport (>= 3.0.0)
signet (0.6.0)
addressable (~> 2.3)
extlib (~> 0.9)
faraday (~> 0.9)
jwt (~> 1.0)
multi_json (~> 1.10)
simple_form (2.1.0)
actionpack (~> 3.0)
activemodel (~> 3.0)
simplecov (0.10.0)
docile (~> 1.1.0)
json (~> 1.8)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.0)
sinatra (1.3.6)
rack (~> 1.4)
rack-protection (~> 1.3)
tilt (~> 1.3, >= 1.3.3)
skinny (0.2.3)
eventmachine (~> 1.0.0)
thin (~> 1.5.0)
slim (3.0.6)
temple (~> 0.7.3)
tilt (>= 1.3.3, < 2.1)
slop (3.4.5)
sprockets (2.2.3)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.7)
susy (1.0.9)
compass (>= 0.12.2)
sass (>= 3.2.0)
temple (0.7.6)
terminal-table (1.5.2)
thin (1.5.1)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.19.1)
tilt (1.4.1)
timecop (0.8.0)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
truncate_html (0.9.2)
turbo-sprockets-rails3 (0.3.10)
railties (> 3.2.8, < 4.0.0)
sprockets (>= 2.0.0)
tzinfo (0.3.44)
uglifier (2.1.0)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
uuidtools (2.1.5)
vcr (2.9.3)
webmock (1.17.4)
addressable (>= 2.2.7)
crack (>= 0.3.2)
websocket (1.2.1)
will_paginate (3.0.4)
xpath (2.0.0)
nokogiri (~> 1.3)
zeroclipboard-rails (0.0.7)
railties (>= 3.1)
PLATFORMS
ruby
DEPENDENCIES
acts_as_list
brakeman
capybara
capybara-webkit
coffee-rails (~> 3.2.1)
compass-rails
daemons
database_cleaner
delayed_job
delayed_job_active_record
dotenv-rails
event-calendar (~> 2.3.3)
factory_girl_rails
fitvidsjs_rails
font-awesome-rails
formatize
fuubar
geocoder
gmaps4rails
google-api-client (~> 0.7.0)
gretel (= 3.0.5)
gretel-trails (~> 0.0.5)
hirb
jquery-colorpicker-rails
jquery-rails
jquery-ui-rails
launchy
mailcatcher
nested_form
paperclip
pdfkit
piwik_analytics!
pry-rails
rails (= 3.2.22)
rdoc
rspec-rails
sass-rails (~> 3.2.3)
selenium-webdriver
shoulda-matchers
simple_form
simplecov (>= 0.4.0)
sqlite3
susy
timecop (~> 0.8.0)
truncate_html
turbo-sprockets-rails3
uglifier (>= 1.0.3)
vcr (~> 2.9.3)
webmock (~> 1.17.4)
will_paginate
zeroclipboard-rails
BUNDLED WITH
1.11.2
This diff is collapsed.
# Outil en Ligne d'Information et de Gestion des Activités des Associations
Projet initié par le Comité départemental du sport adapté de Gironde (CDSA33), cet outil est à destination des associations désirant faciliter la gestion et la communication autour des actions qu'elles entreprennent. Commanditaire des développements depuis 2010, le CDSA33 libére le projet en 2016, sensible aux arguments de la [démarche d'essaimage](http://www.infopiiaf.fr/blog/2015/07/07/libre-et-agile-un-dessin-d-essaim.html).
Ainsi, toute organisation se retrouvant dans les fonctionnalités imaginées et développées au fil des ans est maintenant libre de les utiliser, voire de les améliorer, en ajouter…
## Quelques fonctionnalités
Grâce à OLIGAA :
* vous organisez vos événements et en rendez visible le calendrier ;
* vous mettez en avant les actions et les acteurs du changement que vous promouvez ;
* vous partagez votre actualité par des articles en ligne et une lettre d'information ;
* vous constituez un carnet d'adresses partagé entre tous les collaborateurs, avec la rédaction et l'envoi de courriels ciblés.
Retrouvez plus de détails sur la [page dédiée au projet](http://www.infopiiaf.fr/realisations/cdsa33.html) chez les développeurs ayant commis les premières versions :-)
Un effort particulier a notamment été fait d'un point de vue accessibilité pour permettre aux personnes ayant des difficultés d'avoir accès aux informations.
### Et des idées pour la suite
Ce logiciel n'est pas terminé, loin de là. Il reste de nombreuses fonctionnalités à imaginer et à développer. Citons par exemple :
* Un système d'invitation/inscription aux événements ;
* Le choix entre des cartes _Google Maps_ ou [OpenStreetMap](http://www.openstreetmap.org/) ;
* Un _web service_ de synchronisation des contacts pour carnet d'adresses sur ordinateur de bureau ou téléphone.
Vous trouverez tout en bas de ce document les modalités pour apporter votre pierre à l'édifice.
## Comment l'utiliser ?
Cet outil respecte les us et coutumes du cadriciel grâce auquel il est développé : [Ruby on Rails](http://www.rubyonrails.org/). Les instructions que vous trouverez ci-après ne devraient pas surprendre un habitué… Pour lancer OLIGAA, vous devez pouvoir exécuter Ruby dans la version mentionnée par le [.ruby-version](.ruby-version). Si vous devez l'installer, nous vous recommandons l'utilisation de [rbenv](https://github.com/rbenv/rbenv) et son greffon [ruby-build](https://github.com/rbenv/ruby-build).
Si ce que vous venez de lire ne vous parle pas, nous vous invitons à vous rapprocher d'une personne à l'aise avec les mots-clés ci-dessus :-)
### Poste de développement
Avant de démarrer l'application pour la première fois, vous devez, dans le répertoire du projet :
0. Installer les dépendances : `bundle install` ;
0. Configurer votre environnement
0. Copier le fichier `.env.example` vers `.env` ;
0. Modifier les informations dans ce nouveau fichier.
0. Initialiser la base de données : `bundle exec rake db:setup` ;
0. Créer le compte administrateur : `bundle exec rake oligaa:create_admin`
* N'oubliez pas de noter le mot de passe affiché dans votre terminal.
Vous pouvez alors :
0. Lancer le serveur : `bundle exec rails s` ;
0. Vous connecter avec l'identifiant `admin` et le mot de passe noté plus tôt.
#### Éxécution des tests
Tout nouveau développement doit être accompagné de son jeu de tests, qui garantira qu'aucune régression ne pourra se glisser dans le futur. Pour leur écriture, nous utilisons la bibliothèque [RSpec](http://rspec.info/) pour tous les types de test. Pour vous assurer que tout fonctionne comme attendu, vous pouvez lancer la suite de tests complète et vérifier que tout se déroule sans erreur, grâce à la commande habituelle :
```
$ bundle exec rake
[…]
XXX examples, 0 failures
```
### Déploiement sur serveur
OLIGAA se déploie comme nombre d'applications Rails, sur hébergement dédié ou mutualisé. Les solutions habituelles telles que [Phusion Passenger](https://www.phusionpassenger.com/) ou _Nginx/Apache + Puma/Unicorn/Thin…_ fonctionnent sans problème. À titre d'exemple, le CDSA33 utilise un hébergement mutualisé chez [AlwaysData](https://www.alwaysdata.com/pricing/#shared), servi par _Apache + Passenger_.
Vous devez également avoir à disposition une base de données relationnelle (MySQL par exemple), les bases SQLite utilisées en environnement de développement et test n'étant pas adaptées à un environnement de production.