0% found this document useful (0 votes)
2 views

Next Level Web Development Topics [Draft]

The document outlines a comprehensive curriculum covering TypeScript, Mongoose, Redux, testing methodologies, GraphQL, database management, Next.js, and cloud deployment with AWS and DigitalOcean. It includes practical projects for building production-grade applications using these technologies, emphasizing best practices and advanced techniques. Additionally, it touches on essential topics such as testing frameworks, API development, and deployment strategies.

Uploaded by

shuvom390
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Next Level Web Development Topics [Draft]

The document outlines a comprehensive curriculum covering TypeScript, Mongoose, Redux, testing methodologies, GraphQL, database management, Next.js, and cloud deployment with AWS and DigitalOcean. It includes practical projects for building production-grade applications using these technologies, emphasizing best practices and advanced techniques. Additionally, it touches on essential topics such as testing frameworks, API development, and deployment strategies.

Uploaded by

shuvom390
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Typescript:

● Introduction to TypeScript
● Setting up a TypeScript Project
● TypeScript Variables and Data Types
● Type Annotations and Inference
● Functions in TypeScript
● Type Guards/ Type Narrowing
● Arrays and Tuples
● Classes and Interfaces
● Modules and Namespace
● Generics in TypeScript
● Generics with Interface
● Extending Interface Using Generics
● Advanced Type Inference and Union Types
● Conditional Types in TypeScript
● Mapped Types in TypeScript
● Type Guards and Type Assertions
● Intersection Types and Discriminated Unions
● Type Aliases and Utility Types
● Keyof and Lookup Types

Mongoose:
● Introduction to Mongoose and MongoDB
● Creating a Mongoose schema
● Defining Mongoose models for CRUD operations
● Data validation with Mongoose
● Understanding Mongoose middleware
● Querying with Mongoose, including aggregation, sorting, filtering, and pagination
● Populating referenced documents with Mongoose
● Integrating Mongoose with Express for building RESTful APIs
● Building RESTful APIs with Mongoose and Express
● Handling relationships between data models in Mongoose and Express
● Advanced querying with Mongoose, including aggregate pipelines, and
geospatial queries
● Using Mongoose virtuals
● Handling concurrency with Mongoose
● Optimizing performance with indexing
● Introduction to Mongoose aggregation
● Aggregation pipeline operators
● Aggregating data with Mongoose

Build Backend of a Production Grade Project Using Typescript , Express ,


Mongoose and Rest API

Redux
● React's state and reactivity.
● React data flow and its limitations.
● Global state management.
● Redux's inner working.
● Redux Store, Action and Dispatch.
● React Redux and Redux Thunk.
● Redux Toolkit.
● RTK Query.
● Action types and Action Creators.
● Redux DevTool.
● Redux middlewares and custom middleware.
● CRUD operation using Thunk.
● Handling async task using createAsync Thunk in Reduxt Toolkit.
● Handling data mutation and CRUD operation using RTK Query.
● Caching
● Revalidating
● Comprehensive Guide to Testing JavaScript Applications using Jest, Vitest, RTL,
and Cypress

Building the Frontend of a Production-Grade Project Using React, Redux, and


TypeScript
Testing

➔ Getting Started with Testing

● Overview of why testing is important


● Different types of tests (unit, integration, end-to-end, etc.)
● Overview of popular testing frameworks and libraries
● Installing and setting up testing frameworks (e.g. Vitest, Jest)
● Introduction to TDD
● Jest vs Vitest
● Configuring testing environment
● Introduction to unit testing
● Writing your first unit test with Vitest
● AAA(Arrange, Act, Sort) Pattern

➔ Unit & Integration Tests

● Best practices for writing and organizing tests


● Test with multiple assertions
● Writing test for thrown errors and error messages
● Introduction to integration testing
● Writing integration tests

➔ Advanced Testing

● Testing Asynchronous Code With or without callback


● Getting started with testing hooks
● Using Testing Hooks (beforeEach, beforeAll, afterEach, afterAll)
● Concurrency and concurrent tests
● Introducing Spies & Mocks
● Working with Spies
● Working with Mocks
● Mocking Front-end Libraries
● Test-specific Mocking Functionality
● Introduction to Dom Testing
● Testing Dom Functionality

➔ React Testing Library and Cypress

● Getting Started with React Testing Library


● Introduction to User Event in React Testing
● Testing React Components with react-testing-library
● Testing React Hooks
● Mocking API Requests in React Testing (MSW)
● How to Test Async Code with React Testing Library
● Advanced React Testing Techniques with react-testing-library
● Testing Redux with react-testing-library
● Debugging Tests and Testing Playground
● Getting Started with End-to-End Testing in React Apps with Cypress
● Setting up Cypress for E2E Testing in a React App
● Writing Your First Cypress Test for a React App
● How to Test User Interactions in a React App with Cypress

➔ Api Testing

● Getting Started with Testing Express APIs


● Writing Unit Tests for Express APIs with Jest
● Integration Testing Express APIs with Supertest
● Writing Test Suites for CRUD Operations in Express APIs
● Mocking Dependencies in Express API Tests
● Advanced Testing Techniques for Express APIs with Jest and Supertest
● Tips and Tricks for Testing Express APIs

GraphQL
● GraphQL Schema
● GraphQL Supported types
● Resolvers
● Queries
● Relating Data ( one to many, many to one, many to many and one to one)
● The context param
● Filtering and Input type
● Mutations
● Error Handling
● Authentication and authorization
● Data Loaders and The N+1 Problem
● Connecting To Client

Convert The Project Using GraphQL with Best Practices and Implementation
Strategies

Database Management System:

● Introduction to Database Management Systems (DBMS) and Different


Database Models
● Database Design: Relational Diagrams and Modeling
● Relational Database Concepts: Normalization, Joins, and Indexing
● SQL Basics: Syntax, Data Types, and Querying with phpMyAdmin
● Postgres: Installation, Configuration, Basic to Advanced Features
● Integrating Postgres with Node API: Using Raw Driver and Best Practices
● Query Optimization: Techniques and Tools for Improving Database
Performance
● Production-Grade ORM with TypeScript: Using Prisma for Type-Safe
Database Access

Final Project: Implementing a Database-Driven Backend Web Application Using


Node.js, Postgres, and Prisma

NextJS:

● Let’s start our journey with Next.js


● Why Next.js? The Competitive Edge of Next.js over React.js
● Exploring the World of Next.js Project Creation and its Folder Structure
● Clear Concept of Pre-Rendering and Client-Side Rendering
● Key Features of Next.js
● Routing System
○ File-Based Routing
○ Nested Routing & Catch All Routes
○ Dynamic Routes
○ Shallow Routing
● Layout
○ Basic Layout
○ Nested Layout
● Navigating Using Link Component and Programmatically
● Custom 404 Error Page
● Difference Between Components and Pages
● Image Component
● Using Head Component for Better SEO
● Adding CSS Component Library
● Data Fetching
○ Data Fetching using getStaticProps()
○ How getStaticProps() Works Under the Hood
○ Dynamic Data Fetching using getStaticPaths()
○ How getStaticPaths() Works Under the Hood
○ Concept of Incremental Static Regeneration (ISR)
○ Data fetching using getServerSideProps()
○ How getServerSideProps() Works Under the Hood
○ Client-Side Data Fetching using React Query
● Basic Idea on API Routes
● Use of ENV
● Authentication
○ Introduction of NextAuth
○ Implement Google Authentication System
○ Get Logged-In User from useSession
○ Implement GitHub Authentication System
○ Protect a Route from Unauthorized Users Using Middleware
○ Create a Login Form for Email Password Authentication
○ Implement Email Password-Based Authentication
○ Protect Routes using Session-Based Authentication
● Deployment
○ Build and Deploy Next.js Project in Vercel

Final Project: Implementing a Frontend Application Using NextJS

AWS & DigitalOcean, Docker, NGINX, and CI/CD

● Linux Command Line Interface (CLI) Fundamentals


● Linux Filesystem Essentials
● TCP/IP Protocol and Basic Networking Concepts
● Nginx Web Server Configuration and Administration
● Load Balancing using Niginix
● Docker Containerization and Deployment
● Continuous Integration/Continuous Deployment (CI/CD) with GitHub Actions
● Fullstack Deployment on DigitalOcean/Any VPS
● AWS
○ AWS Overview: Introduction to AWS, Console and Dashboard Navigation
○ AWS Identity and Access Management (IAM): User and Role
Management, Policies and Permissions
○ AWS S3: Object Storage Essentials and Hosting a Static Website,
Uploading Files
○ AWS EC2 and Nginx: Hosting Basic Website and Backend on EC2
Instances
○ SSL on Domain: Setting up SSL Certificates and Encryption on AWS
Route 53
○ Application Load Balancing
○ AWS CloudFront: Content Delivery Network (CDN) Configuration and
Management

Bonus: React Native

You might also like