Installation

== Koha Web Installer and Onboarding Tool ==
This is the wiki article for the installation process avaliable with the bug 17855 (https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=17855). 
== Summary of bug 17855 ==
This bug includes updates to the existing Koha web installer in addition to the creation of a new onboarding tool feature which makes the user create a library, patron category, and item type (if they did not install samples ones whilst going through the web installer). The onboarding tool also makes the user create a patron account (which the user will use to log into the Koha staff interface after finishing using the onboarding tool), and a circulation rule. 
== Web installer ==
=== What are the updates to the Koha web installer? ===
The web installer is the first thing to run when you start Koha for the first time. It creates the database and fills it mandatory and optional data before redirecting you to the onboarding tool where you will do further configuration. 
The major change to the web installer in bug 17855 is that two setup modes in the third step of the web installer have been implemented. 
*Basic setup- Giving the user little control over what sample data is inserted into the database. Recommended for new users of Koha.
*Advanced setup- Giving the user complete control over what data is inserted into the databas. Recommended for experienced Koha users.
=== Basic setup: ===
When the user chooses the basic setup (which is selected by default) then all the default data values in the setup page are displayed with a bulletpoint preventing the user from unselecting them. These data values are required for a fully functioning Koha instance. 
Only optional data values (which are not strictly necessary to run Koha as intended are displayed with an editable checkbox). 
Note: Included in the optional data values to be installed are sample libraries, patron categories, and item types. If you do not select these for installation then you will create them when you use the onboarding tool. 
=== Advanced setup: ===
When the user chooses the advanced setup then all the data values (both default AND optional) are displayed with an unticked checkbox. This allows the user to choose not to install data required to have a fully functioning koha instance, and so is only recommended for experienced Koha users who know what each of the data values do. For more information on the default data values please read: https://koha-community.org/manual/installation/html/web_installer_marc21_setup.html 
In bug 17855 once the user has finished the web installer they are redirected to the onboarding tool (with no authentication required in between). 
=== What are the benefits of these web installer updates? ===
The implementation of the basic and advanced setup modes is advantageous because it allows users to choose the level of control they want over what data is installed in their Koha instance.
To new users selecting the basic setup mode prevents them from accidentally unselecting default data values, they are not aware they need. In the currently available Koha, the web installer allows users to untick the mandatory data values which are actually necessary for a fully functioning Koha. If a new user does this it could cause issues in the future, therefore the basic setup prevents this from happening. 
Whilst the advanced setup mode is useful as it gives more experienced users the ability to choose whether or not to install any of the data values, thereby allowing them to easily implement their institutions conventions and rules to their Koha instance. 
== Onboarding tool feature ==
=== What is the Koha onboarding tool? ===
The Koha onboarding tool is a configuration tool to be run after the user has run through the Koha web installer. 
The onboarding tool is designed to allow the user to create a library, patron category, patron, item type and circulation rule. After the user has created these objects they can log into the Koha staff interface using the login credentials of the patron account they just created and get straight to work using Koha for their intended purpose. 
The Koha onboarding tool checks if the user installed sample libraries, patron categories, and item types during the Koha web installer. If the user did not install sample data for these objects then the onboarding tool displays a simplified form for the user to create these objects. Otherwise if the user did install the sample data for these objects, then the appropriate step(s) in the onboarding tool is skipped. 
The onboarding tool will always make the user create a patron (to be able to log into Koha with a staff account after finishing the onboarding tool), and create a circulation rule. 
All forms in the Koha onboarding tool (i.e. create a library, patron category, patron, item type and circulation rule forms) use simplified forms (as opposed to the more advanced, and detailed forms in the Koha administration interface). The purpose of using simplified forms to create these objects is to make the configuration process for Koha as easy and straightforward as possible for new users. Only those input fields which are mandatory are displayed in the Koha onboarding tool forms.
=== Why is the Koha onboarding tool useful? ===
Previously when a Koha user went straight from using the Koha web installer to the main page of Koha, they had to log in again. As they had not created a new patron account they had to log in using the Koha database administrator account. After logging in with this account the main page appeared with several warning messages informing the user they had logged in with the database administrator account and telling them they needed to create a patron account with superlibrarian privileges to be able to use Koha appropriately. 
However, to make a new patron the user may have also been required to create a library, and patron category (if they did not install the sample data for these objects in the web installer), and so the user would be led down a long and confusing path creating new objects before they could actually start using Koha as they had intended. 
The Koha onboarding tool sets up all features of Koha before the user logs into the main page, this prevents the new user from being faced with warning messages when the main page appears saving the user the time and frustration of having to configure Koha by creating libraries and other objects. 
Another benefit of the onboarding tool is it sets a baseline of what the user has set up for developers and support staff to be aware of when they are troubleshooting for the user. For example by implementing the onboarding tool the support staff can ask the user if they have used the onboarding tool and if the answer is 'yes' then that support staff member knows that the user must have a library, patron category, patron account (with superlibrarian privileges to use to log into the Koha staff interface), item type and a circulation rule. This narrows down the issues that the user is facing therefore saving time for everyone.