# Créer une nouvelle application

Une fois que Bench est installé, vous apercevrez deux répertoires, `apps` and `sites`. Toutes les applications seront 
installées dans `apps`.

Pour créer une nouvelle application, allez dans votre répertoire et lancer la commande, `bench new-app {app_name}` et 
remplissez les informations à propos de votre application. Cela va créer un template d'application pour vous.

	$ bench new-app library_management
	App Title (defaut: Lib Mgt): Library 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

### Structure d'une application

L'application sera créée dans un répertoire appelé `library_management` et aura la structure suivante:

	.
	├── 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` configuration de l'applicationfolder contains application configuration info
1. `desktop.py` est l'endroit ou les icones peuvent être ajoutées au bureau
1. `hooks.py` contient les définitions de la facon dont l'intégration avec l'environnement et les autres applications est faite.
1. `library_management` (interne) est un **module** bootstrappé. Dans Frappe, un **module** est l'endroit ou sont les controlleurs et les modeles.
1. `modules.txt` contient la liste des **modules** dans l'application. Quand vous créez un nouveau module, c'est obligatoire de l'ajouter dans ce fichier.
1. `patches.txt` contient les patchs de migration. Ce sont des références Python utilisant la notation par point.
1. `templates` est le repertoire qui contient les templates des vues. Les templates pour **Login** et autres pages par défaut sont déjà contenus dans Frappe.
1. `generators` est l'endroit ou sont stockés les templates des modèles. Chaque instance du modèle a une route web comme par exemple les **articles de blog** ou chaque article a une adresse unique. Dans Frappe, Jinj2 est utilisé pour les templates.
1. `pages` contient les routes uniques pour les templates. Par exemple "/blog" ou "/article"

{suite}
