The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Ado::Manual::Intro - General overview

What is Ado?

Ado was started in November 2013 as a rewrite of a previous project (MYDLjE) based on Mojolicious 1.9x. MYDLjE was too monolithic. It was not possible to start with minimum features, disable some of them and re-enable them only if needed. Ado is much more modular and flexible than MYDLjE and its name is not an acronym :).

Ado's purpose is the same as of MYDLjE – to quickly put together a lightweight web application and/or site based on Mojolicious with scalability, performance and growth in mind. An Ado system starts as a minimal application that can turn into an ERP, a CMS, a CRM or all in one by just adding plugins along the way as the organization which is using it grows.

It comes with default configuration file etc/ado.conf and a model Ado::Model, loaded at "startup" in Ado by Mojolicious::Plugin::DSC. An SQLite database is bundled with the distribution at etc/ado.sqlite to get started quickly.

Ado provides additional plugins and commands, which promote RAD, good practices, and team-work. The default Ado page uses Semantic UI via Mojolicious::Plugin::SemanticUI and is a good place to get acquainted. In short, Ado can be used right away as a CMS that can be extended with plugins and commands or as a CMF on which to build many different specific applications.

Here is the directory structure. It does not contain the files for brevity. It looks much the same as a full Mojolicious application would look and as described in "Differences" in Mojolicious::Guides::Growing. One noticeable difference is that Ado has it's starter script in bin instead of in script and this is only to ease the deployment. Another one is the Ado::Control namespace instead of Ado::Controlller. We did this for brevity. The third difference is site_templates, used for putting Ado system-templates which you want to override, e.g put our own copy of templates/partials/head.html.ep in site_templates/partials/head.html.ep and modify it. This way you can create your own themes without fearing that on the next upgrade your changes may be lost.

  Ado                       # Application directory
  ├── bin                   # Script directory
  ├── etc                   # Configuration files and SQLite database directory
  │   ├── commands          # Commands configuration files directory (Nothing here yet)
  │   └── plugins           # Plugins configuration files directory
  ├── lib                   # Library directory where Ado.pm resides
  │   └── Ado               # Application namespace
  │       ├── Command       # Commands namespace for commands such as Ado::Command::adduser
  │       │   └── generate  # Generators such as Ado::Command::generate::apache2vhost are here
  │       ├── Control       # Controller namespace where controller classes
  │       │                 # like Ado::Control::Users reside
  │       ├── I18n          # Namespace for lexicon packages such as Ado::I18n::bg
  │       ├── Manual        # Namespace for developer manuals like this very file
  │       ├── Model         # Controller namespace where controller classes
  │       │                 # like Ado::Model::Users reside
  │       ├── Plugin        # Ado plugins namespace, e.g. Ado::Plugin::Auth
  │       └── Sessions      # Server side sessions - e.g. Ado::Sessions::Database
  ├── log                   # Log directory
  ├── public                # Static file directory (served automatically)
  │   │                     # Good for generated static pages served by e.g. Apache or Nginx
  │   ├── css
  │   │   └── flags
  │   ├── doc
  │   │   ├── bg
  │   │   │   └── img
  │   │   └── en
  │   ├── fonts
  │   ├── img
  │   ├── js
  │   └── vendor            # Directory for putting vendor specific JavaScript libraries
  │       ├── crypto-js
  │       │   └── rollups
  │       └── pagedown
  ├── site_templates        # Template directory for site specific templates, used instead
  │                         # of those with the same name found in templates directory
  ├── t                     # Test directory
  │   ├── ado
  │   │   ├── etc
  │   │   │   └── plugins
  │   │   └── lib
  │   │       └── Ado
  │   │           └── Plugin
  │   ├── command
  │   ├── plugin
  │   └── sessions
  └── templates             # Template directory. Copy from here to "site_templates" and
      │                     # modify if you want to override some of the system templates
      ├── default
      ├── doc
      ├── layouts
      ├── partials
      └── test

And here is how Ado looks as building blocks:

To learn more about Ado plugins, please look at Ado::Manual::Plugins. Now that you know what additional features Ado provides, you can proceed to Ado::Manual::Installation.

SEE ALSO

Ado::Manual, Ado::Manual::Installation, Ado::Manual::Plugins, Mojolicious::Guides

COPYRIGHT AND LICENSE

Copyright 2013-2015 Красимир Беров (Krasimir Berov).

This program is free software, you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License v3 (LGPL-3.0).