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).