LẬP TRÌNH MÃ NGUỒN MỞ 2

Nền tảng: NestJS, TypeORM & GraphQL

Khối lượng: 9 Buổi (5 tiết/buổi)

Giảng viên: ThS. Hoàng Quốc Tuấn

Hỗ trợ học tập (Zalo/SĐT): 0943943179

Buổi 1: Tổng quan NestJS & Khởi tạo

Lý thuyết:

  • NestJS là gì? Điểm mạnh và hạn chế.
  • Cài đặt Nest CLI và cấu trúc dự án cơ bản.
  • Phân nhóm và chọn đề tài Dự án khởi nghiệp.

Thực hành:

  • Khởi tạo dự án NestJS đầu tiên.
  • Chạy và test thử ứng dụng với Postman.

Buổi 2: Cấu trúc dự án & API Route

Lý thuyết:

  • Hiểu sâu về Module, Controller, Service.
  • Khái niệm Dependency Injection trong NestJS.
  • Repository & DTO (Data Transfer Object).

Thực hành:

  • Tạo các Module quản lý tính năng độc lập.
  • Viết các API Route (GET, POST, PUT, DELETE) xử lý dữ liệu.

Buổi 3: NestJS TypeORM

Lý thuyết:

  • Tổng quan về TypeORM và cơ sở dữ liệu quan hệ.
  • Tạo Entity, Migration và InjectRepository.
  • Thiết lập Relationships (1-1, 1-N, N-N).

Thực hành:

  • Kết nối NestJS với Database (MySQL/PostgreSQL).
  • Viết API hoàn chỉnh thực hiện truy vấn với TypeORM.

Buổi 4: GraphQL API

Lý thuyết:

  • Kiến trúc GraphQL so với REST API.
  • Sử dụng GraphQL Playground.
  • Tích hợp GraphQL vào NestJS (Resolvers, Mutations, Queries).

Thực hành:

  • Chuyển đổi REST API sang GraphQL API.
  • Tạo CRUD API hoàn chỉnh kết hợp TypeORM & GraphQL.

Buổi 5: Tính năng nâng cao & Midterm

Lý thuyết & Thực hành:

  • JWT Authentication: Đăng ký, đăng nhập và bảo mật Route.
  • Tích hợp Email Service (Gửi mail xác nhận, quên mật khẩu).

Kiểm tra giữa kỳ:

  • Bài tập thực hành: Xây dựng một Module hoàn chỉnh (API/GraphQL có kết nối Database và Authentication).

Buổi 6: Realtime, Upload & Deploy

Thực hành nâng cao:

  • Lên lịch tác vụ tự động với Cron Job.
  • Xây dựng API Realtime chat với WebSockets.
  • Xử lý Upload hình ảnh / Videos.
  • Hướng dẫn Deploy ứng dụng NestJS API lên Internet (Render/VPS).

Buổi 7: Bắt đầu Dự án khởi nghiệp

Hoạt động nhóm (Thực hành & Thảo luận):

  • Chốt đề tài khởi nghiệp của nhóm.
  • Nghiên cứu thực trạng và đề ra hướng giải quyết.
  • Lập kế hoạch triển khai dự án chi tiết (Sprint/Trello).
  • Vẽ các loại biểu đồ hệ thống cần thiết (Use Case, Activity).

Buổi 8: Thiết kế & Triển khai dự án

Hoạt động nhóm (Thực hành & Báo cáo):

  • Hoàn thiện thiết kế Database (ERD).
  • Thiết kế UI/UX cho ứng dụng (Figma).
  • Phân công code Backend (NestJS) và Frontend.
  • Giảng viên review tiến độ và gỡ rối kỹ thuật cho từng nhóm.

Buổi 9: Bảo vệ đồ án môn học

Đánh giá cuối kỳ:

  • Hoàn thiện sản phẩm, đóng gói và chạy thực tế.
  • Thuyết trình bảo vệ đề tài trước lớp.
  • Vấn đáp kỹ thuật với Giảng viên.

Chúc các bạn hoàn thành môn học xuất sắc!

Hỗ trợ: ThS. Hoàng Quốc Tuấn - 0943943179

1 / 10