We follow fork-pull workflow, to make changes to the codebbase. (more info here)
- bin: It contains the main file 'www' which starts node server
- config: All the configurable parameters and credentials
- data: json data
- logs: logs dumps here
- middlewares: All the middlewares defined here
- models: Sequelize models (database schema)
- modules: Independent modules used throughout the app are defined here
- public: All the static resources (js, css, images)
- routes: All the routes
- services: These act as middlemen between routes and database. All the database operations is made here.
- views: Contains HTML and .ejs files used for rendering to frontend
- using camelCase for naming variables, functions in javascript
- using camelCase for naming MySql tables, CSS IDs
- using hyp-hens for naming CSS classes
- using camelCase for naming files and folders
- using UPPERCASE for constants and global variables
- using PascalCase for naming Javascript classes and database models
- Line length max 80 characters for Javascript
- Line length max 120 characters for HTML
- Standard JS coding conventions- https://www.w3schools.com/js/js_conventions.asp
- If error in routes files is object (caused by sequelize) then it must be logged
- All the service controllers must be logged
- Error logs must start with text 'Error' followed by function name, file name and error detail.