- https://mangelgl.github.io/devmaga-api/
- Postman: https://documenter.getpostman.com/view/23289394/2sAXjDcuG7
- Rename the file
env.templateto.envand change environment variables. - Install dependencies
- Run the Application
npm iOnce dependencies have installed, run the following command:
npm run devTo fill the database with data, run the following command:
node seeder --importYou can use the flag -i too.
To destroy the data, run the following command:
node seeder --deleteYou can use the flag -d too.
- Initial Express setup
- Using Express Routes
- Creating Controller Methods to Routes
- Intro to Middlewares
- Connecting to Mongo Atlas Database & Paintint Colors on console logs
- Creating first Model
- Create Bootcamp - POST
- Fetching Bootcamps - GET
- Updating & Deleting Bootcamps - PUT & DELETE
- Error handling
- Async/Await Middleware
- Slugify the name for url for better SEO
- GeoJSON
- Database Seeders
- Get Bootcamps By Radius - GET
- Advanced Filtering
- Select, Sort & Pagination
- Course Model & Seeder
- Course Routes & Controller
- Populate, Virtuals & Cascade Delete
- Add, Update & Delete Course - POST PUT PATCH
- Aggregate - Calculating Average Course Cost
- File Uploads
- Advanced Results (Select, Pagination, Sorting) in Middleware
- User Model & Register & Encryption Password
- JWT
- USer Login
- Sending JWT Token to Browser Cookies
- Protect Routes with Auth Middleware
- Role Authorization
- Bootcamp & User Relationship
- Bootcamp & Courses Ownership
- Reset password Feature
- Update User Details
- Users (Admin) CRUD Feature
- Parameterized environment variables
- Review Model & Controller
- Logout to Clear Token Cookie
- Prevent NoSQL Injection & Sanitize Data
- XSS Protection & Security Headers
- Rate limiting, HPP & CORS
- Postman Documentation & Docgen
- express - https://www.npmjs.com/package/express
- dotenv - https://www.npmjs.com/package/dotenv
- morgan - https://www.npmjs.com/package/morgan
- mongoose - https://www.npmjs.com/package/mongoose
- colors - https://www.npmjs.com/package/colors
- slugify - https://www.npmjs.com/package/slugify
- node-geocoder - https://www.npmjs.com/package/node-geocoder
- fileupload - https://www.npmjs.com/package/express-fileupload
- bcryptjs - https://www.npmjs.com/package/bcryptjs
- jsonwebtoken - https://www.npmjs.com/package/jsonwebtoken
- cookie-parser - https://www.npmjs.com/package/cookie-parser
- nodemailer - https://www.npmjs.com/package/nodemailer
- express-mongo-sanitize - https://www.npmjs.com/package/express-mongo-sanitize
- helmet - https://helmetjs.github.io/
- xss-clean - https://www.npmjs.com/package/xss-clean
- express-rate-limit - https://www.npmjs.com/package/express-rate-limit
- hpp - https://www.npmjs.com/package/hpp
- cors - https://www.npmjs.com/package/cors
- docgen - https://github.com/thedevsaddam/docgen
- Async/Await Middlewares in Express - https://www.acuriousanimal.com/blog/20180315/express-async-middleware
- Mongoose Radius Filtering - https://www.mongodb.com/docs/manual/reference/operator/query/centerSphere/
- Mongoose Quantity Filtering - https://www.mongodb.com/docs/manual/reference/operator/query/gt/
- Mongoose Select Fields - https://mongoosejs.com/docs/queries
- JSON Web Token Debugger - https://jwt.io
- Fake SMTP Server for Mails - https://mailtrap.io/
- Hacking NodeJS and MongoDB (NoSQL Injection) - https://blog.websecurify.com/2014/08/hacking-nodejs-and-mongodb