= Example Apps If you have worked in the past with Ruby on Rails, you will notice quickly that Decidim is *not* your typical Ruby on Rails Vanilla App. We have tried using http://decide.es[Consul] but we found some problems on reutilization, adaptation, modularization and configuration. You can read more about that on https://alabs.gitbooks.io/propuesta-de-cambios-en-la-arquitectura-de-consul/content/[Propuesta de Cambios de Arquitectura de Consul (in spanish only)]. As a summary, we decided to try with a model based in https://guides.rubyonrails.org/engines.html[RoR Engines]. A good resource regarding this approach is https://cbra.info/[Component Based Rails Applications]. == What this means This means that: . Decidim is a https://rubygems.org/gems/decidim[gem], available in rubygems.org. You can install it with the command `gem install decidim` . Decidim is a command line generator of Ruby on Rails applications. After you have install it you can generate a new RoR app with `decidim HelloWorld` . This app has a dependency the gem itself. You can see this in the Gemfile of the generated app. . This app can be extended by making changes in the app (see xref:customize:index.adoc[Customising]) and by working with https://decidim.org/modules[Modules]. == Examples Here are some good examples of what can be done with Decidim: === Helsinki OmaStadi See the website at https://omastadi.hel.fi/ See the source code at https://github.com/City-of-Helsinki/decidim-helsinki/ image::helsinki.png[Helsinki OmaStadi] Some highlights: * They have their https://github.com/City-of-Helsinki/decidim-helsinki/blob/b9a09e570eb6090dee93f2ee73b5951882c74755/Gemfile[Gemfile] with lots of modules with their own code. Some of them are also in ruybgems (like `decidim-access_requests`, `decidim-antivirus`, `decidim-mpassid`, `decidim-process_groups_content_block`, `decidim-suomifi`, `decidim-term_customizer`), others are only in Github (`decidim-accountability_simple`, `decidim-apiauth`, `decidim-combined_budgeting`, `decidim-plans`, `decidim-redirects`). They even use a module made by other organization in the community (`decidim-budgets_enhanced`) * They have their UI customized to their needs. See the https://github.com/City-of-Helsinki/decidim-helsinki/tree/a7396a312cc04198654a86d66c2a7de556c212af/app/assets/stylesheets[CSS] and https://github.com/City-of-Helsinki/decidim-helsinki/tree/a7396a312cc04198654a86d66c2a7de556c212af/app/views[HTML (views)]. * They have an awesome README explaining how it works and what changes have made. === Decidim Barcelona See the website at https://decidim.barcelona See the source code at https://github.com/AjuntamentdeBarcelona/decidim-barcelona image::barcelona.png[Decidim Barcelona] Some highlights: * In the https://github.com/AjuntamentdeBarcelona/decidim-barcelona/blob/4d88ec6106c5f29354a1fd069dd50d7d123e492a/Gemfile#L7[Gemfile], they use some modules that are local only, as folders in the repository using the "path" Bundler directive: `decidim-dataviz`, `decidim-stats`, `decidim-valid_auth` * For the footer (FEDER logo notice) they use the `deface` gem instead of overriding. See https://github.com/AjuntamentdeBarcelona/decidim-barcelona/pull/300[Pull Request]. === inDICEs See the website at https://participate.indices-culture.eu/ See the source code at https://github.com/Platoniq/decidim-indices image::indices.png[inDICEs] Some highlights: * In the https://github.com/Platoniq/decidim-indices/blob/ef6d862900ed440aa5ee94c9618648650f3342c6/Gemfile#L13[Gemfile], they use modules on their git repositories: `decidim-decidim_awesome`, `decidim-direct_verifications`, `decidim-notify` and `decidim-term_customizer`. * They have their UI customized to their needs.