=encoding utf8

=head1 NAME

Ado::Manual - Getting started with Ado 

=head1 SYNOPSIS

  ado daemon
  Server available at http://127.0.0.1:3000

=head1 DESCRIPTION

Ado is a framework for web projects based on L<Mojolicious>,
written in the L<Perl programming language|http://www.perl.org/>.

Ado is a typical L<Mojo> application yet it adds some default 
configuration and a model layer - L<Mojolicious::Plugin::DSC>. 
An SQLite database is bundled in the distribution at C<etc/ado.sqlite> 
to get started quickly. 

=head1 INSTALLATION

We do not recommend using Ado with your system Perl!

Get a precompiled Perl distro like "Citrus Perl" 
(L<http://www.citrusperl.com/download.html>) or
"ActivePerl Community Edition"
(L<http://www.activestate.com/activeperl/downloads>) for your OS, 
or build your own using L<App::perlbrew>.

Ado can be downloaded from L<CPAN|http://search.cpan.org/dist/Ado/>
and installed manually or installed directly from CPAN using C<cpan> or
C<cpanm> commandline tools. 

Ado is meant to be I<installed into a folder of your choice>.
It can go into the C<siteprefix> folder of your B<I<non-system Perl distro>> 
or in its own folder. When installing Ado in its own folder add the 
C</path/to/ado/bin> to your C<$PATH> environment variable.

=head2 MANUAL

To install manually Ado after downloading, run the following commands:

  tar -zxf Ado-X.XX.tar.gz
  cd Ado-X.XX/
  perl Build.PL --install_base $HOME/opt/ado
  #or simply
  perl Build.PL
  ./Build installdeps
  ./Build
  ./Build test
  ./Build install

=head2 CPAN

  cpanm Ado
  #or
  cpan[1]> install Ado
  Running install for module 'Ado'
  Running make for B/BE/BEROV/Ado-0.26.tar.gz
  ...  
  ...
    BEROV/Ado-0.26.tar.gz
  ./Build install install  -- OK

=head2 PERLBREW

Installing Ado under your own perlbrew environment

  perlbrew init
  perlbrew install -n perl-5.18.1 --as ado -j 3
  perlbrew switch ado
  perlbrew install-cpanm
  cpanm Ado

=head1 SUPPORT AND DOCUMENTATION

After installing, you can find documentation with the
perldoc command. To use C<perldoc> for reading documentation you may 
need to add the full path to L<Ado> C<lib/Perl5> directory to C<PERL5LIB>
environment variable in case you passed the C<--install_base> to C<Build.PL>.

    perldoc Ado
    perldoc Ado::Manual #this page

For better experience run the B<C<ado>> application and read the documentation
from your browser.

  $HOME/opt/ado/bin/ado daemon

If you installed C<ado> in your Perl distro, you can simply type:

  ado daemon

Go to http:/localhost:3000/perldoc

You can report bugs and suggest features at L<http://github.com/kberov/Ado/issues>.
Bugs will be considered and fixed as time permits.
Feel invited to make pull requests for your contributions.

=head1 CONTRIBUTING

Of course anybody can contribute by reporting issues via github.
To be able to contribute with code some rules need to be kept.
This is mandatory for any community project.
Generally the rules outlined in L<Mojolicious::Guides::Contributing>
apply for L<Ado> too.
For specific to Ado rules see L<Ado::Manual::Contributing>.

We expect that you know how to write perl Modules and 
are familiar with L<Mojolicious>.

=head1 REST API

Ado strives for strict separation of concerns. The best way to achieve 
this is to fully separate the client code from the server code. 
Ado is ideally suited for the purpose thanks to
L<Mojolicious>. Every resource is accessible via the REST API.
We follow closely and elaborate on the recommendations in
"RESTful Service Best Practices" 
at L<www.RestApiTutorial.com>. See L<Ado::Manual::RESTAPI>.

=head1 PLUGINS

Ado plugins work the same way as L<Mojolicious::Plugins> and share 
the same common base trough L<Ado::Plugin>.
Ado plugins have one small additional feature. 
They can load their own configuration from
C<$ENV{MOJO_HOME}/etc/plugins/plugin_name.conf>.
Business-specific applications for an Ado-based system are usually implemented 
as plugins. One way to contribute to L<Ado> is by writing plugins.

See L<Ado::Manual::Plugins> and L<Ado::Plugin> for more information.

=head1 SEE ALSO

L<Ado>, L<Mojolicious::Guides>, 
L<Mojolicious::Guides::Contributing>,
L<Module::Build::Cookbook/prefix_vs_install_base>, 
L<http://www.thefreedictionary.com/ado>.

=head1 AUTHORS

Authors in order of joining the core team.

Красимир Беров (Krasimir Berov)(berov@cpan.org)

Вълчо Неделчев (Valcho Nedelchev)(kumcho@vulcho.com)

=head1 COPYRIGHT AND LICENSE

Copyright 2013 Красимир Беров (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).
You may copy, distribute and modify the software provided that 
modifications are open source. However, software that includes 
the license may release under a different license.

See http://opensource.org/licenses/lgpl-3.0.html for more information.

