What you'll learn:
- Build & deploy a real-time messaging web application
- Implement JWT authentication on the backend & UI
- Use Material UI to develop a consistent & responsive UI
- Develop a GraphQL API for CRUD functionality
- Save data using MongoDB & the Abstract Repository pattern
- Execute automatic DB migrations
- Use Apollo Client to manage UI state & cache application data
- Use GraphQL WebSocket Subscriptions to publish & consume messages in real time
- Custom UI routing with React Router
- Use code generation tools to automatically generate types from GraphQL schema
- Implement server-side pagination to implement infinite scrolling
- Use MongoDB aggregation to perform single operation lookups & DB calls
- File upload to Amazon S3
- Production deployment to AWS all on free-tier
- Continuous Delivery & CI/CD
- Connect a Pub/Sub app to Redis to allow for distributed messages & horizontal scaling
- Connect a app to a custom domain & secure HTTPS traffic
In this course, we go beyond the documentation &small simple starter apps to build a real-world full-stack chatting application. This application is built from the ground up to be scaleable & production-grade. The goal of the course is for you to be comfortable developing full-stack web apps so you can develop your own afterward.
We use a NestJS backend, a popular Node.js library that allows us to quickly create clean-code HTTP APIs. Our CRUD functionality will be served by a GraphQLAPI that persists data using a MongoDBdatabase. We'll use this same GraphQLAPI to create our messaging subscription which allows for WebSocket connection to our UIto facilitate messaging. Of course, everything will be secured with industry-standard JWTauth.
On the UIwe will create a React App using the beautiful Material UIto easily create a responsive UI and interact with our backend. We'll choose Apollo Client for state management so we can easily interact with our GraphQLAPI&cache data.
Finally, all of this will be deployed onto AWSElastic Beanstalk &Amplify. Backed by a continuous delivery CI/CD pipeline, whenever we push code our latest changes will get built &deployed to our environment of choice.
By the end of the project, you will have learned everything you need to get started in building &deploying your very own production-grade web apps!