General Overview of the Project
The project is divided into three directories:
appregrouping the backend of the solution.frontregrouping the frontend of the solution.testsregrouping the tests of the solution.
Backend
The directory is subdivised into:
app.js: the main entry point of the application.mappings: the ElasticSearch mappings of the solution.settings: the ElasticSearch settings for each mapping.config: the general config of the solution (production, development, test).initializations: all the API routes needed by the backend to work.logger.js: the logger of the solution (based on Winston).modules: the main logic of the backend.
Modules
The modules directory is sudivised into:
auth: responsible for checking the authentication of a user (will s/he be a 'real' one or an API key).exceptions: collection of all the exceptions that the program can throw.rate_limit: a small and easy-to-use rate limiter to avoid getting DDoS when using the APIs.utils: a set of utils.entities: all the data models required by the program (see Data model for more details).pipeline: the standardized pipeline of the program (see Pipeline for more details).
Frontend
The frontend of the solution is subdivised into:
common: the common utils, components shared by the front-office & the back-office.backoffice: the pages / components of the back-office.frontoffice: the pages / components of the front-office.
Common
Common has multiple directories:
api: everything related to backend discussion: routes used to call the backend, fetching functions, and messages used for mutations in Vuex.components: every reusable Vue.js components used throughout the application.mixins: every Vue.js mixins used throughout the application.store: the Vuex's store.style: CSS templates of the application (back-office & front-office).utils: couples of utility functions to help you build things faster.
Front-office & Back-office folders
components: every reusable Vue.js components only used for the front-office/back-office (it is the case for the header, navbar, footer of the application).fonts: custom fonts that are copied to the public folder to be served and used (for custom website based on customers' graphic recommendations).imgs: pictures, logos, ... used in the front-office/back-office.pages: pages used in the front-office (deposit, publication view, and so on).
Manual
Reference
Source
