# Make a New App After the bench is installed, there are two main folders, `apps` and `sites`. All the applications will be installed in apps. To make a new application, go to your bench folder and run, `bench new-app {app_name}` and fill in details about the application. This will create a boilerplate application for your. $ bench new-app library_management App Title (defaut: Lib Mgt): Liblary Management App Description: App for managing Articles, Members, Memberships and Transactions for Libraries App Publisher: Frappe App Email: info@frappe.io App Icon (default 'octicon octicon-file-directory'): octicon octicon-book App Color (default 'grey'): #589494 App License (default 'MIT'): GNU General Public License ### App Structure The application will be created in a folder called `library_management` and will have the following structure: . ├── MANIFEST.in ├── README.md ├── library_management │   ├── __init__.py │   ├── config │   │   ├── __init__.py │   │   └── desktop.py │   ├── hooks.py │   ├── library_management │   │   └── __init__.py │   ├── modules.txt │   ├── patches.txt │   └── templates │   ├── __init__.py │   ├── generators │   │   └── __init__.py │   ├── pages │   │   └── __init__.py │   └── statics ├── license.txt ├── requirements.txt └── setup.py 1. `config` folder contains application configuration info 1. `desktop.py` is where desktop icons can be added to the Desk 1. `hooks.py` is where integrations with the environment and other applications is mentioned. 1. `library_management` (inner) is a **module** that is bootstrapped. In Frappe, a **module** is where model and controller files reside. 1. `modules.txt` contains list of **modules** in the app. When you create a new module, it is required that you update it in this file. 1. `patches.txt` is where migration patches are written. They are python module references using the dot notation. 1. `templates` is the folder where web view templates are maintained. Templates for **Login** and other standard pages are bootstrapped in frappe. 1. `generators` are where templates for models are maintained, where each model instance has a separte web route, for example a **Blog Post** where each post has its unique web url. In Frappe, the templating engine used is Jinja2 1. `pages` is where single route templates are maintained. For example for a "/blog" type of page. {next}