Turkçe (Hazırlanıyor...) - English
Be aware of that is incomplete documentation!
- Introduction
- Features
- Roadmap
- Project Structure
- Dependencies
- Installation
- MongoDB & Mongoose Notes
- Contributes & Donates
Comprehensive Node.js starter kit powered by MVC design and bunch of notes!
- ...
- ..
- ..
- Install dependencies, configure
eslint.js
etc. - Complete
express.js
configurations. - Install
swagger-ui-express
. - Complete
mongoose.js
configurations. - Make email auth and user schemas with
passport-jwt
passport-local
. - Make google auth with
passport-google-oauth2
- Extend with swagger.
- Implement test environment.
- And many more..
This will be replace.
- Helmet (Security Middleware)
- Swagger (API Documentation)
- Express.js (a back end web application framework for Node.js)
- Mongoose (creates a connection between MongoDB and Node.js)
- dotenv (to integrate .env files)
- HTTP
- Chalk (String coloring for console)
- ESLint with Airbnb style
- Prettier
- Morgan (Logger for requests)
- Passport.js (for Authentication&Authorization)
- Passport local
- Passport Google Oauth
Clone repository
$ git clone https://github.com/femresirvan/node.js-starter-template.git
$ cd node.js-starter-template
Install dependencies
$ npm i
Configure .env
➥ ~./env
PORT=PORT_NUMBER
NODE_ENV='dev' #Not prepared yet.
MONGODB_URI="NOT COMPLETED"
GOOGLE_ID="NOT COMPLETED"
GOOGLE_SECRET="NOT COMPLETED"
MongoDB has very flexible structure so database models can be updated during the development phase.
- Specify key points and entities.
- Make ER Diagram to specify relationship between entities.
- Choose a specific design pattern to create database.
- Keep update the database schemas on issues while developing.
- Create spesific indexes
- Use complex aggregations
- Approximation
- Attribute
- Bucket
- Computed
- Document Versioning
- Extended Reference
- Outlier
- Pre-allocation
- Polymorphic
- Schema Versioning
- Subset
- Tree
MongoDB Design Patterns Documentation
Mongodb Aggregation Framework Book
😊 Give me any advice by sending email!
Email: [email protected]