# 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.