Guide to build a real "Posts blog" (text, image) application with Angular for the frontend (UI with Angular Material), with Node.js, Express.js, Mongoose for the backend, with MongoDB Atlas for the database in the cloud.
- Create a modern and reactive Web app with Angular that offers speed, ease of development, asynchronous operations and scalability
- Learn how to connect the SPA (Single Page Application) frontend to a NodeJS with Express, RxJS and MongoDB in the backend
- Hands-on approach, structured around a real application, the main concepts are explained and covered :
- Set up a NodeJS + Express + MongoDB + Angular application with the help of Angular CLI
- Build reusable Components, Modules in Angular and create a better User Experience (UX) with Angular Material
- Connect Angular app through HttpClient service to a secure REST API in NodeJS server (endpoints)
- Add advanced features like pagination, filters (text search, user's posts) and file upload (image)
- Make the pplication secure by implementing user signup, login, authentication and authorization with JWT
- Incorporate many different Routes, Observables, Events, Auth Guard, ... Errors Handling.
- Frontent (Angular UI) deployed in a bucket on AWS S3
- Backend (NodeJs) deployed on Heroku PaaS (alternative to AWS Elastic Beanstalk)
- Database (MongoDB) deployed on [MongoDB Atlas]'https://www.mongodb.com/atlas/database)
Link to : http://posts-blog-ui-pl1.s3-website.eu-central-1.amazonaws.com/
This project is generated with Angular CLI version 13+ , express 4+ , mongoose 6+ , mongoose-unique-validator 3+ , multer 1.4+ and other dependencies like rxjs 6+ , typescript 4.5+bcrypt 5+ , body-parser 1.19+ , jsonwebtoken 8+ , nodemon 2+ , ...
Environment variables:
- "MONGO_ATLAS_DB_NAME" : "..." ,
- "MONGO_ATLAS_CLUSTER_URI" : "..." ,
- "MONGO_ATLAS_CREDENTIALS" : "..." ,
- "ACA_ORIGIN" : "*" ,
- "ACA_HEADERS" : "Origin, X-Requested-With, Content-Type, Accept, Authorization" ,
- "ACA_METHODS" : "GET, PUT, POST, DELETE" ,
- "JWT_HS256_KEY" : "..." ,
- "JWT_ALGO" : "HS256" ,
- "JWT_EXP_DURATION_SEC" : 3600 ,
- "PORT" : 3000
Ref. https://www.udemy.com/course/angular-2-and-nodejs-the-practical-guide/