Khóa học Fullstack NodeJS với Encore

Khóa học lập trình Fullstack với NodeJS/Encore và React từ cơ bản đến nâng cao, tập trung vào microservices và cloud native development. Phù hợp cho người muốn làm chủ công nghệ backend hiện đại.

Tại sao chọn khóa học
  • Chương trình cập nhật theo xu hướng công nghệ mới nhất
  • Tập trung vào thực hành với các dự án thực tế
  • Giảng viên có nhiều năm kinh nghiệm về microservices
  • Hỗ trợ học viên 24/7 qua group chat riêng
  • Cung cấp tài liệu học tập đầy đủ bằng tiếng Việt
  • Chứng chỉ hoàn thành khóa học có giá trị
Mục tiêu khóa học
  • Nắm vững kiến thức về phát triển frontend với React và TypeScript
  • Thành thạo backend microservices với Encore và các công cụ DevOps
  • Hiểu và áp dụng được cloud native development và các best practices
  • Có khả năng tự xây dựng và triển khai ứng dụng fullstack hoàn chỉnh
Kết quả mong đợi
  • Thành thạo lập trình frontend với React và TypeScript
  • Làm chủ backend microservices với Encore
  • Triển khai được ứng dụng lên AWS/GCP với CI/CD tự động
  • Xây dựng được các service có khả năng mở rộng cao
  • Có portfolio với các dự án thực tế để xin việc
Đối tượng hướng đến
  • Người muốn học fullstack development hiện đại
  • Backend developers muốn mở rộng sang frontend
  • Frontend developers muốn học thêm về microservices
  • Developers muốn cập nhật công nghệ mới

Nội dung chương trình học

Phần 1: Nền tảng Web Development
Bài 1: HTML5 Cơ bản và Nâng cao

Cấu trúc cơ bản của trang HTML5

Các thẻ HTML5 semantic và cách sử dụng

Form và validation trong HTML5

Các thuộc tính HTML5 mới

Bài tập thực hành: Xây dựng layout chuẩn HTML5 (15 bài tập)

Bài 2: CSS3 và Responsive Design

CSS Selectors và độ ưu tiên

Flexbox layout chi tiết

Grid system và cách triển khai

Media queries và responsive design

CSS Variables và Custom Properties

Bài tập thực hành: Responsive layout (20 bài tập)

Bài 3: JavaScript Cơ bản

Biến, kiểu dữ liệu và phạm vi

Cấu trúc điều khiển và vòng lặp

Functions và arrow functions

DOM manipulation

Event handling

Bài tập thực hành: JavaScript cơ bản (25 bài tập)

Bài 4: JavaScript ES6+ và TypeScript

ES6+ features: destructuring, spread operator, modules

Promises và async/await

TypeScript types và interfaces

Generics và decorators

Error handling patterns

Bài tập thực hành: TypeScript (20 bài tập)

Bài 5: TypeScript Nâng cao

Advanced types và type manipulation

Utility types trong TypeScript

Decorators và metadata

Module system và namespaces

Testing TypeScript code

Bài tập thực hành: TypeScript nâng cao (15 bài tập)

Phần 2: Lập trình Frontend với React
Bài 6: React Fundamentals

JSX và React Elements

Components và Props

State và useState hook

Lifecycle và useEffect

Event handling trong React

Bài tập thực hành: React cơ bản (20 bài tập)

Bài 7: React Hooks

useContext và Context API

useReducer cho state phức tạp

useMemo và useCallback

useRef và DOM manipulation

Custom hooks development

Bài tập thực hành: React hooks (15 bài tập)

Bài 8: Forms và Validation

Controlled vs Uncontrolled components

Form validation với Formik

Yup schema validation

Custom validation rules

Error handling và display

Bài tập thực hành: Forms (10 bài tập)

Bài 9: Redux Toolkit

Redux core concepts

Cài đặt và cấu hình Redux Toolkit

createSlice và reducers

Async thunks

Redux DevTools

Bài tập thực hành: Redux (15 bài tập)

Bài 10: RTK Query

Setup RTK Query APIs

Queries và mutations

Cache management

Optimistic updates

Error handling

Bài tập thực hành: RTK Query (10 bài tập)

Bài 11: React Query

React Query setup

Queries và mutations

Cache invalidation

Infinite queries

Prefetching data

Bài tập thực hành: React Query (10 bài tập)

Bài 12: Next.js Routing

File-based routing

Dynamic routes

Catch-all routes

Middleware

Navigation và linking

Bài tập thực hành: Next.js routing (10 bài tập)

Bài 13: Next.js Data Fetching

getStaticProps và getStaticPaths

getServerSideProps

Incremental Static Regeneration

API Routes

SWR cho client-side fetching

Bài tập thực hành: Next.js data fetching (10 bài tập)

Bài 14: Next.js Deployment

Build optimization

Environment variables

Static exports

Vercel deployment

Custom server setup

Bài tập thực hành: Deployment (5 bài tập)

Bài 15: Testing React Apps

Jest setup cho React

React Testing Library

Component testing

Integration tests

E2E testing với Cypress

Bài tập thực hành: Testing (10 bài tập)

Phần 3: Backend Development với Node.js và Express
Bài 16: Kiến trúc Backend và RESTful API

Giới thiệu về kiến trúc Backend và vai trò của Node.js

Nguyên lý hoạt động của RESTful API

HTTP Methods: GET, POST, PUT, DELETE

Status codes và best practices

Thiết kế API endpoints chuẩn REST

Bài tập thực hành: Thiết kế RESTful API (10 bài tập)

Bài 17: Express.js Framework

Cài đặt và cấu hình Express.js

Middleware và cách sử dụng

Routing trong Express

Error handling

Static files và template engines

Bài tập thực hành: Express.js cơ bản (15 bài tập)

Bài 18: MongoDB và Mongoose

Cài đặt và kết nối MongoDB

Schema và Model trong Mongoose

CRUD Operations với Mongoose

Relationships và Population

Validation và Middleware

Bài tập thực hành: MongoDB & Mongoose (20 bài tập)

Bài 19: Authentication và Authorization

JWT (JSON Web Tokens)

Passport.js và các chiến lược xác thực

OAuth 2.0 và Social Login

Role-based Access Control (RBAC)

Security best practices

Bài tập thực hành: Authentication (15 bài tập)

Bài 20: API Security và Validation

Input validation với Joi/Yup

XSS và CSRF protection

Rate limiting và Brute force protection

CORS configuration

Security headers

Bài tập thực hành: API Security (10 bài tập)

Bài 21: File Upload và Image Processing

Xử lý file upload với Multer

Image processing với Sharp

Cloud storage (AWS S3/Cloudinary)

File validation và security

Stream processing

Bài tập thực hành: File handling (10 bài tập)

Bài 22: Email Service và Task Queue

Nodemailer setup và configuration

Email templates với Handlebars

Task queues với Bull

Background jobs

Scheduled tasks với node-cron

Bài tập thực hành: Email và Queue (10 bài tập)

Bài 23: Caching và Performance

Redis caching strategy

Memory caching với Node-cache

Database query optimization

Response compression

Performance monitoring

Bài tập thực hành: Caching (10 bài tập)

Bài 24: Testing Backend APIs

Unit testing với Jest

Integration testing

API testing với Supertest

Test coverage và reporting

Mocking và stubbing

Bài tập thực hành: Testing (15 bài tập)

Bài 25: Error Handling và Logging

Global error handling

Custom error classes

Logging với Winston/Morgan

Error monitoring và reporting

Debug strategies

Bài tập thực hành: Error handling (10 bài tập)

Bài 26: WebSocket và Real-time

WebSocket protocol

Socket.io implementation

Real-time events và broadcasting

Room và Namespace

Scaling WebSocket applications

Bài tập thực hành: WebSocket (15 bài tập)

Bài 27: API Documentation

Swagger/OpenAPI specification

API documentation với Swagger UI

Automated documentation generation

API versioning

Documentation best practices

Bài tập thực hành: Documentation (5 bài tập)

Bài 28: Production Deployment

Environment configuration

Process management với PM2

Nginx reverse proxy setup

SSL/TLS configuration

Monitoring và logging

Deployment checklist

Bài tập thực hành: Deployment (10 bài tập)

Phần 5: Tính năng nâng cao
Bài 29: Xác thực và Bảo mật - OAuth 2.0

Tổng quan về OAuth 2.0 và OpenID Connect

Các luồng xác thực OAuth 2.0

Triển khai OAuth 2.0 với Google, Facebook

Quản lý phiên và token

Xử lý callback và state

Bài tập thực hành: OAuth 2.0 (10 bài tập)

Bài 30: JWT và API Security

Cấu trúc và nguyên lý hoạt động của JWT

Mã hóa và xác thực JWT

Bảo mật API với JWT

Refresh token và access token

Xử lý token hết hạn

Bài tập thực hành: JWT (10 bài tập)

Bài 31: HTTPS và TLS

Giao thức HTTPS và TLS

Cài đặt và cấu hình SSL/TLS

Chứng chỉ SSL và Let's Encrypt

Best practices bảo mật HTTPS

Kiểm tra và debug HTTPS

Bài tập thực hành: HTTPS (5 bài tập)

Bài 32: Kiểm thử bảo mật

Các lỗ hổng bảo mật phổ biến

Công cụ kiểm thử bảo mật

Penetration testing cơ bản

Xử lý và khắc phục lỗ hổng

Báo cáo và theo dõi vấn đề

Bài tập thực hành: Security testing (5 bài tập)

Bài 33: Tích hợp OpenAI API

Tổng quan về OpenAI API

Thiết lập và cấu hình OpenAI API

Gọi API và xử lý response

Xử lý lỗi và rate limiting

Tối ưu chi phí API

Bài tập thực hành: OpenAI (8 bài tập)

Bài 34: Prompt Engineering

Nguyên tắc thiết kế prompt

Kỹ thuật tối ưu prompt

Xử lý context và memory

Fine-tuning và customization

Đánh giá chất lượng prompt

Bài tập thực hành: Prompt (7 bài tập)

Bài 35: Vector Database và RAG

Giới thiệu Vector Database

Triển khai Retrieval Augmented Generation

Semantic search với Vector DB

Indexing và querying

Tối ưu hiệu suất truy vấn

Bài tập thực hành: Vector DB (5 bài tập)

Bài 36: Tối ưu hiệu năng

Phân tích và đo lường hiệu năng

Tối ưu database queries

Memory leaks và debugging

Profiling và benchmarking

Công cụ monitoring

Bài tập thực hành: Performance (10 bài tập)

Bài 37: Caching và Load Testing

Chiến lược caching

Redis và Memcached

Load testing với k6/Artillery

Phân tích kết quả test

Xử lý bottleneck

Bài tập thực hành: Caching (10 bài tập)

Bài 38: Mở rộng hệ thống

Kiến trúc microservices

Container và Docker

Load balancing

Auto-scaling

Monitoring và alerting

Bài tập thực hành: Scaling (5 bài tập)