## Code First | Mảng | Nội dung cụ thể cần học | | ---------------- | ------------------------------------------------------------------- | | ASP.NET Core API | Tạo project, định nghĩa model bằng Code First, tạo và gọi CRUD APIs | | EF Core | Thiết lập mối quan hệ, data annotations, migrations | | SQL Server | Tạo database tự động từ Code First | | ReactJS | Functional components, hooks (`useState`, `useEffect`), routing | | Axios/Fetch | Gọi API, xử lý response, error | | RESTful APIs | Cách thiết kế API đúng chuẩn (GET, POST, PUT, DELETE) | | UI/UX | Thiết kế form nhập liệu, hiển thị danh sách, thông báo lỗi | ## Database First | Mảng | Nội dung cụ thể cần học Database First | | ---------------------------- | ----------------------------------------- | | **SQL Server** | Chạy script `.sql`, hiểu quan hệ 1-n,m-n | | **EF Core – Database First** | Model thủ công | | **ASP.NET Core API** | Thiết kế API theo chuẩn RESTful | | **ReactJS** | Giao diện CRUD, xử lý state, gọi API | | **Axios/Fetch** | Giao tiếp với backend | | **Validation** | Cả phía client và server | | **Hooks** | `useState`, `useEffect`, ... | * Chú ý các Dependency của useEffect a. Không có b. Có rỗng [] c. Có tham số * Chú ý cách sử dụng useState ## A. Phần Server - Backend Development ### I. Database Design - Cách thiết kế database trên SQL Server,MongoDB ### II. Backend Development – ASP.NET Core API 1. Cấu hình Entity Framework Core với Database First 2. CRUD APIs 3. LinQ ### III. Authentication / Authhorization - Sinh ra token -> nhờ Username & Password (JWT) - Tuyệt đối không bao giờ được lưu token ở trong localstorage => lưu ở trong cookie và memory (Nghiên cứu thêm Redux,Context API) - Code phía server phải Authorize - Biết sử dụng công cụ Postman ## B. Phần Client - Frontend Development ### 1.React - Cách tạo ứng dụng React như thế nào ? - Flow chạy react như thế nào ? - Biêt cách truyền dữ liệu từ component cha -> con - Biết cách truyền dữ liệu từ con -> cha ( hàm ) - Biết sử dụng Hook ( UseState, UseEffect) #### Thiết kế giao diện và chức năng * Đăng ký : Tạo Form đăng ký * Danh sách : Hiển thị danh sách từ API * Chỉnh sửa : Chức năng cập nhật thông tin * Xóa : Cho phép xóa bản ghi * Giao tiếp API : Dùng Axios(Interceptor) hoặc Fetch API ### 2. HTML - Cách sử dụng Fetch API của trình duyệt ### 3. Gọi các API & Validation ### 4. Tích hợp Paging,Filter,Sorting - Paging từ Database (Recommend) - Paging từ Backend ### 5. Phần Authentication & Authorization : - Cơ chế sinh Access Token và Refresh Token - Role - Policy - Permission Customize ### 6. Repository vs Unit of Work ### 7. Clean Architure ### 8. Tích hợp Log vào ứng dụng