# Meteor et BlazeJS

Au moment de la rédaction de cette documentation, ce stack est notre premier choix pour une application ou nous nous occupons autant du front-end que du back-end. Il nous permet de faire du JavaScript sur le client et sur le serveur. Nous avons notre propre boilerplate pour ce stack : le meteor-boilerplate (opens new window).

# Références

La structure de nos projets sont basés sur le modèle de The Meteor Chef :

La principale différence avec notre structure et celle-ci est que nous utilisons BlazeJS au lieu de React. Pour en lire plus sur BlazeJS, il y a une documentation officielle (opens new window) disponible.

Voici d'autres ressources utiles pour se familiariser avec l'environnement :

Dans cette documentation, nous allons nous pencher sur les autres particularités du meteor-boilerplate de 2 Associés.

# Structure des composantes

On peut trouver les composantes de UI de l'application dans le dossier /imports/ui/. Nous plaçons le template HTML, les styles SASS et la logique JS d'une composante au même endroit. Par exemple, la composante todo.js se trouverait avec todo.html et _todo.scss dans /imports/ui/components/.

# Routage

Nous utilisons FlowRouter (opens new window) pour gérer les routes de notre application. Il est configuré dans le fichier /imports/startup/client/routes.js. C'est là que nous ajoutons les URL de nos pages.

Nous utilisons aussi Helpers for FlowRouter (opens new window) qui nous donne accès à des helpers de routage dans nos templates.

Nous avons notre propre mécanisme de protection de route qu'on peut trouver dans /imports/ui/components/ui-controller.js. Ce dernier est basé sur un modèle présenté par Adrian Lanning (opens new window).

# Localisation

Nous utilisons tap-i18n (opens new window) pour la traduction des strings de notre application.

# Schéma de base de données

Nous utilisons Simple Schema (opens new window) pour nous aider à organiser et valider les données de notre application. Nous l'utilisons principalement pour avoir un plan clair des documents des collections MongoDB.

# Rôles

Nous utilisons meteor-roles (opens new window) pour gérer les autorisations basées sur des rôles.

# Fixtures

Dans le fichier /imports/startup/server/fixtures.js, nous ajoutons généralement un script pour peupler la base de données avec de fausses données durant le développement.