jonas's theme: oceanic next
-
cmd de mongod.exe yazarak mongodb server'ını başlatırız
-
cmd de mongosh yazarak mongo shell'i başlatırız
-
postman document link https://documenter.getpostman.com/view/31964434/2s9YypF3cW
- using core modules
- reading and writing files
- blocking and non-blocking codes
- reading and writing files asynchronously
- creating a simple server
- routing
- building a simple API
- building and filling HTML templates
- parsing URLs
- using own modules
- npm
- using 3rd party modules
- how the web workd
- frontend vs backend web development
- node, v8 engine, libuv
- thread pool and event loop
- event driven architecture
- streams
- how require works
- callbacks and promises
- async/await
- express, postman
- basic routing
- APIs and RESTful APIs
- handling GET, POST, PATCH, DELETE requests
- middleware
- Routes and Mounting routers
- file structure
- param middleware and chainig middlewares
- serving static files
- env variables and eslint
- mongodb installation
- creating local DB and CRUD operation with mongosh
- using compass app
- hosted DB with atlas and connect to hosted DB
- connect db with express app
- mongoose, schema, model
- MVC architecture (model, view, controller)
- modelling tours and importing data from json to db
- CRUD operations
- filtering and advence filtering
- sorting
- limiting fields
- pagination
- aliasing
- aggregation pipeline (matching, grouping, unwinding, projecting)
- virtual properties
- document middleware
- query middleware
- aggregation middleware
- data validation
- debugging nodejs with ndb
- handling unhandled routes
- global error middleware and better errors
- catching error with async functions
- adding 404 not found errors
- development and production errors
- handling invalid database IDs
- handling duplicate database fields
- handling mongoose validation errors
- unhandled rejections and uncaught exceptions
- modelling users
- creating new users
- managing passwords and JWT
- signup users
- logging users
- protecting routes with token
- advenced postman setup
- authorization: user roles and permissions
- password reset functionality, reset token
- sending emails with nodemailer
- setting new password
- updating current user password
- deleting user
- security best practises
- sending JWT via cookies
- rate limiting
- security http headers
- data sanitization
- preventing parameter pollution
- mongodb data moddeling
- designing our data model
- modelling locations
- modelling tour guides: embedding
- modelling tour guides: child referencing
- populating tour guides
- modelling reviews: parent referencing
- creating, getting and populating reviews
- virtual populate
- implementing simple nested routes
- nested routes with express
- nested GET endpoint
- building handler factory functions: CRUD
- adding /me endpoint
- adding missing authentication and authorization
- improving read performance with indexes
- calculating average ratings
- preventing duplicate reviews
- geospatial queries: finding tours within radius
- geospatial aggregation: calculating distances
- creating API documentation using Postman
- setting up Pug in express
- creating base template
- including files into pug templates
- building the tour overviews
- building the tour page
- including map with Mapbox(I couldn't because mapbox is not free anymore)
- building login screen
- logging in users with our API
- logging out users(couldn't logged out users) DONE!!
- rendering error pages
- building user acc page
- updating user data
- updating user data with our API
- updating user password with our API
- image uploads using multer: users
- configuring multer
- saving image name to db
- resizing images
- adding image uploads to form
- uploading multiple images
- processing multiple images
- building complex email handler
- email templates: welcome emails
- sending password reset email
- using sendgrid for real emails (I couldn't use SendGrid, tried Brevo and again couldn't)
- credit card payment with Stripe
- integrating stripe into the Backend
- integrating stripe into the Frontend
- modelling the books
- creating new bookings on checkout session
- rendering user's booked tour
- finishing the booking API
- preparing app for deployment
- stripe webhooks
- final thoughts, app ideas
npm run start | npm run watch:js
Genel olarak kursu beğendim. Jonas abinin anlatım tarzı hoşuma gidiyor. Dünden daha iyiyim, yeni şeyler öğrendim. Kursun 3-4 yıl öncesi yapılması bazı durumlarda hoş olmadı. Heyecanla kod yazarken bir anda kendimi dokümantasyon okumak zorunda buldum. Ek olarak Jonas abinin kullandığı bazı uygulamalar(Mapbox, Sendgrid, Stripe, Hostinger) free olarak kullanılmıyor. Alternatif uygulamaları kendim bulup uygulamak zorunda kaldım ve bu durum bir hayli canımı sıktı. Sonuç olarak bu kurstan kendime bir şeyler kattığımı düşünüyorum. Kurs güncel olsaydı ve gereksiz yere dokümantasyonla zaman kaybetmeseydim daha güzel olurdu. Puanım 3.5/5
- quiz app
- forum app(like reddit)
- restaurant management
- social network app(like facebook, instagram)