Project Structure
Back to Documentation main page
Project main structure
.
├── .circleci
│ └──config.yml # CircleCI Continuos Integration Tool configuration
│
├── config
│ ├── config.json # Sequelize connection configuration file
│ └── deploy.json # Auto-Deploy configuration file *
│
├── deploy
│ ├── production.deploy.js # Production env deployer
│ └── production.deploy.js # Test env deployer
│
├── dist # Compiled ES5 files
│
├── docs # Jerkill documentation files (.md)
│
├── log # Stores .log files
│
├── migrations # Store sequelize migration files
│
├── src # ES6 Source files
│
├── test # Test suite for REST APIs
│
├── testers # Test scripts for Workers
│
├── .babelrc # Babel compiler configuration
├── .editorconfig # set default IDE configuration across developers
├── .eslintignore # eslint ignore rules
├── .eslintrc # eslint configuration
├── .gitattributes # git related file
├── .gitignore # git related file
├── travis.yml # Travis Continuos Integration Tool configuration
├── gulpfile.babel.js # Gulp file - code automation
├── nodemon.json # nodemon configuration - dev server
├── package.json # package file
├── pm2.cluster.config.js # pm2 cluster config
├── pm2.dev.config.js # pm2 config for dev server
├── pm2.simple.config.js # pm2 fork config
├── README.md # main readme file
└── sequelize-meta.json # Sequelize migration data
Application Source structure
.
├── src # ES6 codebase
│ │
│ ├── lib # Framework library files
│ │ ├── api
│ │ │ ├── controllers # general HTTP REST controllers
│ │ │ └── swagger # general swagger specification files
│ │ │
│ │ ├── auth
│ │ │ ├── controllers # Auth related HTTP REST controllers
│ │ │ ├── passports # Passports - auth schemas
│ │ │ ├── services # Auth related services
│ │ │ └── swagger # swagger specification for Auth
│ │ │
│ │ ├── DataAccess
│ │ │ ├── CRUD.js # Core Service - CRUD class
│ │ │ ├── DataAPI.js # Data Proxy Class
│ │ │ ├── MongooseAPI.js # Mongoose built in methods
│ │ │ └── SequelizeAPI.js # Sequelize Built in methods
│ │ │
│ │ ├── express
│ │ │ └── index.js # Express.js middleware setup
│ │ │
│ │ ├── Job
│ │ │ ├── Job.js # Core Service - Job class
│ │ │ └── Service.js # Core Service - Service class
│ │ │
│ │ ├── models
│ │ │ ├── mongoose # Mongoose models
│ │ │ ├── sequelize # Sequelize models
│ │ │ ├── RecordDefaultProperties.js # Sequelize default record properties
│ │ │ └── DocumentDefaultProperties.js # Mongoose default document properties
│ │ │
│ │ ├── redis-jwt
│ │ │ └── index.js # Interface for Redis-JWT
│ │ │
│ │ ├── services
│ │ │ ├── DemoUser.js # DemoUser Mongoose service - EXAMPLE
│ │ │ ├── Example.js # Hello World - EXAMPLE
│ │ │ ├── Gmail.js # Gmail Custom service - EXAMPLE
│ │ │ ├── Human.js # Human Mongoose service - RC
│ │ │ ├── QuickBooksToken.js # QuickBooksToken Mongoose service - RC
│ │ │ └── User.js # User Mongoose service - RC
│ │ │
│ │ ├── swagger
│ │ │ ├── ui # API documentation UI
│ │ │ ├── config.js # Swagger API configuration
│ │ │ └── index.js # Swagger middleware for Express.js
│ │ │
│ │ ├── templates
│ │ │ └── email.html # handler bar template used on emails
│ │ │
│ │ ├── Application.js # Application Core class
│ │ ├── composer.js # RabbitEnvelop shortcut used by ./testers/ scripts
│ │ ├── ExpressServer.js # Express.js server Core Class
│ │ ├── MongoClient.js # Mongo Client Mongoose based Core Class
│ │ ├── RabbitClient.js # RabbitMQ Client amqp module based Core Class
│ │ ├── RabbitEnvelop.js # Message Composing Core Class
│ │ ├── RedisClient.js # Redis Client redis module based Core Class
│ │ ├── response.js # Standard REST response functions - Core Module
│ │ ├── RPCMapper.js # MAP incoming messages to a specific Data Entity service layer
│ │ ├── SequelizeClient.js # SQL Client Sequelize based Core Class
│ │ └── util.js # Helpers - Core Module
│ │
│ ├── config # App conf files
│ │ ├── default-0.json # instance 0 default node env config file
│ │ ├── default.js # General application configuration (index.js clone)
│ │ ├── gmail.js # gmail account configuration
│ │ ├── index.js # General application configuration
│ │ ├── mailgun.js # mailgun account configuration
│ │ ├── mq.js # Rabbitmq configuration
│ │ └── redis.js # Redis configuration
│ │
│ ├── app.js # Nodejs application entry. REST API Example.
│ ├── MsRESTAPI.js # Custom application class. REST API Example.
│ │
│ ├── worker-app.js # Nodejs application entry. Worker Example.
│ └── worker-MsWorker.js # Custom application class. Worker Example.
└── ...